boot之后芯片无法用仿真器连接了,怎么办?

2019-03-24 13:26发布

这几天在看boot loader,用的是LM3S9D92, 下载的是开发板上带的例程

昨天就是下载一个周立功的boot loader后的例子之后,无法用JLINK连接了,下载不进去程序

用其他的板子试了一下,确认可以下载,说明是芯片出问题了

今天把芯片拆掉,换了一块新的

jlink连接后,下载了例程里面的boot_eth.bin

然后拔掉jlink,用网线连接到网口,用LM FLASH PROGRAMMER终于连接成功,

更新了例程里面的程序boot_demo_eth.bin

欣喜之后,再连接jlink,想下载其他例程,结果 又连不上了,

难道又悲催了么?

有没有什么好的解决办法?

还有就是,有没有高手指点一下,
这两个例程之间,到底是什么关系,怎么用?boot_eth和boot_demo_eth 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
xuhe1206
1楼-- · 2019-03-24 17:39
< 第一个片子的确是挂掉了
但是第二个片子没什么问题,电脑重启就ok了

经过不断的试验才懂
boot_eth是在芯片复位启动后,检测PB4是否为高或者低,进而判断是进入更新还是app
boot_demo_eth本身就是一个app,跟其他普通的应用程序并无太大区别,只是在运行过程中不断监测升级请求信号,一旦收到请求之后,通过这个语句:
(*((void (*)(void))(*(unsigned long *)0x2c)))();
直接跳转到update handler,也即它的函数地址,通过调用这个函数来进行程序更新

另外需要注意的是:如果在bootloader里面定义了app_start_address    0x1000,那么你的应用程序的icf文件里面,flash空间的起始地址一定要大于0x1000,否则bootloader可能只能用一次,更新一次之后就不能再用了,必须重新下载bootloader才ok的

一周热门 更多>

相关问题

    相关文章