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.

[参考译文] CCS/TMS570LS1224:MPU

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/779717/ccs-tms570ls1224-mpu

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

工具/软件:Code Composer Studio

我正在尝试使用 MPU。 当我分配一个数组时、MPU 保护被触发并进入     b _dabort,  

 进入

 stmfd R13!、{r0 - R12、LR};  

然后进入  

    b _dabort,

就像环路,一样

该程序如以下两幅图所示:

,我有两个问题:

 1.程序为什么会进入      b _dabort 而不是 LDR R12、在   stmfd R13之后是 esmsr3!、{r0 - R12、lr}?

触发 MPU 保护的正常软件流程是什么?

 

 

更多图片:

为数组分配值以触发 MPU 保护

R0-R13的值

HALCoGen 的3.config

4. CMD

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

    您好、Wenbao、

    您的 MPU 设置可用于测试 MPU 访问冲突。 RAM 部分被定义为只读、那么 将数据写入 RAM 将违反 MPU 并导致 CPU 中止。 这是预期的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当 MPU 被触发时、我想控制一个引脚拉取:μ s
    是否可以修改 dabort 的内容?
    如何实现 MPU 被触发时、引脚将发出高电平信号的功能?
    3. CPU 是否可以通过看门狗从 MPU 访问冲突?恢复?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Wenhao、

    您可以将代码(切换 GPIO 引脚)添加到位于 sys_selftest.c 中的 custom_abort 函数中

    void custom_dabort (void)

    /*此处需要自定义数据中止处理程序。
    *此数据中止不是由闪存和 TCRAM ECC 逻辑的诊断检查引起的。
    *
    /*用户代码开始(42)*/
    /*用户代码结束*/


    如果您将数据写入受保护的 SRAM (只读)、您将继续获得中止。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    经过一些测试后,我发现区域大小是否设置为128字节,它将被中止并执行 custom_abort。如果大小设置为128KB 它将执行如下所示:

    它 只执行“b _dabort”和‘“stmfd R13!,{r0 - R12,LR}”。它没有执行 custom_dabort。为什么不同的大小会导致两个不同的结果?

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

    必须将区域起始地址与区域大小的边界对齐。 例如、如果一个区域大小为128KB、那么基地址必须是128KB 的倍数(至少为0x20000)。

    如果该区域未正确对齐、则会导致不可预知的行为。