|
不知道應(yīng)該怎么準確描述我遇到的問題。
先講一下我的使用場景,我使用stm32的bootloader進行程序跳轉(zhuǎn)到0x0802 0000這個位置,0x0802 0000是主程序的起始地址。
我使用ucos-II系統(tǒng)編譯生成bin文件燒錄,正常運行,但是通過memory查看0x0802 0000這個地址存儲的數(shù)據(jù)第七個字節(jié)是0x04,而標(biāo)準庫和ucos-III生成的是0x02,也就是說我UCOS-II一開始存儲的是0x0804xxxx這個,之后是0x0802xxxx,和我設(shè)置的主程序起始地址一致了。
標(biāo)準庫和ucos-III一開始存儲的就是0x0802xxxx。
大家看截圖輔助理解
- //#define FLASH_APP1_ADDR 0x08020000
- if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFFFF0000)==(FLASH_APP1_ADDR & 0xFFFF0000))//判斷是否為0X08XXXXXX.
- {
- __disable_irq();
- Iap_Load_App(FLASH_APP1_ADDR);//執(zhí)行FLASH APP代碼
- }
復(fù)制代碼 |
-
2.JPG
(62.74 KB, 下載次數(shù): 50)
下載附件
2022-2-15 10:48 上傳
|