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