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:在测试 DMA 存储器保护(DMA9A)时未设置 ESM 1.2

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190582/tms570lc4357-esm-1-2-is-not-set-when-testing-dma-memory-protection-dma9a

器件型号:TMS570LC4357

各位专家、您好!

在安全手册中提到的 DMA9A 诊断的执行期间、我们注意到 ESM 1.2未被设置为违反 DMA 的强制内存访问。
但是 REG0FT 位被置位(我们正在测试区域0)。
基于这个、测试看起来正常工作、但是向 ESM 发送错误信号似乎被禁用。

但我们注意到当 INT0ENA 被置位时、ESM 1.2 Error 被置位。 根据我们的理解、该位启用 DMA 模块区域0的所有中断。

(Q1) ESM 错误的信令是否依赖于所有 DMA 中断的使能状态?

(Q2)如果出现这种情况,我们如何在不使用 DMA 中断 FTC、LFS、HBC 和 BTC 的情况下启用 ESM 错误信令?

谢谢、此致、
最大

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

    尊敬的 Max:

    我已开始研究您的问题、我将很快提供更新。

    --

    谢谢、此致、
    Jagadish。

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

    尊敬的 Max:

    您是否可以共享代码以进行快速调试?

    --

    谢谢、此致、

    Jagadish。

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

    您好 Jagadish、

    我无法分享我的代码。 但 这里是测试的步骤。 目标是设置只读区域、然后尝试对其进行写入。 我们预计会看到错误位和 ESM 1.2已设置。

    1.设置 ProtectedRogion:通过设置 DMA MPR0S 寄存器中的地址和带有地址+ sizeof (uint32)的 DMA MPR0E
    2.将 REG0ENA 位置1
    3.将 INT0ENA 位置为0

    4.将 REG0AP 设置为只读
    5.将 INT0ENA 设置为1 (是否需要设置 INT0ENA 才能发出 EMS 1.2信号?)
    6.设置 DMA CTRL 数据包
     6.1 ISADDR =源地址
     6.2 IDADDR =目标地址
     6.3将 IFTCOUNT 更改为1
     6.4将 IECOUNT 更改为1
     6.5分辨率至2.  
     6.6 WES 至2.
     6.7 tType 至0
     6.8 ADDMR 设为0
     6.9 ADDMW 至0
     6.10目标为0
     6.11链至0
     6.12 EIDXD 至0
     6.13 EIDXS 至0
     6.14 FIDXD 至0
     6.15 FIDXS 更改为0
     6.16 CH0PA - PORTA 至2.

    7.将 SWCHENA 设定 为1
    8.将 DMA_EN 位设置为1
    等待 DMA_BUSBUSY = 0

    10.检查 源地址处的数据数据!=目标地址处的数据
    11.检查错误位和 ESM 1.2
    12禁用 DMA

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

    尊敬的 Max:

    [引用 userid="430202" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190582/tms570lc4357-esm-1-2-is-not-set-when-testing-dma-memory-protection-dma9a "](Q1)是 ESM 错误的信令、与所有 DMA 中断的使能状态相关?[/引用]

    ESM 1.2错误并不是所有的 DMA 中断、而是仅取决于与 MPU 相关的中断的状态。

    [引用 userid="430202" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1190582/tms570lc4357-esm-1-2-is-not-set-when-testing-dma-memory-protection-dma9a "](Q2)如果是这样,我们如何在不使用 DMA 中断 FTC、LFS、HBC 和 BTC 的情况下启用 ESM 错误信令?

    这种情况并非如此、ESM1.2与 FTC、LFS、HBC 和 BTC 中断之间没有关系。

    它将仅取决于 MPU 区级中断、如 INT0ENA、 INT1ENA、 INT2ENA 和 INT3ENA。

     更多详细信息、请参阅20.3.1.64 DMA 存储器保护控制寄存器1。

    --

    谢谢、此致、
    Jagadish。