W800 SDK修改固件運行起始地址

發布於 2025-01-03 14:46:35

使用W800 SDK時,尤其使用W802芯片外置flash時,經常會涉及到修改flash的空間分配,本文主要講述如何修改固件在flash的運行地址。
主要涉及如下幾個文件。
1、ld/w800/gcc_csky.ld
image.png
上圖中0x080d0400代表的是運行固件在flash中的起始地址,0x120000表示運行固件的最大長度,這些需要根據自己的實際使用情況來修改。注意這裡0x080d0400是固件的起始地址,不是固件header的地址。
2、tools/w800/.config
image.png
如果使用的make命令方式編譯則需要修改這個配置文件,CONFIG_W800_IMAGE_HEADER為運行固件的header的起始地址。CONFIG_W800_RUN_ADDRESS為運行固件的起始地址,與上面ld文件中的地址一致。
3、tools/w800/utilities/aft_build_project.sh
image.png
如果用的不是make命令方式,而是用的CDK編譯方式,則需要修改這個文件,run_img_header是運行固件的header在flash中的地址。run_img_pos是運行固件在flash中的地址,與ld文件中的地址一致。.config文件和aft_build_project.sh文件根據自己的編譯方式選擇對應的文件修改即可,兩個都修改也可以。
4、include/driver/wm_flash_map.h
image.png
CODE_RUN_START_ADDR指的是運行固件header的地址。USER_ADDR_START指的是用戶自己的應用參數保存位置地址,根據《WM_W800_QFLASH布局說明》文檔裡的劃分空間,該位置在運行固件之後,所以在運行固件位置移動的情況下,用戶區起始地址也要對應的向後移動,以保證CODE_RUN_START_ADDR的地址大於固件運行地址加與固件最大長度之和。
image.png

0 條評論

發布
問題