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