找回密码
 立即注册
查看: 331|回复: 5

关于static定义问题

[复制链接]

该用户从未签到

1

主题

3

回帖

23

积分

新手上路

积分
23
发表于 2023-7-4 09:53:32 | 显示全部楼层 |阅读模式
如图1所示,某开发板的教程里写static定义变量时,如果用idata或xdata,容易出错,这有什么依据?
我认为他的说法不成立。

我的观点:在keil c51编译环境下,变量的寻址方式只和变量的存储空间(data、idata、xdata)有关系,与是否使用static声明无关,如图2所示。
请贵公司工程师解答,图1中的说法是否有依据?我的理解是否正确?


图1

图1

图2

图2
回复 送花

使用道具 举报

该用户从未签到

1

主题

3

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2023-7-4 10:15:38 | 显示全部楼层
纠正一下说法,刚刚和代码作者沟通结果如下:
和static无关,作者估计: 是读写速度影响了,xdata 更适合用在数组 连续性读取的情况 比单个变量更稳定
这个视频是问题复现https://www.bilibili.com/video/B ... id_from=333.999.0.0

回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

3

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2023-7-4 10:18:05 | 显示全部楼层
补充说明:
经过与代码作者沟通,说明如下:与static无关,作者估计 是读写速度影响了,xdata 更适合用在数组 连续性读取的情况 比单个变量更稳定,下面的视频是问题复现。
https://www.bilibili.com/video/B ... id_from=333.999.0.0
回复 支持 反对 送花

使用道具 举报

该用户从未签到

46

主题

3174

回帖

7173

积分

超级版主

积分
7173
发表于 2023-7-4 11:18:14 | 显示全部楼层
没有这种说法,那是程序作者的个人感觉,这个感觉是错误的。
在MCU工作的频率范围内,访问多有的内存都是100%正确的,也必须如此。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

3

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2023-7-4 11:27:07 | 显示全部楼层
梁工 发表于 2023-7-4 11:18
没有这种说法,那是程序作者的个人感觉,这个感觉是错误的。
在MCU工作的频率范围内,访问多有的内存都是10 ...

梁工,请您看一下我的这个补充说明:

经过与代码作者沟通,说明如下:与static无关,作者估计 是读写速度影响了,xdata 更适合用在数组 连续性读取的情况 比单个变量更稳定,下面的视频是问题复现。
https://www.bilibili.com/video/B ... id_from=333.999.0.0
回复 支持 反对 送花

使用道具 举报

该用户从未签到

4

主题

27

回帖

116

积分

注册会员

积分
116
发表于 2023-7-9 10:33:46 | 显示全部楼层
我看了视频,估计是操作LED阵列操作中延时的问题,xdata 的存取比 data 所需的指令时间长, 所以显示正常; 使用data时速度过快,存在一个竖条闪烁;
回复 支持 反对 送花

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 18:20 , Processed in 0.061907 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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