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.

[参考译文] CBA9-AM243X:MCU-PLUS-SDK -执行无效事务错误代码的诊断措施

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1389050/mcu-plus-sdk-am243x-cba9---implementation-of-diagnosis-measures-for-invalid-transaction-error-codes

器件型号:MCU-PLUS-SDK AM243X

工具与软件:

您好、专家


我目前正在测试 CBA9的诊断措施-错误代码无效的交易在安全手册章节关于 CBASS。 我想知道我应该如何引入此故障、是否有任何示例程序或过程供参考?

谢谢!
此致

吉米

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

    你(们)好

    我按照已启用器件上的读取和写入操作手动说明执行了测试(不存在实际的 PCIe 器件并且该器件未初始化)、这应该会触发 default_err_intr 错误。 我的测试过程包括以下步骤:
    1.在0x69000000配置具有读写权限的 MPU。
    2.启用 R5FSS0_CORE0_INTR_IN_133中断。
    3.尝试从地址0x69000000读取数据。

    /*MPU SET*/
    {
        .baseAddr = 0x68000000u, /* PCIE */
        .size = MpuP_RegionSize_128M,
        .attrs = {
            .isEnable = 1,
            .isCacheable = 0,
            .isBufferable = 1,
            .isSharable = 1,
            .isExecuteNever = 0,
            .tex = 0,
            .accessPerm = MpuP_AP_ALL_RW,
            .subregionDisableMask = 0x0u
        },
    },
    
    
    /*TEST*/
    
    static void InjectCbassCba9ErrorTest(void)
    {
        RTS_UI32 ulTestData = 0U;
        RTS_UI32 *pTransBufAddr = (RTS_UI32*)(0x69000000UL);
    
        ulTestData = *pTransBufAddr;
    
    }


    测试结果:
    系统进入数据中止异常、并且连续进入 R5FSS0_CORE0_INTR_IN_133中断回调函数、阻止了我清除该中断。 读取地址0x2FFF0480的寄存器值后、结果显示为0x40000020。

    我的问题是:
    1.为什么输入数据中止异常?
    2.为什么我不能清除中断、正确的方法是什么?

    谢谢!
    此致

    吉米

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

    你(们)好

    是否有专家可以回答此问题?

    吉米

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

    你(们)好  

    我们在这里有任何更新吗?

    此致

    Zekun

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

    尊敬的 Jimmy:

    1 尽管您已启用地址0x69000000、但该地址在 TRM 的第2.1章下为空。 因此、当我们访问它时、必须发生数据中止。

    2您可以先禁用数据中止、然后执行测试吗?

     此致、

    Linjun

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

    您好、Linjun

    谢谢回复 μ A

    0x69000000这个地址存在什么漏洞、我在2.1小节中没有看到有提到这个地址的漏洞。μ A

    如果这个地址存在问题、那有没有另外的地址可以执行这个测试、我们外设中仅使用了GPMC、SPI、FSI、UART。因为我们底层是有操作系统的、所以关掉数据中止功能还是有些麻烦的、希望能有别的地址能直接执行测试、当然如果没有那就没有办法了。

    谢谢 μ A

     此致

    吉米

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

    尊敬的 Jimmy:

      0x6900000 到系统存储器的映射为空。 因此 、当访问它时、将触发数据中止。  

       此致、

    Linjun

     

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

    您好、Linjun

    根据了解、访问未初始化的器件地址不仅会触发133中断、还会生成数据访问违规异常。 这种情况被视为正常情况。 为了处理和清除中断、它应该在数据中止异常处理程序例程内被寻址。 是这样吗?

    此致

    吉米

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

    尊敬的 Jimmy:

    address 是 pice 的有效地址。 抱歉、检查地址是否为 0x690000。
    由于器件未初始化、LPSC_PCIE_0状态为关闭、因此在访问时发生总线错误。

    是的、 要 清除 数据中止上下文中的中断状态需要。

    Linjun