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