Board logo

标题: [求助]向版主请教关于EEPROM初始化问题 [打印本页]

作者: zhangyi65536    时间: 2007-1-22 10:11     标题: [求助]向版主请教关于EEPROM初始化问题

您好:
我现正在使用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的初始化?
作者: strongchen    时间: 2007-1-22 12:51

请参考这个帖子:
http://bbs.eccn.com/dispbbs.asp?boardid=3&rootid=114183&id=114183&star=
作者: zhangyi65536    时间: 2007-1-22 13:10

这个帖子我已经看过了,我试过使用WB 0x12 0x09,也试过在prm文件中用FILL命令,但编译结果形成的S19文件都是往0x800处写,而BDM分配给EEPROM的地址地0x2000,仍然是写不进去.是不是有办法将BDM的分配地址改成0x800呢?





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0