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.

28377S程序烧进Flash后如何将部分函数copy到RAM中运行以加快速度?

Other Parts Discussed in Thread: CONTROLSUITE

如题,目前工程中用的controlSUITE中官方CMD文件:28377S_FLASH_lnk.cmd,程序烧写到Flash中运行,现在DSP上电时能把ADC中断服务函数移植到RAM中运行,以加快中断服务程序的执行速度,求指教应该如何进行操作?谢谢!

  • weimin xue 说:

    如题,目前工程中用的controlSUITE中官方CMD文件:28377S_FLASH_lnk.cmd,程序烧写到Flash中运行,现在DSP上电时能把ADC中断服务函数移植到RAM中运行,以加快中断服务程序的执行速度,求指教应该如何进行操作?谢谢!

    问题表述不清楚,现在希望DSP上电时能把ADC中断服务函数移植到RAM中运行,以加快中断服务程序的执行速度

  • 您好,

    请参考flash_programming例程

    文档:

    http://www.ti.com.cn/cn/lit/an/spraau8/spraau8.pdf

  • 在main.c文件起始处(#include "F28x_Project.h"之后)增加代码段

    #ifdef __TI_COMPILER_VERSION__

         #if __TI_COMPILER_VERSION__ >= 15009000

             #define ramFuncSection ".TI.ramfunc"

         #else

             #define ramFuncSection "ramfuncs"

         #endif

    #endif

    #pragma CODE_SECTION(adca2_isr, ramFuncSection);

    在28377S_FLASH_lnk.cmd文件中做如下修改(只改了标红两处)

    #ifdef __TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION__ >= 15009000
    .TI.ramfunc : {} LOAD = FLASHB,                             //FLASHD改为了FLASHB
    RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0, ALIGN(4)
    #else
    ramfuncs : LOAD = FLASHB,                                  //FLASHD改为了FLASHB
    RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    RUN_SIZE(_RamfuncsRunSize),
    RUN_END(_RamfuncsRunEnd),
    PAGE = 0, ALIGN(4)
    #endif
    #endif

    通过示波器观察发现ADC中断服务程序执行时间在修改前后无变化(能编译通过也能掉电运行),想请教是什么原因?是我从Flash到RAM的copy方式不正确,还是说未加这些改动之前程序已经在初始化时刻被全部复制到了RAM中?

    谢谢指教!

  • 你好,打不开,能放个新链接么?

  • 请问你解决了吗,我也有这方面的需求
  • 请您在官网直接搜索:Copying Compiler Sections from Flash to RAM on the TMS320F28xxx DSCs (Rev. A)