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.

[FAQ] [参考译文] 【常见问题解答】AM62A7:C7X.CPU3 MMU 实现

Guru**** 2952440 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1658389/faq-am62a7-c7x-cpu3-mmu-implementation

器件型号: AM62A7
主题: SysConfig 中讨论的其他器件

如何实现 C7X.CPU3 MMU 安全诊断?

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

    安全手册有以下说明:

    MMU(内存管理单元)将属性应用于内存访问、将虚拟重新映射到物理地址、并可以根据配置拒绝访问某些区域。 如果 CPU 由于故障而计算出错误的地址、并且该地址访问由于 MMU 编程而被阻止的区域、则 MMU 通过识别错误的地址来提供诊断覆盖。

    要触发 MMU 故障、我们应对 C7x MMU 区域未映射的地址执行存储器访问。  

    您可以检查工程的 SysConfig 并查找 C7x MMU 未映射的地址、并执行读取操作以触发 MMU 故障。  

    以下代码可用于触发 MMU 故障:

    void mmuFaultTrigger(void){
    volatile uint32_t *bad_ptr = (volatile uint32_t *)0xD0000000U;   //unmapped address
    volatile uint32_t dummy = *bad_ptr; }

    代码进入异常处理程序、并更新以下寄存器:

    IERR= 0x0000000000000001

    IEAR= 0x00000000D0000000

    IESR= 0x0000000000010845