您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页STM32 的IAP应用问题解答

STM32 的IAP应用问题解答

来源:五一七教育网


问题1:

我用CAN接口做了IAP

两个程序区

8000000-8002000是BOOT区,写入的启动代码,引导应用程序写入的。

8002000-结尾是应用区,APP程序区

现在的问题是进行APP程序后,不响应中断

如果不用中断程序,在APP工作一切正常,用中断程序的话就不正常

说一下我的设置:

在应用程序区APP区,

IROM设置8002000-801E000共56K为应用程序区。

在LINKer中设置R/O base为8002000

在NVIC初始化时设置: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);

其它地方没有动过。

答案:

问题是在这里产生的,当从CAN接受中断中跳转到应用区时,整个应用区程序都是Boot程序中CAN接收中断的ISR,于是在应用区中任何优先级低于CAN接受中断的中断程序都是得不到执行的。

问题2:

IAP跳转到App中会死在下面这个函数里?

void Delay(u32 nCount)

{

TimingDelay = nCount;

/* Enable the SysTick Counter */

SysTick_CounterCmd(SysTick_Counter_Enable);

while(TimingDelay != 0)

{

}

/* Disable the SysTick Counter */

SysTick_CounterCmd(SysTick_Counter_Disable);

/* Clear the SysTick Counter */

SysTick_CounterCmd(SysTick_Counter_Clear);

}

答案:

在stm32f10x_nvic.h

中,找到#define ((u32)0x08000000)

#define

((u32)0x08002000) IAP下载和APP应用程序运行正常。

NVIC_VectTab_FLASH NVIC_VectTab_FLASH

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务