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.

[参考译文] LAUNCHXL2-RM46:在冷启动/其他问题上出现错误

Guru**** 2595805 points
Other Parts Discussed in Thread: SEGGER, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1130954/launchxl2-rm46-nerror-asserted-on-cold-startup-other-issues

器件型号:LAUNCHXL2-RM46
主题中讨论的其他器件:SEGGERHALCOGEN

我正在使用最新版本的 HALCogen 开发 RM46 Launchpad、目标是 GCC 工具(我使用的是 ARM-none-eabi-gcc 10.3版本)。 我正在使用 Segger J-Link 通过 GDB 进行调试。 出于某种原因、当我通过 JTAG 加载到闪存时、似乎始终能够运行我的固件、当我尝试拔下调试器并执行冷复位(即移除 USB 电缆、重新安装以执行下电上电)时、 我会得到以下故障模式之一。 对于上下文、我的固件执行以下操作:

- GIO 初始化(HALCogen 中将用户 LED A 和 B 配置为默认开启、作为启动时的生命体征)

- RTI Init

- RTI 使能比较0事件

- RTI 起始计数器0

- SCI 初始化(我正在使用启用 RX 中断的 SCI LIN 模块)

- CAN 初始化(我正在使用 DCAN 1模块、消息框1作为 TX 消息、而消息框2作为 RX 消息、RX 中断被启用)

请注意、当我通过 JTAG 将代码加载到闪存中时、上述所有功能都正常工作(并且通过 GDB 和 Segger 仿真器通过"Continue"语句来运行触发程序)

但是、如果我通过实际移除并重新安装 USB 电缆执行"冷"重新引导、我会遇到以下行为之一:

-板似乎进入 gioInit()-->我认为 LED A 和 B 亮起。 但是、即使我已将它们设置为由 RTI 和 SCI RX 通知切换、它们也不会闪烁(请注意、这在 JTAG 加载和继续周期时工作正常)。 在这种情况下、只需按下并释放 Launchpad PCB 上的 PORRST 按钮、代码就会正确启动并正常运行。

-电路板 上电至红色的 nERROR LED。 没有生命的进一步迹象。 在某些情况下、重新启动之间此问题仍然存在(即使在所有电源被切断/关闭后冷重启)

我尝试了许多方法来寻找可能的问题:

-我已经验证了我的构建系统实际上是在 ARM 模式下编译 C 入口点(_c_int00)。

-我对 sys_link.ld 做了一些更改,以确保所有闪存都初始化为已知模式(即有效的程序数据或填充模式),从而方便闪存 ECC 自动计算。 据我所知、这应该是我唯一需要做的事情、以确保正确初始化所有闪存 ECC 区域、从而防止 ECC 错误升级为 ESM 组2/3事件。

我现在稍微撕下头发,把它向下追,希望能得到任何帮助。

-AG

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

    小更新:

    这个问题似乎至少与中断有关。 我继续编写了一个简单的 LED 闪烁循环、使用忙线 for loop (使用 ASM NOP 创建定时延迟)并在用户 LED 上调用 gioToggleBit()、该循环显示时仅运行此代码(并在循环执行之前调用_disable_interrupts_())) MCU 往往可以正常启动。 显然、这仍然不是全分辨率、因为我需要能够启用中断。

    我还会看到偶尔出现的冷复位、在这里我会得到一个红色的 nERROR、其他什么也没有、所以有时可能还有一些 ESM 启动错误...?

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

    尊敬的 Abhi:

    中断 ISR 中的 LED 是否闪烁? 当 nERROR 被置为有效时、您能否检查 ESM 状态寄存器3 (ESMSR3)中的哪个标志位被置位?