微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于 LPC17xx IAP实现历程

IAP:在应用编程

我最近做的一个项目需要实现网络的远程升级,需要用到IAP功能,网上也有很多代码供参考,实现方式都是 Bootloader + UserCode的方式,即一个很少的起动程序实现IAP和用户代码跳转,自己写一个类似FlashMagic的工具来烧写用户代码,bootloader可以通过ISP或者JTAG的方式写入。

下面说说我在开发步骤和遇到的问题:

1.Bootloader 跳转到 Usercode:这个很简单,一般都不会出错,一个指针函数就OK

2.要确定中断向量表的位置,是内存还是flash,这个非常重要

3.三就是启动了噻

当然,在进行第一步时,要检查本地存储器中一个指定位置的标识,是否需要更新用户程序,如果需要的话,就IAP

这些网上资料很多,不再多说。


我遇到的问题:

1.中断:bootloader开了 Uart0中断,Timer0中断,写了一个简单的应用程序,什么中断都没有开,问题就在这里了,当bootloader打开了中断后,跳转到应用程序后,由于没有更新应用程序的中断向量表,就跳转一个非法地址,异常!

确定原因:解决方案就不必多说了噻!


2.半主机模式:网上扫一下,很多哈!

我的用户程序里有FS,NET等,用的是RL-ARM,在FS中,需要重定向输入与输出,由于在第二次更新工程时,没有加入重定向文件,导致出错,加入重定向后,问题解决



一个问题困扰了我差不多一周,第二个问题倒是马上就发现了


在这里,给朋友们做个参考,同时我也共享了我的bootloader,欢迎指正,共同进步



广告一下:

我现在无业,接活哈

B/S(DIV+CSS,.NET C#,sqlServer) C/S(.NET C#) 嵌入式开发等

电话:13060063607

QQ:85669000

我在成都

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐