STM32F429 IAP+App(RTX kernel) 无法跳转到APP的问题

wangji666666 wangji666666 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
硬件平台STM32F429,软件平台KEIL MDK 5.12
IAP程序实现APP程序的更新功能,主要代码

static void JumpToApp(void)
{
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFD0000) == 0x20000000)
{
/* Jump to user application */
m_JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
JumpToApplication = (FunVoidType) m_JumpAddress;
/* Initialize user application's Stack Pointer */
__set_MSP(*(__IO uint32_t*) ApplicationAddress);
__set_PRIMASK(1);
JumpToApplication();
}
Uart1SendSyc("JumpToApp Failed!\r\n");
}


APP程序非常简单,显示LED的闪烁,主要是为了试验能否正常进入APP,虽然用了RTX系统,为了程序简单没有写任何RTX相关的代码

int main(void)
{
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000); //App程序开始的地方
LED_Init();
while(1)
{
STM_EVAL_LEDToggle(LED4);
}
}


其他细节:
1、IAP ROM:0x8000000,size:0x10000; RAM1:0x20000000;Size:0x10000
2、APP ROM:0x8010000,size:0xD0000; RAM1:0x20010000;Size:0x20000

问题:
APP程序加了RTX就无法进入MAIN函数,就已经出错,循环在OS错误的地方
如果APP程序不加RTX,同样的代码,就没有任何问题

请问大家有没有碰到过这样的问题,请教大家如何解决?
这里有几个遇到这样问题的帖子,但是我还是没有解决。
http://www.keil.com/forum/13707/
http://www.keil.com/forum/22446/ 这个问题和我几乎一样,也是STM32的片子
http://www.keil.com/forum/15685/
...全文
评论 5
收藏 已收藏
分享
返回顶部
wangji666666
单片机/工控 27,522 成员 28,796 内容