打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浅析STM32 Bootloader设计
typedef void (*iapfun)(void); //定义一个函数类型的参数
  iapfun jump2app;
  __asm void MSR_MSP(u32 addr) //设置堆栈指针
  {
        MSR MSP, r0
        BX r14
  }
  //跳转到应用程序段
  //appxaddr:用户代码起始地址.
  void iap_load_app(u32 appxaddr)
  {
        if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法.
        {
              jump2app = (iapfun)*(vu32*)(appxaddr+4);//用户代码区第二个字为程序开始地址(复位地址),此处查看中断向量表可知
              MSR_MSP(*(vu32*)appxaddr);//初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
              jump2app(); //跳转到APP,执行复位中断程序
        }
  }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
重要【STM32学习笔记】STM32 BOOTLOADER配置以及APP跳转
STM32IAP升级
MCU软件重启升级实现
STM32串口IAP实验(战舰STM32开发板实验)
STM32单片机的ISP使用方法
stm32实现iap远程固件更新
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服