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:ESM 高电平中断未触发

Guru**** 2455560 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1192962/tms570lc4357-esm-high-interrupt-not-triggering

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

您好!

我已经使用 halcogen 设置了一个简单的项目:

  • 已激活 Mibspi1、并选择"Enable RAM ECC"
  • HET1[27]引脚配置为输出(连接到 Devkit 板上的 LED)
  • ESM 通道17 (mibspi1 ECC 双错误)被启用、被设定为高电平(FIQ)并且被设定为影响 nERROR 引脚
  • 我已经在代码中验证生成的系统初始化称为 att startup -默认情况下、它们被添加到 enty point _c_int00
  • 我已将对 mibspiInit()和 hetInit()的调用添加到 main()

 通过在 ECCDIAG_CTRL 寄存器中为 Mibspi1设置 ECCDIAG_EN 选项并操作 ECC 值、我成功地跳过了 Mibspi1双 ECC 错误。 这会导致 ESM 设置正确的标志、并且连接到 nERROR 的 LED 在电路板上亮起。

我要测试的是 esmHighInterrupt()操作中的陷阱执行,但是中断似乎不会发生。 我已经在中断操作中添加了一个"while (1)"、并且设置了 het1[27] LED (确认正常工作)、但这没有影响-执行正常继续。

此配置缺少什么内容?

此致、

Magnus

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

    您好、 Magnus、

    我将进行检查。 ECC 错误标志(ESM 和 MibSPI ECC)是否被置位?

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

    如何向 MibSPI RAM 注入2位 ECC 错误?

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

    是的、设置了 PAR_ECC_STAT 的 UERR_FLG0以及 ESMSR1的位/通道17。

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

    要导致不可纠正的 ECC 错误、我执行以下操作:

    1. 通过设置 MIBSPI1的 ECCDIAG_CTRL 寄存器中的 ECCDIAG_EN (0-3)= 5h 位、为 MIBSPI1启用 EDD 诊断模式
    2. 在 SPI1 txRAM 0xFF0E0000中设置一个值、当前使用值0x0005A5A5
    3. 使用值0x0AAA5A5A 在该 RAM 的 ECC 位置设置某个值、地址0xFF0E0000 + 0x400
    4. 执行对 txRAM 的读取
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="547416" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1192962/tms570lc4357-esm-high-interrupt-not-triggering ]ESM Chan 17 (mibspi1 ECC 双错误)已启用、设置为高电平(FIQ)并设置为影响 nERROR 引脚

    nERROR 引脚是否置为有效? 默认情况下、CPU FIQ 未启用、您是否在向 MibSPI RAM 注入 EC 错误之前启用了它?

    在向 CPU 发出中断请求之前、有三个"门":

    1. 产生中断请求的模块有一个寄存器来启用它可以产生的每个中断。   
    2. 矢量中断管理器(VIM)具有寄存器、可根据优先级机制(先是较低的通道编号)将来自模块的中断请求转发到 CPU。
    3. 最后、必须将 CPU 本身配置为响应 VIM (IRQ 或 FIQ)转发的中断请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是我的错误。 我认为中断使能包含在 halcogen 生成的 systemInit()操作中。

    按预期工作-非常感谢!