关于 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 我在成都 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |