TI中文支持网
TI专业的中文技术问题搜集分享网站

ccs如何将库函数设置成在ram中运行?难道需要重新编译库文件?

现在使用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】}

多谢,我以前用过这种方法是可以的,但是,用在这个库上却不行,可能是库的原因,我再试试

赞(0)
未经允许不得转载:TI中文支持网 » ccs如何将库函数设置成在ram中运行?难道需要重新编译库文件?
分享到: 更多 (0)