jeff0118 发表于 2015-11-19 17:37:37

STM32F0 IAP function

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

發現官網有一個IAP sample看起來很適合做這樣的功能,如下
http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743/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();
    }

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

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

yklstudent-1794 发表于 2015-11-19 22:19:57

这个是KEIL下的吧,IAR下的不知道,帮顶

abclsl 发表于 2015-11-20 10:05:45

    if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000) 这个if语句看看有没有执行。

dsjsjf 发表于 2015-11-20 12:01:19

顶起来

jeff0118 发表于 2015-11-20 15:27:32

abclsl 发表于 2015-11-20 10:05
if (((*(__IO uint32_t*)APPLICATION_ADDRESS) & 0x2FFE0000 ) == 0x20000000) 这个if语句看看有没有执 ...

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

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

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

abclsl 发表于 2015-11-20 16:31:38

jeff0118 发表于 2015-11-20 15:27
有的,有進這個條件,所以也有看到後面執行jump_to_application,但是不知道為甚麼沒有跳轉到設定的位址
...

说明没有执行,if条件

jeff0118 发表于 2015-11-23 16:36:22

在app的main加了向量表的設定後已經可以work了

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

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

請問有高手能給建議嗎?
页: [1]
查看完整版本: STM32F0 IAP function