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:IOM3:写时出现 ESM 错误错误始终启用?

Guru**** 2468460 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1085132/tms570lc4357-iom3-esm-error-on-write-error-always-enabled

部件号:TMS570LC4357

各位专家:

《安全手册》将诊断 IOM3列为“始终启用”。 这意味着,在用户模式下写入数据对未实现位置的数据将导致 ESM 137。

令人困惑的是 ERR_ENABLE _REG (错误信号启用寄存器)的存在。 从描述来看,这不是指错误本身,而是指错误发生时调用的中断。 问题是,如果我想使用中断,我可以使用发出 ESM1.37信号时调用的 ESM 中断(如果启用)。

 (Q1)此寄存器的用途是什么?我是否需要将错误信号转换为 ESM?

谢谢,致以诚挚的问候!
最大

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

    您好,Max,

    在用户模式下向 PINMMR 寄存器写入数据将生成 ESM 1.37错误,这是正确的。 但要生成 ESM 1.37, 应首先启用 ERR_ENABLE _REG。

    示例代码:

    //进入用户模式

    ASM(" CPS #16");
    ASM("莫夫 LR,r0");
    ASM(" MRR R1,CPSR");
    ASM(" MSR spsr_cxsf,R1");

    /*启用插针式拳击*/
    KickerRe-> KICKER0 = 0x83E70B13U;
    KickerRe-> KICKER1 = 0x95A4F1E0U;

    //启用地址和保护错误信号
    iomm 勘误注册->ERR_ENABLE _REG = 0x3;

    //在用户模式下将数据写入 pinmmr
    PINMUxRe->PINMMMR7 = 0U;

    /*禁用插针式拳击*/
    KickerRe->KICKER0 = 0x0;
    KickerRe->KICKER1 = 0x0;

    将设置 ESM 1.37:故障地址为0x12C (pinmmr7寄存器偏移)

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

    QJ 您好,

    《安全手册》对 iom3的描述如下:

    陷印错误- IOMM
    IOMM 可以在收到的事务上捕获地址和权限错误。 尝试执行的事务
    访问 IOMM 芯片选择中未实施的位置会导致 ESM 响应。 交易
    不在特权模式下也会生成 ESM 响应。
    重置后将启用此功能。 软件无法禁用此功能。

    由于 SW 必须启用此功能,因此《安全手册》中存在错误。 正确吗?

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

    您好,Max,

    声明中没有问题。  IOMM 会捕获错误并在 IOMM 状态和错误寄存器中设置错误标志。 重置后将启用陷阱机制。  

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

    你(们)好,QJ。

    好的,这句话是指错误陷阱本身,而不是指:”

    非特权模式的事务也会生成 ESM 响应。”