我的分散加载文件如下(见后): ROM_LOAD 0x0 { ROM_EXEC 0x00000000 0x0000c000 { Startup.o (vectors, +First) CGPIOINOUT_Fix.o (+RO) CIap.o(+RO) main.o(+RO) CGPIOOUT_Fix.o (+RO) CGPIOIN_Fix.o (+RO) CSMISPI_Fix.o (+RO) CFlash_Fix.o (+RO) } }
ROM_LOAD1 0x0000c000 { ROM_EXEC1 +0 { main_user.o(+RO) * (+RO) } IRAM 0x40000000 { Startup.o (MyStacks) * (+RW,+ZI) }
HEAP +0 UNINIT { Startup.o (Heap) }
STACKS 0x40008000 UNINIT { Startup.o (Stacks) } }
但 CGPIOINOUT_Fix.o (+RO) CIap.o(+RO) CGPIOOUT_Fix.o (+RO) CGPIOIN_Fix.o (+RO) CSMISPI_Fix.o (+RO) CFlash_Fix.o (+RO) 这几个类只要定义全局变量就如有如下错误 则编译出错: cannt use baseed/limit symbols for no_contiguous section C&&pi_ctorvec 把们定义是局部就会运行正确。 我的目的是,把Startup.o (vectors, +First) CGPIOINOUT_Fix.o (+RO) CIap.o(+RO) main.o(+RO) CGPIOOUT_Fix.o (+RO) CGPIOIN_Fix.o (+RO) CSMISPI_Fix.o (+RO) CFlash_Fix.o (+RO 这几个文件放在0-0000c000这个地址,这几个文件只有3K大。 其他的在c000地址后。 为什么有这种错误?
|