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.

[参考译文] TMS320F28388D:CPU2的 RAM 初始化。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/969004/tms320f28388d-ram-initialization-of-cpu2

器件型号:TMS320F28388D

您好、查姆斯、

根据 TRM 上的 CPU2引导流程图、CPU2仅在 POR 时进行 RAM 初始化。 我在调试模式下使用 CCS 进行评估、点击"Restart"图标时、软件将再次重新启动、我发现全局变量的内容将被初始化、这是否合理?

另一个问题是、我是否可以使用 CPU1复位 CPU2、以便 CPU2再次重新启动?

感谢你的帮助。

Luke

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

    您好!

    默认情况下、EABI 编译器会将所有全局变量初始化为 c_init00函数的一部分。 如果在应用程序中未显式初始化全局变量、编译器将进行零初始化。

    可以使用 NOINIT pragma 关闭此功能。

    是 CPU1、它使 CPU2脱离复位状态。 更多详细信息、请参阅 device.c 中的 Device_bootCPU2函数。  有关 CPU2RESCTL 寄存器的更多详细信息、另请参阅 TRM。

    此致、

    Veena

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

    Veena、

    我使用 COFF 格式并获得相同的结果、当我在调试模式下点击"Restart"图标时、CPU2将初始化我的全局变量、它似乎与 CPU2引导流程聊天不匹配、这是否合理?

    我知道 CPU2RESCTL 寄存器并尝试过、我可以通过设置 CPU2RESCTL 寄存器来复位 CPU2并使其脱离复位状态、但似乎 CPU2不会再次从应用起点执行程序、我还应该执行什么操作才能使 CPU2再次运行?

    此致、

    Luke

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

    您好、Luke、

    [引用 USER="Luke Chen ]我使用 COFF 格式并获得相同的结果、当我在调试模式下点击"Restart"图标时、CPU2将初始化我的全局变量、它似乎与 CPU2引导流程聊天不匹配、这是否合理?[/QUERPLET]

    这些全局变量是否已显式初始化? (如 int var = 10;) EABI 和 COFF 格式都会初始化此类变量。 EABI 和 COFF 之间的区别在于、EABI 编译器也会初始化未初始化的变量(int var;-> var 将使用 EABI 初始化为0。)

    [引用用户="Luke Chen "]我知道 CPU2RESCTL 寄存器并尝试过、我可以通过设置 CPU2RESCTL 寄存器来重置 CPU2并使其退出复位状态、但似乎 CPU2不会再次从入口点执行程序、我还应该执行什么操作以使 CPU2能够再次运行?

    是否正在使用 Device_bootCPU2函数? 这还会在配置 CPU2RESCTL 之前发送 CPU2引导所需的 IPC 命令。

    此致、

    Veena