|
不知道應(yīng)該怎么準(zhǔn)確描述我遇到的問題。
先講一下我的使用場(chǎng)景,我使用stm32的bootloader進(jìn)行程序跳轉(zhuǎn)到0x0802 0000這個(gè)位置,0x0802 0000是主程序的起始地址。
我使用ucos-II系統(tǒng)編譯生成bin文件燒錄,正常運(yùn)行,但是通過memory查看0x0802 0000這個(gè)地址存儲(chǔ)的數(shù)據(jù)第七個(gè)字節(jié)是0x04,而標(biāo)準(zhǔn)庫(kù)和ucos-III生成的是0x02,也就是說我UCOS-II一開始存儲(chǔ)的是0x0804xxxx這個(gè),之后是0x0802xxxx,和我設(shè)置的主程序起始地址一致了。
標(biāo)準(zhǔn)庫(kù)和ucos-III一開始存儲(chǔ)的就是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 上傳
|