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.

[参考译文] TMS570LS1224:MPU 初始化导致 IAR 复位时的数据中止

Guru**** 2448780 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/634984/tms570ls1224-mpu-initilazation-causing-data-abort-with-iar-reset

器件型号:TMS570LS1224

尊敬的 TI 团队:

我们在 TMS570控制器中面临数据中止。 我们正在    主函数中使用 MPU 初始化函数_mpuInit_();。  我们怀疑这个 _mpuInit_();函数使用 IAR 复位选项导致数据中止。

当我们注释  _mpuInit_();函数时、我们没有在 TMS570 MCU 上遇到任何数据中止。

因此我认为_mpuInit_();函数是数据 中止问题的原因。 但为什么这会导致数据中止对我来说是未知的?

为供您参考、 我们将 ThreadX 用作操作系统。

重现问题的步骤:

1.连接设置  

2.在 IAR 中、刷写 FW  

3.运行目标器件(F5)

执行 RESET 命令、然后再次运行。

5. TMS570在_dabort 处理程序中挂起。

我们是否需要在 main()函数之后调用_mpuinit()??  

如果我们使用的是操作系统,我们是否需要调用函数 _mpuinit() _mpuEnable_()?

从安全角度来看、您是否会建议启用存储器保护需求??

您能否共享一些有关存储器保护的信息、因为 TMS570技术文档中的信息有限。

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

    您好 Bharat、

    dabort 可能是由访问受 MPU 保护的存储器位置引起的。 Cortex-R4 MCU 实现了一个系统控制协处理器 CP15。 CP15提供了读取有关中止的其他信息的可能性。 CP15中保存中止原因信息的寄存器为:

    •数据故障状态寄存器

    •辅助故障状态寄存器

    •数据故障地址寄存器

    •指令故障地址寄存器

    您可以在 CCS->View->Registers->CP15读取这些寄存器