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 条评论

发布
问题