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)诊断

Guru**** 2482885 points
Other Parts Discussed in Thread: TMS570LS1224, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/716843/tms570ls1224-memory-protection-unit-mpu-diagnostic

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

我需要一些对 TMS570LS1224控制器的支持。

作为诊断的一部分、我们有一项要求测试存储器保护单元(MPU)、因此请建议方法–如何完成?

此外、对于 DMA MPU 和 HET MPU 单元、如何对其进行定期测试?

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

    您好、Alok、

    [A]用于 Cortex-R4 CPU 的 MPU:
    Cortex-R4 TRM 版本 r1p3描述了第7章中的 MPU 功能。 第7.5节介绍了 MPU 检测到的故障。 有三种故障:

    1) 1)背景故障:
    当 CPU 访问一个不在定义的区域内的位置时、这个故障发生。 HALCoGen 定义了一个背景区域0、以覆盖所有4GB 的可寻址空间。 您可以修改此配置、以保留任何 MPU 区域都不覆盖的存储器区域。 然后、访问此未覆盖区域中的某个位置可能会导致后台故障。 它将导致中止(预取/数据)并可在处理程序中寻址。

    2) 2)权限故障:
    这是任何 MPU 检测到的最常见故障条件。 CPU 的 MPU 允许将每个区域定义为无访问、只读或读写区域。 此外、还可以将每个区域配置为仅在特权模式下才能访问。 此外、您还可以将某些区域配置为"从不执行(XN)"区域、以便不允许从这些区域执行代码。 很容易编写导致这些故障的代码。

    3) 3)对齐故障:
    当 CPU 访问的地址与访问的大小不符时、就会发生这种情况。 例如、从与16位边界不对齐的地址读取半字(16位)。

    [b]用于 DMA 访问的 MPU:
    该 MPU 可配置为定义完全访问、只读、只写或不访问的存储器区域。 您可以故意违反设置的权限并确保指示错误。

    [C]针对 HTU 访问的 MPU:
    此 MPU 只允许您定义"无访问"或"只读访问"的存储器区域。 您可以故意违反设置的权限并确保指示错误。

    此致、
    Sunil

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

    感谢 Sunil 的回复。

    DMA MPU 的一个观察点:

    DMA 传输类型配置为块传输。

    如果 DMA 访问存储器位于无访问区域(在 DMA MPU 中配置)、则不会报告访问冲突。  

    3.另一个观察结果:对于配置为帧传输时的传输类型、其报告访问冲突。

    请澄清这一意见。

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

    您的帖子因某种原因从我的通知中删除。 测试 DMA 的 MPU 是否仍然存在问题? 在 ESM 组1通道2中标记所有 DMA MPU 违规。 您可以选择在标记此错误时生成 CPU 中断。

    此致、
    Sunil