打印
[技术问答]

N76E003,在keil中如何把常量数组定义到APROM固定位置

[复制链接]
2751|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kevinleez|  楼主 | 2018-3-27 12:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在有1k的常量数组需要定义到APROM的最后1K空间,也就是0X4400~0X47FF,我在Keil中定义数据的时候,平时是const unsigned char AA[1024]={.....};,但是如何关联到固定位置上?
沙发
yjgna| | 2018-3-27 13:07 | 只看该作者
#define DATA_FLASH_START_ADDR                0x380
#define DATA_FLASH_PAGE_SIZE                128                //Bytes

volatile uint8_t code data_flash[DATA_FLASH_PAGE_SIZE] _at_ DATA_FLASH_START_ADDR;

使用特权

评论回复
板凳
座机呀| | 2018-3-27 14:07 | 只看该作者
51定义RAM中的变量可以自定义位置,但这个是一般情况是不被推荐的,因为编译器有自己的一套关于变量分配的算法,至于在flash中存只读数据,我认为只要能放的下就行了吧,应为数组名字就是地址呀

使用特权

评论回复
地板
mcu5i51| | 2018-3-27 15:11 | 只看该作者
1. _at_ 关键字,优点方便,缺点不能初始化
2.自定义段,好像很麻烦,没有用过

使用特权

评论回复
5
ayb_ice| | 2018-3-28 11:04 | 只看该作者
mcu5i51 发表于 2018-3-27 15:11
1. _at_ 关键字,优点方便,缺点不能初始化
2.自定义段,好像很麻烦,没有用过 ...

写个汇编文件,一会就搞定了

使用特权

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

本版积分规则

46

主题

137

帖子

2

粉丝