.config中的定義如下:
CONFIG_W800_IMAGE_HEADER=0x8010000
CONFIG_W800_RUN_ADDRESS=0x8010400
CONFIG_W800_UPDATE_ADDRESS=0x8010000
wm_flash_map.h中的定義如下:
/*Upgrade image area/
/*Run-time image header area/
CONFIG_W800_RUN_ADDRESS中的定義應該就是CODE_RUN_START_ADDR吧,為啥這兩個值會不一樣?CODE_UPD_START_ADDR的值倒是跟CONFIG_W800_UPDATE_ADDRESS一樣。
CONFIG_W800_RUN_ADDRESS中定義的才是代碼存放在flash的實際起始地址吧?
SDK中的CODE_RUN_START_ADDR似乎只有一處使用,怎麼看也不像是代碼運行的地址。
if(((img_param->upgrade_img_addr|FLASH_BASE_ADDR) < CODE_UPD_START_ADDR)
@lilitao CODE_RUN_START_ADDR指向的是IMAGE_HEADER位置,往後偏移1k,就是實際IMAGE的地址呀。用戶代碼裡面不需要關心這些,代碼存放起始地址是secboot跳轉需要用到的。
因為我要用到user.bin用戶自定義數據,而且比較大,所以要搞清楚用戶代碼在flash的準確存儲位置,以避免數據覆蓋。