找回密码
 立即注册
楼主: Ayb_ice

强烈建议stc32增加16位32位特殊功能寄存器

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:147
  • 最近打卡:2025-10-15 09:52:07
已绑定手机

18

主题

502

回帖

1726

积分

金牌会员

积分
1726
发表于 2025-9-28 08:23:56 | 显示全部楼层
_奶*** 发表于 2025-9-25 15:20
话说,一次性读取16位或者32位,是编译器要做的事情,还是芯片要做的事情。前提是芯片的数据总线已经是32 ...

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:686
  • 最近打卡:2025-10-16 00:04:51

11

主题

1246

回帖

6321

积分

论坛元老

积分
6321
发表于 2025-9-28 14:25:57 | 显示全部楼层
Ayb_*** 发表于 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

回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 10:26 , Processed in 0.122700 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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