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.

[参考译文] TMS320F2.8377万D:ISR.cmd的作用是什么?

Guru**** 2574265 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/642873/tms320f28377d-what-is-the-isr-cmd-for

部件号:TMS320F2.8377万D

尊敬的各位:

我发现 官方示例项目中有ISR.cmd。 我的问题是:

1) ISR.cmd的用途是什么。它是否用作主CMD文件的附件定义? 例如,仅为运行中断功能分配RAM

2)我的项目已经有 一个.TI.ramfunc部分,用于将ram用于中断函数。 在这种情况下,我应该忽略ISR.cmd,或者只是从项目中删除该文件。

.TI.ramfunc部分:

#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>= 1500.9万
//.ti.ramfunc :{}> RAMM0,页=0
.TI.ramfunc :{}> RAMLS0 | RAMLS1 | RAMLS2 | RAMGS13,第= 0 //---xhf页,与闪存协调
#否则
ramfuncs:> RAMM0 page =0
#endif
#endif

"ISR.cmd":  

内存

第0页:/*程序存储器*/

第1页:/*数据存储器*/

}

/*
将部分分配给内存块。
*/

章节

/*分配方案领域:*/

isrfunc : load = RAMD0 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4,
运行= RAMGS14,//良好,cpu02使用ramgs14
load_start(_isrfuncLoadStart),
load_end (_isrfuncLoadEnd),
run_start(_isrfuncRunStart),
load_size (_isrfuncLoadSize),
页面= 0

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.是的,ISR.cmd只是确保ISR在复制到main()后从共享RAM运行。

    2.没关系。 您不必像示例那样执行此操作。 我怀疑示例是单独执行的,因为它是为了演示共享RAM的使用,而默认链接程序文件将.TI.ramfunc放入非共享内存中。

    Whitney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Dewey,感谢您的解释。
    还有一个问题:如果ISR或其他函数在ramLx或ramGSx中运行,是否有任何不同之处? 速度不同?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    否,它们之间的唯一区别是访问权限(允许CPU/CLA/DMA使用它)。

    Whitney