Board logo

标题: 继续向版主请教关于EEPROM [打印本页]

作者: zhangyi65536    时间: 2007-1-23 08:31     标题: 继续向版主请教关于EEPROM

您好:
我已经按您所说的在p&e_reset.cmd 文件中添加了wb 0x12 0x09命令,添加此命令后,在flash窗口中的EEPROM的起始结束地址已更改为0x0000800 -0x0000fff ,但是按照我的工程生成的.s19文件编程后,EEPROM空间仍为BLANK. 而如果我不添加 wb命令,使FLASH窗口中的EEPROM地址为缺省的0x0002000-0x00027ff,并且将我的.s19文件的第一个S1行的地址修改为2000,并更改相应的校验和,就能够写入EEPROM,麻烦您能告诉我为什么 ,我使用的是清华的BDM,使用GDI连接,CommandFiles我已经选择.
我已把我的工程发到您的邮箱中.
作者: strongchen    时间: 2007-1-23 09:29

你有在程序里没有设置INITRM、INITEE寄存器,将RAM和EEPROM映射到新的地址上呢?PRM文件只是告诉编译器参数,不能对MCU进行初始化。
作者: zhangyi65536    时间: 2007-1-23 10:25

在start12.c文件中的init下有INITRM=0x21;INITEE=0x09的重定位,而且重定位是正确的,如果EEPROM显示Programmed ,那么我在重定位地址读出的是正确的.
作者: strongchen    时间: 2007-1-23 11:30

一般对这些寄存器的初始化应该是在用户程序里进行而不是在start12.c里。你也可以看一下这些语句是否确实执行了。
作者: zhangyi65536    时间: 2007-1-23 12:20

start12.c文件中有对这3个寄存器的缺省初始化,只要加上相应的#define预编译就可以了,而且在编译结果的汇编指令中可以看到,这3条指令是在leas sp,#$4000之前执行的.我在前面说过,如果我不增加wb命令,而只是手动修改S19文件的EEPROM写入地址到0x2000(FPP文件缺省的EEPROM定位地址)的话,就可以写入EEPROM,程序运行重定位EEPROM后,读出也是正确的.而且我对重定位后的EEPROM进行擦除和写入都是正确的.我唯一做不到的就是在EEPROM中定义象在0x4000处那样定义的CONST数据段,同样的定义,烧写后4000处可看到已编程EEPROM仍然为空.
作者: strongchen    时间: 2007-1-23 17:20

我现在在外面出差,没办法试你的程序,可能要等到下个星期。抱歉。
作者: zhangyi65536    时间: 2007-1-24 12:10

谢谢版主
作者: strongchen    时间: 2007-1-29 10:37

在p&e_reset.cmd 文件中还应该添加wb 0x10 0x21命令,这样在下载程序时才能将RAM移到0x2000的位置,否则0x800~0xFFF的位置处还是RAM,数据并没有写入EEPROM。
作者: zhangyi65536    时间: 2007-1-31 15:23

这样也是不行的,加入此命令后装载MC9S12DG128的FPP文件时出错,根本就打不开FLASH界面了,是不是需要修改FPP文件呀!
作者: strongchen    时间: 2007-1-31 16:20

我手头暂时没有DG128的板子和芯片啊。回头我想办法弄一个再试试。
作者: zhangyi65536    时间: 2007-1-31 17:14

版主:
我已以解决了,要使用CW HCS12 for V4.5提供的 mcu03dc_eb386.fpp这个文件,不能使用缺省装载的mcu03dc.fpp. 谢谢版主给我的帮助!




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