STM32/STM8技术论坛
直播中

赵群山

7年用户 197经验值
私信 关注
[问答]

STM32F0 IAP怎么跳轉到user application功能

小弟目前需要一個bootloader可以將開啟後跳轉到user application的功能,版子是STM32F030R8

發現官網有一個IAP sample看起來很適合做這樣的功能,如下
http://www.st.com/web/en/catalog ... 743/LN1734/PF258152

查看了一下code,主要做跳轉的動作是以下幾行程序,但是用IAR的debug模式下並沒有看到跳轉到我設定的application address
    if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    {
      /* Jump to user application */
      JumpAddress = *(__IO uint32_t*) (APPLICATION_ADDRESS + 4);
      Jump_To_Application = (pFunction) JumpAddress;
      
      /* Initialize user application's Stack Pointer */
      __set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
      
      /* Jump to application */
      Jump_To_Application();
    }

請問有甚麼地方是我疏忽的嗎?  

麻煩各位高手指教了~~謝謝

回帖(6)

崔明华

2018-10-17 12:46:24
这个是KEIL下的吧,IAR下的不知道,帮顶
举报

李维嘉

2018-10-17 13:05:12
    if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000) 这个if语句看看有没有执行。
举报

杨杜昼

2018-10-17 13:21:44
顶起来
举报

赵群山

2018-10-17 13:32:09
引用: zhouxk 发表于 2018-10-17 13:05
    if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000) 这个if语句看看有没有执行。

有的,有進這個條件,所以也有看到後面執行jump_to_application,但是不知道為甚麼沒有跳轉到設定的位址

查了一些文件,似乎跟向量表設定有關?  

但是目前還看不是很懂....是否有高手能提點?
举报

李维嘉

2018-10-17 13:47:51
引用: mu89640 发表于 2018-10-17 13:32
有的,有進這個條件,所以也有看到後面執行jump_to_application,但是不知道為甚麼沒有跳轉到設定的位址

查了一些文件,似乎跟向量表設定有關?  

说明没有执行,if条件
举报

赵群山

2018-10-17 13:58:37
在app的main加了向量表的設定後已經可以work了

再來的我還需要能讓iap跟user app之間互相做跳轉

這部分還沒有甚麼想法該怎麼做

請問有高手能給建議嗎?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分