使用 W800 SDK 时,  尤其使用 W802 芯片外置 flash 时,  经常会涉及到修改 flash 的空间分配,  本文主要讲述如何修改固件在 flash 的运行地址.  
主要涉及如下几个文件.  
1, ld/w800/gcc_csky. ld
上图中 0x080d0400 代表的是运行固件在 flash 中的起始地址,  0x120000 表示运行固件的最大长度,  这些需要根据自己的实际使用情况来修改.  注意这里 0x080d0400 是固件的起始地址,  不是固件 header 的地址.  
2, tools/w800/. config
如果使用的 make 命令方式编译则需要修改这个配置文件,  CONFIG_W800_IMAGE_HEADER 为运行固件的 header 的起始地址.  CONFIG_W800_RUN_ADDRESS 为运行固件的起始地址,  与上面 ld 文件中的地址一致.  
3, tools/w800/utilities/aft_build_project. sh
如果用的不是 make 命令方式,  而是用的 CDK 编译方式,  则需要修改这个文件,  run_img_header 是运行固件的 header 在 flash 中的地址.  run_img_pos 是运行固件在 flash 中的地址,  与 ld 文件中的地址一致.  . config 文件和 aft_build_project. sh 文件根据自己的编译方式选择对应的文件修改即可,  两个都修改也可以.  
4, include/driver/wm_flash_map. h
CODE_RUN_START_ADDR 指的是运行固件 header 的地址.  USER_ADDR_START 指的是用户自己的应用参数保存位置地址,  根据 WM_W800_QFLASH 布局说明 文档里的划分空间,  该位置在运行固件之后,  所以在运行固件位置移动的情况下,  用户区起始地址也要对应的向后移动,  以保证 CODE_RUN_START_ADDR 的地址大于固件运行地址加与固件最大长度之和.  