STM32F107 IAP 注意的地方

最近尝试用STM32F107 做IAP 测试,通过USB Host的方式从U盘更新程序,这个在ST官方有现成的demo,而且还有文档,不多说,主要说说其中的一个小问题。


APP程序也是用到了USB host,设置方面都没问题,如下:




在main函数中设置中断向量偏移量:



生产.bin文件后进行下载,当时无法运行!

设置肯定是没问题的,生产的二进制文件也应该是没问题的,但为什么不对呢?于是我设想会不会是IAP程序和APP程序都使用了USB ,或者在某些中断或什么的冲突呢?结果找不到答案。。。。


无意之间在百度上看到一个关于中断地址设置重复的问题,也就是NVIC_SetVectorTable() 函数多处使用并且设置的偏移量不同,突然醒悟,于是我去查找我的程序中是否有这个问题,果然,找到了!



由于STM32F107 的USB需要使用TIM2 来作为定时器,所以在初始化定时器中断的时候重新定义了偏移量,罪过罪过~~~~~


结果虽然出来了,但是问题是很明显的,在IAP过程中,APP 和IAP程序都应是独立的,一般RAM是公用的,FLASH独立,当然,也有SRAM型的APP,反正自己的FLASH和RAM都应保持独立,不要与其他的重叠。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值