我的这个工程其实是整个项目的一部分,属于项目中可更新的部分,打个比方整个项目是框架,而我这个工程只是其中的插件,可以更换甚至更新的。框架不需要知道到底安装的是什么插件,只知道位于0x80040000的插件函数地址,调用即可。<br /><br /><br />我想把框架和插件分开,放到两个工程里面分别编译和链接。<br /><br />框架部分问题不大,我现在弄插件部分出现问题了。<br /><br />举个例子我的工程里有三个文件:<br />mem_plug.scf,加载文件<br />plug.c,plug.h代码文件<br /><br />编译以后,生成hex文件,我用hjtag下载的时候提示:<br />ERROR:Destination Flash address is out of range<br /><br />我的程序存储器有2M字节,肯定不是硬件方面的原因,估计是我的工程有问题,请高人指点下。<br /><br />下面是我的文件:<br />1、mem_plug.scf<br />ROM_LOAD 0x80040000<br />{<br /> ROM_EXEC 0x80040000<br /> {<br /> plug.o (install, +First)<br /> plug.o (plug)<br /> * (+RO)<br /> }<br /><br /> IRAM 0x40000000<br /> {<br /> * (+RW,+ZI)<br /> }<br /><br /> STACKS +0 UNINIT<br /> {<br /> stack.o (+ZI)<br /> }<br /><br /> ; ERAM 0x81000000<br /> ; {<br /> ; * (+RW,+ZI)<br /> ;}<br /><br /> HEAP +0 UNINIT<br /> {<br /> heap.o (+ZI)<br /> }<br />}<br /><br /><br />2、plug.c<br />#pragma arm section code = "plug"<br /><br />uint8 some_other_function(void)<br />{<br /> //do some thing <br />}<br /><br />#pragma arm section code = "install"<br />int main(void)<br />{<br /> //do somthing<br />}<br />#pragma arm section<br /><br />请问,我还需要做什么工作,或者您能指点我看哪方面的书籍也可以。 |
|