Board logo

标题: MC68HC908AZ60A的EEPROM擦写在prm文件中地址应该如何映射? [打印本页]

作者: chenwenxin    时间: 2007-1-30 16:10     标题: MC68HC908AZ60A的EEPROM擦写在prm文件中地址应该如何映射?

LINK master.abs

NAMES
ansi.lib
/* other object files to link are passed from the IDF with the linker -Add option */
END

SECTIONS
LIN_ZRAM = READ_WRITE 0x0050 TO 0x00FF; /* zero page */
LIN_RAM = READ_WRITE 0x0100 TO 0x03BF; /* program data */
LIN_STACK = READ_WRITE 0x03C0 TO 0x044F; /* stack */
LIN_ROM = READ_ONLY 0x8000 TO 0xFDFF; /* program code & constants */
//EEPROM1 = READ_WRITE 0x0800 TO 0x09FF;
LIN_VECTORS = READ_ONLY 0xFFD0 TO 0xFFFF; /* interrupt vectors (use your vector.obj) */
END

PLACEMENT
ZeroSeg, _DATA_ZEROPAGE INTO LIN_ZRAM;
DEFAULT_ROM, ROM_VAR INTO LIN_ROM;
DEFAULT_RAM INTO LIN_RAM;
SSTACK INTO LIN_STACK;
VECTORS_DATA INTO LIN_VECTORS;
END

STACKSIZE 0x001F

ENTRIES
_vectab
END
INIT _Startup /* contains line replacing default _PRESTART */
MAPFILE ON
作者: c4c4c4    时间: 2007-1-30 16:26

我正想调908AZ60A.好像加密了.你能读FLASH吗?想找个人共同完成.
作者: strongchen    时间: 2007-1-30 16:28

不太明白你的问题到底是什么。
作者: c4c4c4    时间: 2007-1-30 17:02

汽车中央控制器CPU是908AZ60A.现有2个版本.我想读出新CPU的FLAH,更新老版本.加入部分优化程序.CPU好象限读.
作者: chenwenxin    时间: 2007-1-30 18:28

我的意思是RAM,ROM都要进行地址映射,那么EEPROM用不用地址映射呢?

比如:
ROM = READ_ONLY 0x8000 TO 0xFDFF;

DEFAULT_ROM, ROM_VAR INTO ROM;

那么EEPROM作为数据存储器时是否也需要映射?如何以映射呢?


作者: c4c4c4    时间: 2007-1-31 08:39

s600-7ff.s800-9ff
作者: strongchen    时间: 2007-1-31 09:16

如果你需要用EEPROM的话,当然要在PRM文件中定义EEPROM的物理地址。如果用引导wizard生成一个project,你可以看到在其PRM文件中已经定义了EEPROM的地址。
作者: chenwenxin    时间: 2007-1-31 16:09

地址映射一般应该分两个步骤吧:
步骤一:地址范围
ROM = READ_ONLY 0x8000 TO 0xFDFF;
步骤二:具体什么值写入该区域
DEFAULT_ROM, ROM_VAR INTO ROM;


那对于EEPROM来说:
步骤一:
EEPROM = READ_ONLY 0x0600 TO 0x09FF;
步骤二:?????????????????????
步骤二是什么呢?


作者: strongchen    时间: 2007-1-31 16:18

你可以在PRM文件中自己定义一个SECTION,例如:

EE_DATA INTO EEPROM;

然后在用户程序中定义EEPROM常数时,用如下声明即可:

#pragma DATA_SEG EE_DATA


作者: chenwenxin    时间: 2007-1-31 18:37

在PRM文件中定义如下:
EEPROM = NO_INIT 0x0600 TO 0x09FF;
EEPROM_DATA INTO EEPROM;


在用户程序里定义如下
#pragma DATA_SEG EEPROM_DATA
extern unsigned char data;
#pragma DATA_SEG DEFAULT

这里的data是不是应该要写入的数据呢?
EEPROM的编程有这么麻烦吗?好像手册中都没有提到这些东西,但是如果不映射地址,数据又该往哪里写呢?
作者: strongchen    时间: 2007-2-1 10:38

EEPROM里应该放具有初始值的常量,而不应该放变量。EEPROM不能像RAM那样去写入。CodeWarrior的安装目录下有C编译器和汇编器的使用手册。




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