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

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

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

weimin xue:

weimin xue

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

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

Seven Han:

回复 weimin xue:

您好,

请参考flash_programming例程

文档:

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

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

weimin xue:

回复 Seven Han:

在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中?

谢谢指教!

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

wentao zhang:

回复 Seven Han:

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

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

wentao zhang:

回复 weimin xue:

请问你解决了吗,我也有这方面的需求

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

Seven Han:

回复 wentao zhang:

请您在官网直接搜索:Copying Compiler Sections from Flash to RAM on the TMS320F28xxx DSCs (Rev. A)

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

wentao zhang:

回复 Seven Han:

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 28377S程序烧进Flash后如何将部分函数copy到RAM中运行以加快速度?
分享到: 更多 (0)