现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
mangui zhang:
就用MemCopy()做代码搬移
为了提高效率 建议整体搬移吧
现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
Xiaojun Deng1:
回复 mangui zhang:
请问,这个怎么操作,整体搬移是可以的,
但是函数地址还是在FLASH中,不会调用RAM中的啊!
在MAP文件中看得很清楚!
0033f077 _cos
现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
rookiecalf:
回复 Xiaojun Deng1:
Xiaojun Deng1
请问,这个怎么操作,整体搬移是可以的,
但是函数地址还是在FLASH中,不会调用RAM中的啊!
在MAP文件中看得很清楚!
0033f077 _cos
现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
Xiaojun Deng1:
回复 rookiecalf:
Changjiang Liu
Xiaojun Deng1
请问,这个怎么操作,整体搬移是可以的,
但是函数地址还是在FLASH中,不会调用RAM中的啊!
在MAP文件中看得很清楚!
0033f077 _cos
现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
rookiecalf:
回复 Xiaojun Deng1:
看看可不可以copy使用到的目标文件:
SECTIONS{.text:{ file1.obj(.text) file2.obj(.text)} load=【load address】 run =【run address】}
现在使用28335,开发环境使用CCS V5.2,
在定时器中断中调用了double cos(double x)函数,这个库函数使用的是ti的rts2800_fpu32_fast_supplement.lib库,
但是编译后默认是存储在.text段中,即在FLASH中运行,
由于是中断中调用,我想把这个函数加载在RAM中运行,提高中断运行速度,通过下面的办法实现不了!
其他自己编写的函数这样申明以后就可以,但是库函数却不行!难道需要重新编译库文件吗?
#pragma CODE_SECTION(cos,"ramfuncs");
extern double cos(double x); // rts2800_fpu32_fast_supplement.lib中优化后的cos函数
请问有什么方式可以将库中的函数加载到RAM中运行吗?
ps.CMD文件中关于加载RAM部分如下:
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
main函数中有将flash中内容拷贝到RAM中
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
Xiaojun Deng1:
回复 rookiecalf:
Changjiang Liu
看看可不可以copy使用到的目标文件:
SECTIONS{.text:{ file1.obj(.text) file2.obj(.text)} load=【load address】 run =【run address】}
多谢,我以前用过这种方法是可以的,但是,用在这个库上却不行,可能是库的原因,我再试试
TI中文支持网



