Ayb_ice 发表于 2025-9-28 08:23:56

_奶咖君_ 发表于 2025-9-25 15:20
话说,一次性读取16位或者32位,是编译器要做的事情,还是芯片要做的事情。前提是芯片的数据总线已经是32 ...

普通变量已经可以直接16,32位读取了,但SFR目前硬件不支持,编译器是可以支持的

angmall 发表于 2025-9-28 14:25:57

Ayb_ice 发表于 2025-9-28 08:23
普通变量已经可以直接16,32位读取了,但SFR目前硬件不支持,编译器是可以支持的 ...

为了兼容STC8H8K64U, SFR 没有专门按32位访问设计,这样 STC8H/STC32G 的软件兼容性高
===用心良苦,STC32支持 SFR16/SFR32是很容易的事,编译器也是支持的

要改XSFR到 edata区的地址,要大调整传统8051的 SFR
===改完就不像那个熟悉的8051了, 并且对速度影响真的有限

是的,现在硬件就应该支持了,你可以用Ai8051U
新增的特殊功能寄存器 16-BIT SFR16( 如 T11_16), 如将 SFR16 的逻辑地址映射在 xdata
区域,就可以支持对新增特殊功能寄存器的 16-BIT/8-BIT 访问

#define T11_16                  (*(unsigned int volatile far *)0x7efe7a)

000034 7E54FEB2       MOV      WR10,#0FEB2H
000038 7E14FE7A       MOV      WR2,#0FE7AH
00003C 1B0A50          MOV      @DR0,WR10

页: 1 2 [3]
查看完整版本: 强烈建议stc32增加16位32位特殊功能寄存器