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.

[参考译文] TMS320F28388S:CM 内核 TI-TXT 中的寄存器

Guru**** 2536330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1546254/tms320f28388s-registers-in-cm-core-ti-txt

器件型号:TMS320F28388S


工具/软件:

您好、

               在 CM 内核中、我们有一个构建和生成 TI-TXT 输出的工程。  该工程使用 IPC、在 TI-TXT 文件中、我可以看到 IPC 消息 RAM 的地址以及其中每个位置的字节。  CM 到 C1 和 C1 到 CM 消息 RAM 都是如此。  在 C1 工程中、IPC 存储器不会显示在 TI-TXT 文件中、仅显示代码。  是否有办法使 CM 工程仅显示代码?  cmd 文件的相关部分为:

C1_CM_MSGRAM :原点= 0x20080000、长度= 0x00000800
CM_C1_MSGRAM :原点= 0x20082000、长度= 0x00000800

MSGRAM_CM_CPU1 :> CM_C1_MSGRAM、type=NOINIT
MSGRAM_CPU1_CM :>C1_CM_MSGRAM 、type=NOINIT

谢谢您、

教育

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

    尊敬的 Ed:

    让我看看这个,并在接下来的几天内回复你。

    此致、

    Aishwarya

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

    教育、

    您是否可以尝试  向段中添加 NoLoad 属性、如下所示?  链接器 将 为将出现在存储器映射中的段分配空间、但不应将其放置在输出模块中(TI-TXT 文件)。

    MSGRAM_CM_CPU1  : >  CM_C1_MSGRAM, type=NOLOAD
    MSGRAM_CPU1_CM  : >  C1_CM_MSGRAM, type=NOLOAD
     

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    我尝试过、收到了以下错误消息。  是否可以使用其他语法?

    错误#10227-D:错误的节属性: “NoLoad"</s>“

    谢谢您、

    教育

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

    如果我删除 NOINIT 部分、则会构建该部分、并且该区域不再位于 TI-TXT 输出中。

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

    由于这不是正常 RAM 的一部分、它是否会在程序进入 main () 之前进行初始化?

    谢谢您、

    教育

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

    教育、

    感谢确认、我已相应地更新了原始回复。

    是的、它应该 由链接器自动初始化(假设也使用 EABI)。  您可以使用以下链接器选项 在运行时自动初始化变量。 您可以通过映射文件+ 内存分配器工具来验证这一点。

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    我们不希望像我们自己做的那样将其初始化。  是否有办法阻止它并仍然保留 NOLOAD?

    谢谢您、

    教育

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

    教育、

    您能否确认 目前也调用了--ram_model 还是--rom_model? 则需要禁用该功能

    CM RAM 在 POR 时初始化为零值。 任何需要针对特定变量进行的初始化通常都在应用程序代码中完成。

    您想要在软件中对其进行初始化是否有特定原因?

    此致、

    Aishwarya

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

    尊敬的 Aishwarya:

    我们使用的是 ROM_MODEL 选项。

    现在我想一下、自行清除存储器可能没有什么帮助。  如果我们选择 NO_INIT、进行初始化的代码会被删除吗?  还是会出现在那里?

    谢谢您、

    教育

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

    教育、

    BTW ROM_MODEL 允许在启动时自动初始化 、如下所示。

    NOINIT 属性会告知编译器、 某个段不应初始化、链接器需要将该段放置在特殊 .noinit 存储器段中。 如果您不希望将整个段启用为 NOINIT、则可以使用具有特定变量的属性、如下所示:  2.7.3.变量属性—TI Arm Clang 编译器工具用户指南 

    此致、

    Aishwarya

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

    如果我理解正确、将它们标记为 NOINIT 不会改变正在使用的闪存量?

    对于无法从 CM 端初始化的存储器、是否仍应将其标记为 NOINIT?  还是会由链接器自动处理?

    谢谢您、

    教育

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

    教育、

    NOINIT 表示用户 需要初始化存储器(即链接器不会自动初始化)。 在所有 TI 编译器中、这应该相同。

    此致、

    Aishwarya

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

    好的。  以及 CM 内核无法写入的存储器、即 C1 到 CM RAM。  显然、这不能从物理上由 CM 内核初始化。  是否应该将其标记为 NOINIT?

    谢谢您、

    教育

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

    教育、

    是的、这适用于您的特定应用。

    此致、

    Aishwarya

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

    好的。  感谢您的帮助 Aishwarya、

    教育

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

    教育、

    很高兴听到这个消息、您是否也愿意将以前的答案标记为“已解决“、以便将来看到此主题的任何人使用? 谢谢你。

    此致、

    Aishwarya

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

    不知道我可以标记两个!  很好了解。

    再次感谢、

    教育

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

    教育、  

    谢谢!

    此致、

    Aishwarya