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.

[参考译文] TMS570LS3137:CCM 自检

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/591673/tms570ls3137-ccm-self-test

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

您好!

我正在使用 Halcogen 为 TMS570LS3137生成的安全启动代码、并且在错误强制模式下的 CCM 自检有问题。

我对将 CCM 置于错误强制模式(MKEY=0x9)时会发生什么情况有点困惑。 我相信将生成一个 CCM-R4F 比较错误、这反过来将导致一个 ESM 高级(不可屏蔽)中断。 但是在 Halcogen 代码中,函数 vimInit 直到调用 ccmSelfCheck()之后的函数 fstC()结束时才会被调用。 在这种情况下、生成 NMI 时会出现什么行为?

谢谢、

标记...

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

    我对迟迟不答复你的帖子表示歉意。 出于某种原因、您发布时错过了它。

    NMI 始终被映射到 VIM 的通道0并且缺省情况下、在 Halcogen 中生成 esmHighInterrupt。 它在 ESM.c 中被定义、所以任何触发 ESM 组2通道2错误的 CCMR4错误应该导致到这个 ISR 的引导。

    请注意、CCMR4运行会受到调试模式的影响、如 TRM 第9.3.5节所述、因此在这种运行模式下、错误可能不会被置为有效。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、感谢你的回答。

    我在 ESM.c 中找到了 esmHighInterrupt()的定义,但是正如我之前所说的,就我在 Halcogen 代码中可以看出调用 viInit(),它 将此 ISR 的地址加载 到 VIM RAM 中 ,直到调用 ccmSelfCheck()之后才会发生。 在这种情况下、当生成 NMI 时、 无法向 ISR 发出指令。

    这种情况下的行为是否只取决于   启动时通道0的 VIM 表位置中存储了什么值?

    谢谢、

    标记。  

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

    Mark、您好!

    通常、向量/ISR 指针在编译时定义、INIT 函数仅调整 ISR 的通道映射和优先级。 下面是定义 ISR 指针的 const 结构。 请注意 ESM ISR 指针的设置。

    静态常量 t_isrFuncptr s_vim_init[96U]=
    {
    phantomInterrupt (&P)、
    等高中断(&E)、 /*通道0 */
    phantomInterrupt (&P)、 /*通道1 */
    phantomInterrupt (&P)、 /*通道2 */
    phantomInterrupt (&P)、 /*通道3 */
    phantomInterrupt (&P)、 /*通道4 */
    phantomInterrupt (&P)、 /*通道5 */
    phantomInterrupt (&P)、 /*通道6 */
    phantomInterrupt (&P)、 /*通道7 */
    phantomInterrupt (&P)、 /*通道8 */
    phantomInterrupt (&P)、 /*通道9 */
    phantomInterrupt (&P)、 /*通道10 */
    phantomInterrupt (&P)、 /*通道11 */
    phantomInterrupt (&P)、 /*通道12 */
    phantomInterrupt (&P)、 /*信道13 */
    phantomInterrupt (&P)、 /*通道14 */
    phantomInterrupt (&P)、 /*通道15 */
    phantomInterrupt (&P)、 /*通道16 */
    phantomInterrupt (&P)、 /*通道17 */
    phantomInterrupt (&P)、 /*通道18 */
    phantomInterrupt (&P)、 /*通道19 */
    phantomInterrupt (&P)、 /*通道20 */
    phantomInterrupt (&P)、 /*通道21 */
    phantomInterrupt (&P)、 /*通道22 */
    phantomInterrupt (&P)、 /*通道23 */
    phantomInterrupt (&P)、 /*通道24 */
    phantomInterrupt (&P)、 /*通道25 */
    phantomInterrupt (&P)、 /*通道26 */
    phantomInterrupt (&P)、 /*通道27 */
    phantomInterrupt (&P)、 /*通道28 */
    phantomInterrupt (&P)、 /*通道29 */
    phantomInterrupt (&P)、 /*通道30 */
    phantomInterrupt (&P)、 /*通道31 */
    phantomInterrupt (&P)、 /*通道32 */
    phantomInterrupt (&P)、 /*信道33 */
    phantomInterrupt (&P)、 /*通道34 */
    phantomInterrupt (&P)、 /*通道35 */
    phantomInterrupt (&P)、 /*通道36 */
    phantomInterrupt (&P)、 /*通道37 */
    phantomInterrupt (&P)、 /*信道38 */
    phantomInterrupt (&P)、 /*信道39 */
    phantomInterrupt (&P)、 /*通道40 */
    phantomInterrupt (&P)、 /*通道41 */
    phantomInterrupt (&P)、 /*通道42 */
    phantomInterrupt (&P)、 /*信道43 */
    phantomInterrupt (&P)、 /*信道44 */
    phantomInterrupt (&P)、 /*通道45 */
    phantomInterrupt (&P)、 /*通道46 */
    phantomInterrupt (&P)、 /*信道47 */
    phantomInterrupt (&P)、 /*通道48 */
    phantomInterrupt (&P)、 /*通道49 */
    phantomInterrupt (&P)、 /*通道50 */
    phantomInterrupt (&P)、 /*信道51 */
    phantomInterrupt (&P)、 /*信道52 */
    phantomInterrupt (&P)、 /*信道53 */
    phantomInterrupt (&P)、 /*信道54 */
    phantomInterrupt (&P)、 /*频道55 */
    phantomInterrupt (&P)、 /*频道56 */
    phantomInterrupt (&P)、 /*频道57 */
    phantomInterrupt (&P)、 /*信道58 */
    phantomInterrupt (&P)、 /*信道59 */
    phantomInterrupt (&P)、 /*信道60 */
    phantomInterrupt (&P)、 /*信道61 */
    phantomInterrupt (&P)、 /*信道62 */
    phantomInterrupt (&P)、 /*信道63 */
    phantomInterrupt (&P)、 /*信道64 */
    phantomInterrupt (&P)、 /*通道65 */
    phantomInterrupt (&P)、 /*信道66 */
    phantomInterrupt (&P)、 /*信道67 */
    phantomInterrupt (&P)、 /*信道68 */
    phantomInterrupt (&P)、 /*信道69 */
    phantomInterrupt (&P)、 /*信道70 */
    phantomInterrupt (&P)、 /*信道71 */
    phantomInterrupt (&P)、 /*通道72 */
    phantomInterrupt (&P)、 /*信道73 */
    phantomInterrupt (&P)、 /*信道74 */
    phantomInterrupt (&P)、 /*通道75 */
    phantomInterrupt (&P)、 /*信道76 */
    phantomInterrupt (&P)、 /*信道77 */
    phantomInterrupt (&P)、 /*信道78 */
    phantomInterrupt (&P)、 /*信道79 */
    phantomInterrupt (&P)、 /*通道80 */
    phantomInterrupt (&P)、 /*信道81 */
    phantomInterrupt (&P)、 /*信道82 */
    phantomInterrupt (&P)、 /*信道83 */
    phantomInterrupt (&P)、 /*信道84 */
    phantomInterrupt (&P)、 /*频道85 */
    phantomInterrupt (&P)、 /*频道86 */
    phantomInterrupt (&P)、 /*信道87 */
    phantomInterrupt (&P)、 /*频道88 */
    phantomInterrupt (&P)、 /*信道89 */
    phantomInterrupt (&P)、 /*频道90 */
    phantomInterrupt (&P)、 /*通道91 */
    phantomInterrupt (&P)、 /*通道92 */
    phantomInterrupt (&P)、 /*信道93 */
    phantomInterrupt (&P)、 /*通道94 */
    }; 

    如果您的代码不是这种情况、则如果矢量位置的地址是非法地址、则会导致幻象中断或预取中止。