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

wangji666666 2014-10-10 12:34:53
硬件平台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/
...全文
1558 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小迷糊1996 2017-05-10
  • 打赏
  • 举报
回复
同问是怎么解决的!!
wuxianxiazai123 2016-05-25
  • 打赏
  • 举报
回复
请问下是怎么解决的?
longlinesun2011 2015-05-22
  • 打赏
  • 举报
回复
问题解决了吗?
wangji666666 2014-10-11
  • 打赏
  • 举报
回复
楼上正解。。。
tracing 2014-10-11
  • 打赏
  • 举报
回复
if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFD0000) == 0x20000000)这句话有问题

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧