我做了一个工程项目,因在线升级的原因,需要把该工程文件的代码放置在0x9000这个位置执行(0x8000-0x9000之间放置bootloader),因此需要对工程的linker配置项进行修改,我手动修改了下图中的红色圈内的内容,但是编译一直提示地址冲突报overlap的错误(内容为"#error clnk release\sfp_voa_ctrl.lkf:1 segments .text (0x8350-0xa7c2) and .const (0x9000-0x9080) overlap"),我手动修改.lnk文件的地址定义(修改"+seg .const -b 0x8080 -m 0x3f80 -n .const -it "中的0x8080为0x9080),还是不能解决这个问题,编译后.lnk文件的内容又恢复成没修改之前的内容了。请问如何解决这个问题?还是说即使我的程序要放在0x9000开始的位置,也不要修改linker配置? |