这几天在看boot loader,用的是LM3S9D92, 下载的是开发板上带的例程
昨天就是下载一个周立功的boot loader后的例子之后,无法用JLINK连接了,下载不进去程序
用其他的板子试了一下,确认可以下载,说明是芯片出问题了
今天把芯片拆掉,换了一块新的
jlink连接后,下载了例程里面的boot_eth.bin
然后拔掉jlink,用网线连接到网口,用LM FLASH PROGRAMMER终于连接成功,
更新了例程里面的程序boot_demo_eth.bin
欣喜之后,再连接jlink,想下载其他例程,结果 又连不上了,
难道又悲催了么?
有没有什么好的解决办法?
还有就是,有没有高手指点一下,
这两个例程之间,到底是什么关系,怎么用?boot_eth和boot_demo_eth
此帖出自
小平头技术问答
但是第二个片子没什么问题,电脑重启就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的
一周热门 更多>