关于H745xI双核板子Boot_IAP跳转APP程序的那些事

关于H745xI双核板子Boot_IAP跳转APP程序的那些事

关于IAP跳转APP的程序,网上一大堆,官方CubeMX的例程也有,我就不废话了。直接上代码

这是M4内核的跳转代码

void Flash_M4_Class::iap_Jmp_To_app_M4(u32 appxaddr)
 {
       /* Test if user code is programmed starting from address "APPLICATION_ADDRESS" */
    if (((*(__IO uint32_t*)appxaddr) & 0x1ffe0000 ) == 0x10000000)
    {
      /* Jump to user application */
      JumpAddress = *(__IO uint32_t*) (appxaddr + 4);
      JumpToApplication = (pFunction) JumpAddress;
      /* Initialize user application's Stack Pointer */
      __set_MSP(*(__IO uint32_t*) appxaddr);
      JumpToApplication();
    }
 }

这里简单的分析一下
appxddr的传参就是APP代码的首地址,该首地址存放的栈顶指针(没记错的话),而这个0x1000_0000就是keil工程魔法棒的IRAM1,至于前面的0x1ffe0000其实就是一个判断的标志位,写成0x10000000也可以。
你的RAM的哪些位为1,就要写把那一位置1来判断。

JumpAddress+4就是程序的真正入口了。
__set_MSP(),上面一行有注释ÿ

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值