在线升级iap

2019-08-17 03:11发布

最近公司项目要求做在线升级,然后我调用串口IAP实验中的IAP-Bootloader V1.0作为引导程序。通过串口发送bin文件,出现了个问题,思考多日都梅搞明白,还烦请大神指点指点。

项目的程序中用到了3个定时器,TIM2,TIM3,TIM4,3和4用来控制PWM输出,2用来计数。定时器2注释掉,定时器3和4的功能都能正常运行;一旦定时器2不注释,从引导程序调到项目程序必定卡死。其中生成bin文件都是按照教程设置,项目程序也通过SCB->VTOR = FLASH_BASE | 0x10000跳转中断向量表。
而使用例程,单独编译定时器2作为app程序又是可以正常运行的。

如果是中断向量表指向问题,为什么定时器3和定时器4都ok,唯独2不可以,而单独编译定时器2又可以?


注:使用的例程为战舰V3标准库函数。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
电子之旅
1楼-- · 2019-08-17 04:44
不升级,先单独测试定时器2程序看有没有问题。
新手驾到
2楼-- · 2019-08-17 04:55
电子之旅 发表于 2017-6-30 22:26
不升级,先单独测试定时器2程序看有没有问题。

项目程序,是实现了现有的功能之后,按照新的要求升级。
hasaki
3楼-- · 2019-08-17 08:49
你可以看看是不是原程序使用的内存和你代码存放区发生冲突了
小工人
4楼-- · 2019-08-17 13:42
问一下。你的新程序大概占用多大内存?我打算把更新的程序放到flash里,但不知道需要多大
新手驾到
5楼-- · 2019-08-17 14:43
 精彩回答 2  元偷偷看……
小工人
6楼-- · 2019-08-17 19:12
新手驾到 发表于 2017-7-5 11:50
40多一点,flash是够用的

好的谢谢

一周热门 更多>