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/TMS320F2.8377万S:如何判断在RAM或闪存中运行

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/580901/ccs-tms320f28377s-how-to-tell-if-running-in-ram-or-flash

部件号:TMS320F2.8377万S

工具/软件:Code Composer Studio

也许我漏掉了一些东西,但是当我通过“__attribute___((ramfunc))"指定要在RAM中运行的函数时,我仍然看到闪存中调试器的反汇编(0x8万及以上)。  我希望看到RAM地址,但我没有看到,这让我怀疑我没有正确设置要在RAM中运行的功能。

在映射文件中,我确实看到了在“TI.ramfunc”部分为应该具有“RAM函数”的源文件分配的空间。

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

    查看反汇编视图中的地址应该是判断您是从RAM还是闪存运行的可靠方法。 您使用的编译器版本是什么? 您是否介意共享链接器命令文件?

    出于好奇,使用#pragma code_section (函数名称,".ti.ramfunc")代替属性是否更好?

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

    你知道,我不确定我是否有问题要开始。 今天上午重新检查项目时,我确实看到我的ramfuns在0x8000 (RAMLS)中运行。 我可能在某一天误读了拆卸位置,并在地址中添加了额外的0。

    仅供参考,我有编译器版本15.12 .3.LTS。 “code_section”和“__attribute__”均按预期工作。

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

    Eric,

    很高兴它工作正常。 我将关闭此线程。 如果问题再次弹出,请继续并启动新的。

    Whitney