找回密码
 立即注册
楼主: 杨***

STC32G FreeRTOS入门(3):STC32G PK STC8--完胜

[复制链接]

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-7 18:16:21 | 显示全部楼层
神农鼎 发表于 2024-1-7 15:50
这不影响 STC32 是 32位数据总线
你去看看 M0, 没除法,成本的考量

举一个例子,供参考
目前Source模式E8~EF, F8~FF未定义
可以定义 LDR DRk(k:1~8) #24 (因为地址只有24位,而立即数是存储在0x800000到0xFFFFFF)
OP=(Ekkkk), OPAND=#24, 4字节长度。
这样指令预取等流水线不用变更。在工具链不变情况下,可以修改连接工具即可。
验证更简单,写几条机器码就可以利用FPGA验证。

至于产品化,修改Ax51,Cx51,只要你们想,总有机会,早晚而已。

点评

“可以定义 LDR DRk(k:1~8) #24 (因为地址只有24位,而立即数是存储在0x800000到0xFFFFFF) OP=(Ekkkk), OPAND=#24, 4字节长度。” (1)你的建议有道理和可实现性。只是实现这种指令除了硬件上实现,还需要C语言编  详情 回复 发表于 2024-1-7 19:28
回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-7 18:19:51 | 显示全部楼层
zxcv1973 发表于 2024-1-7 16:32
有MOV DRj, #16位立即数

是的,有些像早期thumb指令,也是16位,以存储空间为卖点。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-7 18:28:13 | 显示全部楼层
zxcv1973 发表于 2024-1-7 16:46
ARM和RISC-V还都没有直接寻找指令,比如算C1=C2+C3,用ARM的话要这样:
LDR R0,=C2
LDR R1,[R0]

MOV DR0, C2
这条指令我没有寻找到对应的SOURCE指令,请帮忙确认下是否存在?

点评

(1)80251指令集32位数据直接寻址模式指令: [attachimg]32165[/attachimg] [attachimg]32166[/attachimg] [attachimg]32167[/attachimg] [attachimg]32168[/attachimg] 利用这些80251指令可以实现对EDATA空间  详情 回复 发表于 2024-1-7 20:03
回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

703

回帖

1万

积分

荣誉版主

积分
10906
 楼主| 发表于 2024-1-7 19:28:23 | 显示全部楼层
13918210822 发表于 2024-1-7 18:16
举一个例子,供参考
目前Source模式E8~EF, F8~FF未定义
可以定义 LDR DRk(k:1~8) #24 (因为地址只有24位 ...

“可以定义 LDR DRk(k:1~8) #24 (因为地址只有24位,而立即数是存储在0x800000到0xFFFFFF)
OP=(Ekkkk), OPAND=#24, 4字节长度。”

(1)你的建议有道理和可实现性。只是实现这种指令除了硬件上实现,还需要C语言编译器的支持。由于现在的C251等80251编译器不直接支持,于是就有了一个先造CPU还是先造编译器的鸡和蛋的问题。并且80251指令集剩余的指令空间不多,到底增加哪些指令,需要提前研究和评估。
(2)对于80251 CPU指令集,探讨新设立和实现某个指令,探讨和对比Cortex-M指令集,从探讨下一代的STC单片机CPU架构的角度,我觉得前面坛友的意见都有道理,都有建设性的。因为目前STC32位单片机CPU的架构已经是“RISC的数据处理器DPU+CISC的内存管理器MMU”的结构了,这样的讨论代表了来自应用层面的意见,而且有可发展的空间。


回复 支持 反对 送花

使用道具 举报

该用户从未签到

63

主题

703

回帖

1万

积分

荣誉版主

积分
10906
 楼主| 发表于 2024-1-7 20:03:53 | 显示全部楼层
13918210822 发表于 2024-1-7 18:28
MOV DR0, C2
这条指令我没有寻找到对应的SOURCE指令,请帮忙确认下是否存在? ...

(1)80251指令集32位数据直接寻址模式指令:

01_MOV_DRK_Dir16.jpg

02_MOV_DRK_Dir8.jpg

03_MOV_Dir16_DRk.jpg

04_MOV_Dir8_DRk.jpg

利用这些80251指令可以实现对EDATA空间和DATA空间的32位数据变量的直接寻址,意思是一条指令直接从指定的地址连续存取4个字节的数据到32位的寄存器DR0、DR4、...中去。
(2)值得一提的是:按照80251定义,端口的SFR位于DATA空间的080H~0FFH范围,使用一条指令“MOV  Dir8, DRk”(比如 MOV  080H, DR0)就可以将4个字节的32位数据一次性的送到32位的SFR中,至于这32位端口(比如 80H、81H、82H、83H)是对应32只管脚或者内部的什么设备,这个由生产单片机的厂商自己决定。
(3)不过现在DATA空间的SFR已经满了,还留下HDATA空间的XSFR可以使用“MOV  @DRk, WRj”的指令一次写16位的端口,还留下EDATA空间的ESFR可以使用“MOV  Dir16, DRk”的指令一次写32位的端口。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

119

回帖

657

积分

高级会员

积分
657
发表于 2024-1-7 20:53:45 | 显示全部楼层
13918210822 发表于 2024-1-7 18:28
MOV DR0, C2
这条指令我没有寻找到对应的SOURCE指令,请帮忙确认下是否存在? ...

你举的例子就有,如下:
; line 49:     c1 += c2;
        MOV      DR0,c2?141
        MOV      DR4,c1?140
        ADD      DR4,DR0
        MOV      c1?140,DR4
哪种架构都会有遗憾的地方,毕竟定位于MCU
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9492

回帖

1万

积分

管理员

积分
14057
发表于 2024-1-7 21:26:14 | 显示全部楼层
默默记在心里,努力发展新的 DPU/MDU32D 中,
杨老师一口气给他加了 68条强大的指令 ?
===可能 1个月后,会有结果,设计中

回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-8 09:55:22 | 显示全部楼层
望百尺杆头更进一步,突破最后一公里,工作量不小
但是突破了,就是海阔天空

国产崛起,核心技术推进才是源力
--be force with you:)
回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-8 10:27:30 | 显示全部楼层
杨为民 发表于 2024-1-7 20:03
(1)80251指令集32位数据直接寻址模式指令:

7E(u)FH 是对EDATA空间的加载,不可加载FLASH空间(24bit)
不过,既然杨老师对指令集扩展已有多年经验, 静待与STC的互动接出果实

在原有指令上哪怕只扩展出一条可被解析且被工具链利用的指令, 那就是一片新天地
MCU正由于其简约,恰恰是最好的突破。

当然扩展协处理器也是很好的办法。
但如果从Core也作升级则是更强大的手段,当然也是工作量很大的手段。

预祝STC能开辟“新副本”:)

回复 支持 反对 送花

使用道具 举报

该用户从未签到

5

主题

89

回帖

403

积分

中级会员

积分
403
发表于 2024-1-8 10:31:08 | 显示全部楼层
zxcv1973 发表于 2024-1-7 20:53
你举的例子就有,如下:
; line 49:     c1 += c2;
        MOV      DR0,c2?141

这个从EDATA加载,

不过相信STC总会开创新技术,就像从前对总线和总线外部设备作了那么多升级
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-18 02:31 , Processed in 0.069372 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表