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.

[参考译文] TMS320F28377S:代码段问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1601604/tms320f28377s-question-about-codesection

器件型号: TMS320F28377S

尊敬的 TI 工程师:

当我使用 CodeSection 指令将函数从闪存移动到 RAM 时。 我发现当执行上述操作时、如果调用此函数、产品会异常。

af9ea5f8-1d2c-40d4-a931-4bd3bb1f3566.png

那么、您对这个问题有什么想法吗? 或者您是否需要更多详细信息以进一步发现。

期待您的答复。

祝你一切顺利。

焦炭。

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

    您好、  

    由于专家可能因节假日而离职、请延迟回复。

    此致、
    Aj Favela.

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

    您好、

    Aj Favela,有一个美好的假期。

    祝你一切顺利、

    焦炭。

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

    焦炭、  

    您能否共享正在使用的链接器命令文件?

    此致

    Siddharth

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

    您好、

    Siddharth、下面是 pic 中显示的信息。

    祝你一切顺利、

    焦炭。

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

    您好、

    Siddharth、您能给我一些进一步的建议吗?

    祝你一切顺利、

    焦炭。

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

    焦炭、

    很抱歉耽误你的时间。   

    如果要将函数移至 RAM、 还应该添加代码以将代码复制到 RAM。

    该 pragma 仅告知链接器在 RAM 中分配一个运行地址、在闪存中分配一个加载地址。 它实际上不会移动代码。  

    您必须在调用函数之前添加此代码。

    extern uint16_t RamfuncsLoadStartRamfuncsLoadSizeRamfuncsRunStart

    memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);

    请检查代码中是否添加了这些内容、您仍然会看到此问题。

    此致

    Siddharth  

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

    您好、

    Siddharth、下面是将代码从闪存复制到 ram 的逻辑。 我不使用在使用时也不起作用的函数 memcpy。

    那么、您有什么建议吗?

    祝你一切顺利、

    焦炭。

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

    焦炭、

    您是否可以共享 CCS 工程?  此外、调用该函数时、您是否只执行一个步骤、看看代码是否从 RAM 执行?

    另外、请告诉我您从 RAM 运行此函数时观察到的错误。

    此致

    Siddharth  

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

    您好、

    Siddharth、

    由于信息安全、很难共享整个项目。 只有将函数复制到 ram 时才会发生此问题。 只有我上面显示的函数才会出现问题。 其他人会正常工作,但这除外。

    我检查了两个动作之间的不同映射。 但没有找到任何东西(如果你需要地图文档,我很高兴发送给你)。 地址和我设计的一样。 不同的现象只会发生在 机器的工作状态,即并网逆变器。 如果我没有将函数复制到 ram,这将是正常的。相反,输出电流将振动。 即使 CPU 未引用该函数也是如此。  

    祝你一切顺利、

    焦炭。

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

    焦炭、

    如果只有这个函数、那么这是一个非常具体的问题。  您是否有从 RAM 复制并执行而没有任何问题的其他函数?

    另外、  请检查#pragma 行是否已取消注释、因为在已共享的快照中、它看起来会被注释掉

     此致

    Siddharth。

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

    您好、

    Siddharth、上面显示的图片已被评论、因为我比较了是否评论之间的差异。 只有两个功能会发生异常现象在 pic 下的 叉意味着不正确。  

    祝你一切顺利、

    焦炭。

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

    焦炭、

    如果仅为几个函数执行此操作、则很难进行调试。  我以为这是发生在所有职能.  

    此致

    Siddharth

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

    您好、

    Siddharth、 也许解决这个问题的最佳方法是禁止这些功能。

    感谢您的帮助。

    此致

    Siddharth