LM3S1607 烧写bootloader 地址问题



烧写公工具:JLINK的J-FLASH . 

打开bootloader 的serial_boot.bin 文件。选择开始地址为 0,烧写bootloader.

烧写完成后,打开程序文件bin ,烧写开始地址为1000.

烧写好后,下次重新连接时,提示 检测的 ID CORE  不对,为0x00000000,不知是不是烧写地址错了,请高手指教。

在keil 下也是不能再次识别

如果bootloader 错了,那么这片芯片是否还继续能够使用,如何恢复。

正确的烧写地址又是什么。烧写步骤和选择改注意什么地方?

  • 首先你要根据bootloader代码的大小在bl_config.h里边设置应用程序的其实地址和其向量表的地址,如果没有修改过原来的bootloader,这两个值都是0x1000,也就是4k,因为bootloader的大小小于4k。然后你需要在应用程序的sct文件中,把flash的起始地址也设置为0x1000.还有,在lm flash programer中把program的地址也设置为0x1000。
    网口的设置更容易,指定一个本网段内的IP地址,指定device的mac地址,就可以了。

  • 你看看LM3S1607开始时执行的第一条指令的地址是多少,是不是0x00000000,然后把bootloader 烧到这个地址中去

  • 谢谢,您的回答。我看了下,都是没有改动,也就是程序bin 烧写从0X1000开始,bootloader.bin 文件就是从0开始了,那我烧写的应该是对的,但是为什么烧写完后,J-FLASH 检测不到ID core 呢,是不是把出厂时的固化程序给擦除覆盖了呢?

    谢谢