LPC1114 EEPROM 的问题

2019-03-25 20:12发布

使用Flash模拟EEPROM,安装NXP官方的例子,NXP是Keil的,我需要移植到IAR,

这2句出错:
static UNSIGNED8 mSectorMemory1[SECTOR_SIZE]__attribute__(at(SECTOR1_STARTADDR));
static UNSIGNED8 mSectorMemory2[SECTOR_SIZE]__attribute__(at(SECTOR2_STARTADDR));


IAR如何说明变量所在的Flash区域?? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
zhaojun_xf
1楼-- · 2019-03-26 05:30
_NXP LPC1000_ 没有做过,网上找一个,看看是否可行。

定义一个段,需要修改工程的icf文件,在工程指定的icf文件末尾加入如下内容:
define region MyOwnRegion = mem:[from 0x0800FC00 size 0x400];  //定义一个区域
place in MyOwnRegion {section LastPage};        //把段LastPage 放入区域MyOwnRegion

然后在工程的C文件中:
#pragma location="LastPage"
const uint32_t vSetRate_pre = VOLT_SET_REF;
#pragma location="LastPage"
const uint32_t vRdRate_pre = VOLT_RD_REF;
就可以了。
lattice1
2楼-- · 2019-03-26 11:05
我使用这个方法定义flash区域:
__no_init  static UNSIGNED8 mSectorMemory1[SECTOR_SIZE] @ SECTOR1_STARTADDR;
__no_init  static UNSIGNED8 mSectorMemory2[SECTOR_SIZE] @ SECTOR2_STARTADDR;
没有出现错误。
使用官方的例子,移植了过来。
  在运行中保存数据,异常,好像没有成功保存数据,
      if (!NVOL_SetVariable(EEPROM_ID, (UNSIGNED8 *)&E_data, 16))
      {
        while(1);
      }
   

#define DISABLEIRQ __disable_irq();
#define ENABLEIRQ  __enable_irq();

__disable_irq();    __enable_irq() 是开启与关闭中断,;这些函数在标准库里面,看不到具体的操作。不知道是不是需要自己添加函数,关闭中断??
zhaojun_xf
3楼-- · 2019-03-26 12:10
库里边带的函数一般不需要自己写。
lattice1
4楼-- · 2019-03-26 16:52
 精彩回答 2  元偷偷看……
zhaojun_xf
5楼-- · 2019-03-26 19:31
仿真看看,出现什么异常?
renhy
6楼-- · 2019-03-26 23:22
请问 在哪儿找的官方例程呢 我一直没有找到 可以分享一下吗 多谢多谢啦

一周热门 更多>