找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

如何在KEIL软件中将变量定义在特定的RAM空间中?

[复制链接]
楼主
admin 发表于 2014-1-8 09:15:35 | 显示全部楼层

u8     a  __attribute__((at(0x20000001)));
u8    b  __attribute__((at(0x20000100)));
牛卧堂
回复 支持 反对

使用道具 举报

沙发
admin 发表于 2014-1-8 09:40:11 | 显示全部楼层
是的,16为这么写 u16  c __attribute__((at(0x2000 0x00)))
u8     shuzhu[5]   __attribute__((at(0x20000x00)));

写在.c文件 还是.h 都可以。在你引用前 定义就可以。有些喜欢 统一写到.h中
牛卧堂
回复 支持 反对

使用道具 举报

板凳
admin 发表于 2014-1-8 10:17:07 | 显示全部楼层
u8  不是标准的8bit  看你代码里面 有没有定义 u8
可以直接定义 unsigned char   ; unsigned int
牛卧堂
回复 支持 反对

使用道具 举报

地板
admin 发表于 2014-1-8 11:42:51 | 显示全部楼层
变量 RAM直接定义。如果要在FLASH,得用const。如果要绝对定位。
要用 const unsigned char DATAF[10] __attribute__((at(0x20000601))) ={1,2,3,4,5} ;
牛卧堂
回复 支持 反对

使用道具 举报

5#
admin 发表于 2014-1-8 15:10:47 | 显示全部楼层
程序运行中未实现功能,原因就多了。RAM 数据是不是数组溢出、变量被覆写,
怀疑变量 可以一步步Debug看看。

牛卧堂
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU