找回密码
 立即注册
查看: 177|回复: 8

STC32G变量读写问题

[复制链接]

7

主题

9

回帖

59

积分

注册会员

积分
59
发表于 2026-10-13 10:48:49 | 显示全部楼层 |阅读模式
STC32G定义在xdata的16bit变量,它是单时钟读写访问的吗?
截图202610131047151675.jpg
回复

使用道具 举报 送花

7

主题

9

回帖

59

积分

注册会员

积分
59
 楼主| 发表于 2026-10-13 10:59:52 | 显示全部楼层
如果xdata的16bit变量不是2字节对齐的话,总线访问奇数地址时,是两次字节写(读)访问吗?
回复

使用道具 举报 送花

已绑定手机

307

主题

582

回帖

2957

积分

金牌会员

积分
2957
发表于 2026-10-13 11:44:26 | 显示全部楼层
wx_F*** 发表于 2026-10-13 10:59
如果xdata的16bit变量不是2字节对齐的话,总线访问奇数地址时,是两次字节写(读)访问吗?
...

c51和c251没有字节对齐概念,不管你的变量地址是偶数还是奇数,单字节,双字节还是四字节都是一次读取的
回复

使用道具 举报 送花

已绑定手机

2

主题

153

回帖

468

积分

中级会员

积分
468
发表于 2026-10-13 11:57:30 | 显示全部楼层
对16位xdata变量,16位地址对齐时,读取要3+M周期,写要2+M周期;
其中M是CKCON.CKCON[2:0]的值,
这是基于 STC32G 的 1T 内核和 16 位 xdata 总线的典型时序;实际周期数可能受总线仲裁、DMA 占用等影响,存在少量波动。

对于奇数地址的16位变量,手册中没找到,查了下AI说:
STC32G 的 xdata 是 16 位数据总线,按 16 位(2 字节)对齐访问。读写奇数地址的双字节变量时,硬件会拆成两次 16 位访问;
回复

使用道具 举报 送花

已绑定手机

74

主题

1019

回帖

3775

积分

论坛元老

初出茅庐&无甚本事

积分
3775
发表于 2026-10-13 12:38:14 | 显示全部楼层
好像有建议:“没有速度要求的、较少访问的数据放xdata”
可能底层设计决定了访问xdata数据会慢些
之前好像看到:“4个周期”之类…
偶尔看看玩玩
回复

使用道具 举报 送花

7

主题

9

回帖

59

积分

注册会员

积分
59
 楼主| 发表于 2026-10-13 13:04:58 | 显示全部楼层
jrc*** 发表于 2026-10-13 11:57
对16位xdata变量,16位地址对齐时,读取要3+M周期,写要2+M周期;
其中M是CKCON.CKCON[2:0]的值,
这是基于 ...

就是不知道读,写的时候,是否为原子操作。
回复

使用道具 举报 送花

7

主题

9

回帖

59

积分

注册会员

积分
59
 楼主| 发表于 2026-10-13 13:06:01 | 显示全部楼层
QQ6243*** 发表于 2026-10-13 11:44
c51和c251没有字节对齐概念,不管你的变量地址是偶数还是奇数,单字节,双字节还是四字节都是一次读取的 ...

读和写是原子操作吗?
回复

使用道具 举报 送花

已绑定手机

307

主题

582

回帖

2957

积分

金牌会员

积分
2957
发表于 2026-10-13 13:11:02 | 显示全部楼层
wx_F*** 发表于 2026-10-13 13:06
读和写是原子操作吗?

是的
回复

使用道具 举报 送花

已绑定手机

2

主题

153

回帖

468

积分

中级会员

积分
468
发表于 2026-10-13 14:24:06 | 显示全部楼层
wx_F*** 发表于 2026-10-13 13:04
就是不知道读,写的时候,是否为原子操作。

STC32G 的 CPU 内核在执行一条指令时,具有原子性。
即使是一条需要多个时钟周期才能完成的 MOVX 指令(访问 xdata),CPU 也会独占总线直到该指令完全执行完毕。

注意:像C语言:  n += 10; 这条不是原子的,这个是需要三条指令完成,即,先读取,加个,再写回。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 11:25 , Processed in 0.072691 second(s), 81 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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