尊敬的老师好
我的问题还是如何将lib内的函数拷贝到RAM运行。我们项目分割为几个模块,分别由不同的小组完成,各小组之间交替测试不能以源代码的形式,需要封装为lib交给另外小组测试,但是编译器模式是将lib内的函数都放在FLASH内运行,这样效率就降低很多,不能满足我们项目的需要。所以想请教老师,如何实现这个功能。(注:工程C文件中的函数拷贝到RAM运行没有问题)。附件是我做的压缩版工程,麻烦老师帮我看下。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的老师好
我的问题还是如何将lib内的函数拷贝到RAM运行。我们项目分割为几个模块,分别由不同的小组完成,各小组之间交替测试不能以源代码的形式,需要封装为lib交给另外小组测试,但是编译器模式是将lib内的函数都放在FLASH内运行,这样效率就降低很多,不能满足我们项目的需要。所以想请教老师,如何实现这个功能。(注:工程C文件中的函数拷贝到RAM运行没有问题)。附件是我做的压缩版工程,麻烦老师帮我看下。
QianJun
下面是IQMATH 库中的函数拷贝到RAM运行的例子:
首先编译一下工程或是库,找到函数对应的obj文件,比如<IQ24cosPU.obj>(IQmath) 这个是IQ24cosPU函数
然后在CMD中定义一个段,按照下面的语法把库中某些obj load在flash,运行在RAM,
最后在main中调用memcpy函数。
IQmath :
LOAD = FLASH_AB, PAGE = 0
RUN = H0SARAM, PAGE = 0
LOAD_START(_IQfuncs_loadstart),
LOAD_END(_IQfuncs_loadend),
RUN_START(_IQfuncs_runstart),
{
-l IQmath.lib<IQ24sinPU.obj>(IQmath)
-l IQmath.lib<IQ24cosPU.obj>(IQmath)
-l IQmath.lib<IQ24div.obj>(IQmath)
}