. 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 的准确存储位置, 以避免数据覆盖.