- UID
- 93356
- 性别
- 男
|
您好:
我现正在使用MC9S12DG128,在EEPROM的使用上遇到问题,向您请教.
问题1: 如何初始化EEPROM中的数据? 我在使用汇编时,在程序开始处定义
ORG $2000
EEPROMDATA: DC.W $0001,$0002
以上代码就会以 S123200000010002....的格式形成在S19文件中,这样就会直接写入EEPROM中,我想向您请教的是在C下如何实现以上操作?我不
知道$2000是不是P&E定义的缺省EEPROM地址?
在C下面,我想把RAM重定位在0x2000处,把EEPROM重定位在0x800开始处.
如果我在prm文件中如下定义,在S19文件中没有写入EEPROM的机器码,并且如果我使用value的首地址,发现它在0x2000处:
SEGMENTS
RAM = READ_WRITE 0x2000 TO 0x3dff;
RAMSTACK = READ_WRITE 0x3e00 TO 0x3fff;
EEPROM = READ_ONLY 0x800 TO 0XFFF;
END
PLACEMENT
EEPROM_DATA INTO EEPROM
END
c文件下
#pragam CONST_SEG EEPROM_DATA
const word value[2]={0xaa,0xaa};
如果我在prm文件中不定义EEPROM段而在C文件中如下写,那么在S19文件中只有写入0x800地址开始的机器码(s107080000aa00aa...),写不到
EEPROM中
c文件下
volatile const word value[2]@(0x800)={0xaa,0xaa};
如果写成这样
volatile const word value[2]@(0x2000)={0xaa,0xaa}; 又会有overlap的连接错误,因为我把RAM定义在0x2000处
我也试过在prm中使用FILL 命令,但结果和@是一样的.
请问楼主,我究竟应该如何定义,才能实现对EEPROM的初始化? |
|