STM32F103的IAP中Bootloader中断以及App程序不能进入中断的问题解决方法。

来源:互联网 发布:linux 重置网络配置 编辑:程序博客网 时间:2024/06/05 21:55
IAP是个好东西,开发板上讲的很细很明白,在实际用途上来说,串口IAP过程需要校验。ST官方给的例子很好用,超级终端Ymodem协议发送,带CRC校验。
1,Bootloader介绍,修改的官方IAP程序。官方的程序使用的它自己的开发板,要用按键进入Bootloader然后选择是否进入IAP等等选项,我改成启动时串口是否收到指定字符来判断是否进入IAP的Bootloader(打开超级终端,连上自己开发板,键盘一直点字符‘a’,然后重启开发板就进入Bootloader)。

2,原ST官方给的Bootloader程序中在跳转到APP程序后没有给关掉中断,我在调试STM32F103RB(20kRAM 128kROM)中发现总是不能正常运行App程序,困扰了我很长时间,后来在Bootloader加上了关闭中断,后解决了这个问题,同时也隐藏了另一个问题3。
3,我换了CPU改成STM32F103RD(60kRAM)发现APP程序不能进入中断,我找了好久,最终发现是中断关闭没有打开,而STM32F103RB片子上却没有这个问题。。。我在代码上做如下如理,解决了这个问题,终于解决了。。。


int main(void) 
{    
        SystemInit();      //系统时钟等初始化
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x5000);
__enable_irq();//开启总中断
delay_init(72);          //延时初始化
NVIC_Configuration();     //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

。。。。。
}

App程序偏移地址 0x5000
设置如下
0 0
原创粉丝点击