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.

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();

  • 就用MemCopy()做代码搬移   

    为了提高效率   建议整体搬移吧

  • 请问,这个怎么操作,整体搬移是可以的,

    但是函数地址还是在FLASH中,不会调用RAM中的啊!

    在MAP文件中看得很清楚!

    0033f077        _cos

  • Xiaojun Deng1 说:

    请问,这个怎么操作,整体搬移是可以的,

    但是函数地址还是在FLASH中,不会调用RAM中的啊!

    在MAP文件中看得很清楚!

    0033f077        _cos

    搬移是在程序运行后,所以原来的flash中的代码还是存在的,你可以看一下ram中有无分配,或者仿真运行一下,实际运行的代码地址是否在ram

  • Changjiang Liu 说:

    请问,这个怎么操作,整体搬移是可以的,

    但是函数地址还是在FLASH中,不会调用RAM中的啊!

    在MAP文件中看得很清楚!

    0033f077        _cos

    搬移是在程序运行后,所以原来的flash中的代码还是存在的,你可以看一下ram中有无分配,或者仿真运行一下,实际运行的代码地址是否在ram

    [/quote]

    这个肯定不会调用RAM中的啊,其调用地址在编译的时候就决定了的,不会在运行时候改变的

  • 看看可不可以copy使用到的目标文件:

    SECTIONS
    {
    .text:{ file1.obj(.text) file2.obj(.text)}  load=【load address】 run =【run address】
    }

  • Changjiang Liu 说:

    看看可不可以copy使用到的目标文件:

    SECTIONS
    {
    .text:{ file1.obj(.text) file2.obj(.text)}  load=【load address】 run =【run address】
    }

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