Board logo

标题: 请教strongchen,一个MC9S12XE的BOOTLOADER问题 [打印本页]

作者: gggggggggggg    时间: 2009-1-4 15:45     标题: 请教strongchen,一个MC9S12XE的BOOTLOADER问题

我最近写了个MC9S12XE系列MCU的BOOTLOADER,用于串口烧写FLASH.在防真器BDM(P&E的)连接在目标板上时,可以烧写成功,在防真器BDM没有连接在目标板上时,就烧写不成功(烧完后没见程序跑起来.

具体现象就是:我先通过防真器把程序烧进去,点击运行让程序跑起来后,再通过PC机上的一个VC6.0编的串口发送程序,发送.glo文件(和.s19文件几乎一样),发送完毕后,更新后的程序就能跑起来(我以闪烁不同LED灯作为新旧程序标志).这时BDM是连接在目标板上的,在这种情况下,我继续烧写更新后.glo文件下去,也没有问题.

问题在我断电后,拔掉BDM,再上电(程序在运行),这时再烧.glo文件下去的话,能烧写完毕,但就不见更新后的程序跑起来(因为LED没有再闪烁).

我BOOTLOADER的原理:目标板串口检测特定字符后,相应程序就把BOOTLOADER那段代码拷贝到RAM内存中,然后CPU跳到内存中运行BOOTLOADER代码,接收PC机串口发下来的数据(按照相应协议).进行烧写FLASH,当接收到结束标志后,CPU就跳到复位地址,进行复位.


作者: gggggggggggg    时间: 2009-1-4 15:49

不知道是什么原因呢?我调试时完全通过了的,能烧写成功,并运行起来,没有BDM时,就不能成功.找不到原因 请问strongchen,是什么原因呢?
作者: strongchen    时间: 2009-1-5 15:17

连接BDM时,MCU进入的是特殊单片模式,它与不接BDM的正常单片模式有所不同。主要的区别是有些寄存器在正常单片模式下是一次写入的,而在特殊单片模式下可以多次写入。可以检查一下看看。
作者: gggggggggggg    时间: 2009-1-13 14:23

我代码中只读,写了片内FLASH的控制寄存器啊,在进行编程操作时。有哪位达人说说啊。

康桥人,strongchen






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