[疑难问答]

如何定义变量使其能在指定地址呢

[复制链接]
788|19
手机看帖
扫描二维码
随时随地手机跟帖
nawu|  楼主 | 2022-10-7 12:03 | 显示全部楼层 |阅读模式
如题如何定义变量使其能在指定的地址呢,比如将相关变量存储在sram或者ram或者其他地方的特定的位置上呢

使用特权

评论回复
Annie556| | 2022-11-26 12:18 | 显示全部楼层
看你是51单片机还是32位单片机,51的话可以用关键字定义的

使用特权

评论回复
B1lanche| | 2022-11-26 12:20 | 显示全部楼层
没研究过,我就知道关键词可以应用,将变量弄到指定位置的

使用特权

评论回复
Carina卡| | 2022-11-26 13:24 | 显示全部楼层
你搜索一下xdata,idata还有code,这是关于51内核的程序地址定义的

使用特权

评论回复
Estelle1999| | 2022-11-26 14:27 | 显示全部楼层
首先要确定是用哪种单片机,然后一般情况都是有关键词修饰的

使用特权

评论回复
Charlene沙| | 2022-11-26 16:34 | 显示全部楼层
你要是用32位单片机可以用指针的方式定义变量,变量存在你想要的地方

使用特权

评论回复
Alina艾| | 2022-11-27 07:00 | 显示全部楼层
我也想知道,如果是32位的单片机应该怎么定义呢?

使用特权

评论回复
Emily999| | 2022-11-27 09:43 | 显示全部楼层
我一般32位的单片机都是直接定义,顶多是全局和局部变量这么操作而已

使用特权

评论回复
Charlotte夏| | 2022-11-27 10:44 | 显示全部楼层
是不是只有51单片机会考虑变量的存储位置啊?

使用特权

评论回复
Betty996| | 2022-11-27 12:38 | 显示全部楼层
9这种存储变量的方式,是为了快速调用吗?

使用特权

评论回复
alxd| | 2022-11-27 15:06 | 显示全部楼层
应该有指定的语法吧,比如指针定义之类的

使用特权

评论回复
jtracy3| | 2022-12-2 19:21 | 显示全部楼层
按下面格式定义就好了 INT8U TempBuf [1024] __attribute__((at(0X20002000))) = {0}; 不过地址 0X20002000这些要看你自己的片子了

使用特权

评论回复
uytyu| | 2022-12-2 20:43 | 显示全部楼层
变量就有地址,但是常量不会有地址。

使用特权

评论回复
phoenixwhite| | 2022-12-2 21:53 | 显示全部楼层
对变量进行声明时可以指定变量的

使用特权

评论回复
OKAKAKO| | 2022-12-3 09:06 | 显示全部楼层
用指针地址定义,一般51是xdata,idata还有code等

使用特权

评论回复
pentruman| | 2022-12-3 12:53 | 显示全部楼层
define SRAM (*(volatile unsigned char *)&0x0450)  

使用特权

评论回复
maudlu| | 2022-12-3 13:33 | 显示全部楼层
int *P;P = 28h;P = 0x1234;这样就把变量存在指定的两个地址单元了

使用特权

评论回复
kkzz| | 2022-12-4 22:36 | 显示全部楼层
定义一个你需要的变量指针,把那个地址(0X0236还是)什么通过强制格式转换把地址赋给它,然后就可以通过那个指针直接使用那处内存。

使用特权

评论回复
Henryko| | 2022-12-26 10:45 | 显示全部楼层
有对应的关键词修饰的

使用特权

评论回复
Stahan| | 2022-12-26 11:00 | 显示全部楼层
可以用指针的方式定义变量

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

3307

帖子

3

粉丝