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:HALCogen + GCC 项目设置

Guru**** 665150 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/1129043/launchxl2-rm46-halcogen-gcc-project-setup

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

大家好、

我正在尝试在 RM46 Launchpad (RM46L852PGE)目标上设置一个简单的 hello world 项目。 我正在使用 Segger J-Link 和 GDB 通过其20引脚 TI JTAG 接头对电路板进行调试。  

我能够进入一 个正在运行的应用程序、并且尝试使用 RTI 比较0中断来实现一个基本的1kHz 时基。 但是、当我启用中断时、似乎处理器跳转到 undefEntry 处理程序、该处理程序目前是 Halcogen 生成的无限循环。 我在 rtiCompare0Interrupt 向量以及 rtiNotification 上设置了一个断点、该 IRQ 向量应在 RTI 中断被应答后调用该断点。

它在 rtiCompare0Interr()到 rtiNotification()的跳转中的某个位置显示,CPU 从未在该位置生成它,而是在 undefEntry... 有什么想法可以导致这种情况?

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

    快速跟进:我成功解决了问题。 对于安装到 VIM RAM 的中断处理程序、HALCogen 似乎不会生成 ARM 模式 pragma。 因此、在 Thumb 模式下(也是我的项目的大部分)编译的代码包括这些处理程序、在进入 IRQ 时导致 UNDEF 异常。 我能够通过在 RTI.c 中的 RTI IRQ 中添加一个__attribute__((target ("arm")))来解决此问题

    最后、作为 TI Cortex-R 产品 RM 和 TMS 系列的较长时间用户、我向 HALCogen 团队提出了一个谦逊的建议:请测试您的代码生成输出、不仅适用于 TI 工具、还适用于 GCC。 这一问题应该被发现在真正的基本 V&V 中、绝不能进入客户的项目。 我还注意到,即使是最新的 HALCogen (我正在运行的是)*Still *也有6年前我在 TI 论坛上报告的与 C 入口点_c_int00相关的代码生成错误,它没有 ARM 模式 pragma,因此在执行冷复位时会导致 CPU 到达即损。 这是不可接受的。

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

    谢谢 Abhl。 我会将您的解决方案添加到 HalcogGen 发行说明中。 目前、我们没有计划更新 IAR/GCC/GHS 工具的 HALCoGen。