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.

[参考译文] TMS570LC4357:__TI_auto_init ()导致启动期间不精确中止

Guru**** 2460850 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/650653/tms570lc4357-__ti_auto_init-causing-imprecise-abort-during-startup

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

项目基于 HalCoGen 04.06.01。 启动顺序为:

_coreInitRegisters_()->_coreInitStackPointer_()->_memoryInit_()->_coreEnableEventBusExport_()->VIMInit()->_TI_auto_init ()

该项目曾经运行良好、在添加了一些应用层代码后、它破裂了。 当处于_TI_auto_init 中时、将发生不精确的中止、清除 CPSR.a 后、将输入数据条目。 如果在_TI_auto_init 执行之前清除 CPSR.a、则数据条目将立即在_TI_auto_init 函数调用内部输入。  

我通读论坛上发布的有关_TI_auto_init 中止问题的其他问题、主要有两个可能的根本原因。

1)。 未选择 CCS 中的 ECC 自动生成。 (https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/602078/2287967)我认为这不是我的情况、因为该项目之前就已经开始工作、实际上、选择了 CCS 中的选项。

2)。 映射文件错误。 (https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/554272 )可能,但不确定我应该如何测试它。

另一件值得注意的事情是、我目前正在使用 Thumb 模式进行编译、涉及 RTS 是 rtsv7R4_T_be_v3D16_eabi.lib。 我应该改用 ARM 模式吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、问题已解决。 一个未定义的 RAM 扇区自动映射到闪存区域。 在.cinit 复制期间、memset 调用以在闪存区域存储值。 然后触发中止。