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.

[参考译文] RM44L920:闪存和 SRAM 2Bit ECC 测试失败

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1426377/rm44l920-flash-and-sram-2bit-ecc-tests-fail

器件型号:RM44L920

工具与软件:

您好!

我正在使用安全诊断库(SDL)和 SDL 演示例实现针对闪存和 SRAM 的2位 ECC 测试。

但我在这些测试中遇到失败、并且很难确定原因。

retVal = SL_SelfTest_SRAM(SRAM_ECC_ERROR_FORCING_2BIT, TRUE, &failInfoTCMRAM); 
INCREMENT_PASS_FAIL_COUNTER(failInfoTCMRAM, retVal);
// failInfoTCMRAM = ST_FAIL

/* Run 2Bit ECC test on Flash */
retVal = SL_SelfTest_Flash(FLASH_ECC_TEST_MODE_2BIT, TRUE, &failInfoFlash);
INCREMENT_PASS_FAIL_COUNTER(failInfoFlash, retVal);
// failInfoFlash = ST_FAIL

此外、我注意到、在 SDL 演示示例中、某个测试在sys_startup.c文件中被注释掉。 有人能解释一下为什么对这个测试进行评论吗?

默认情况下是否存在禁用它的特定原因或条件?

#if 0
/* Run Address tag mode test on Flash */
retVal = SL_SelfTest_Flash(FLASH_ECC_ADDR_TAG_REG_MODE, TRUE, &failInfoFlash);
INCREMENT_PASS_FAIL_COUNTER(failInfoFlash, retVal);
#endif

谢谢、此致、

Ilija

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

    尊敬的  Ilija:

    对延迟响应深表歉意。

    Unknown 说:
    但是、我在这些测试中遇到了失败、而且我很难确定原因。

    您能否尝试提取与这两个测试用例相关的代码并创建一个新项目、然后看到一次行为?

    默认情况下是否存在禁用该文件的特定原因或条件?

    我不知道他们禁用它的确切原因、我可以与我的高级同事核实一次。

    但是、该器件支持此诊断:

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    我不确定我是否完全理解您的建议:

    您能否尝试提取与这两个测试用例相关的代码并创建一个新项目、然后只需查看一次行为?

    您能否说明一下这句话的含义?
    我希望得到更详细的解释。

    谢谢、此致、

    Ilija

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

    尊敬的  Ilija:

    我的意思是、我们还可以在 SDL 中提取代码部分、因此我建议您复制与这些品尝相关的.c 和.h 文件、并尝试创建新项目。

    通过这种方法、我们可以简化工程、并在相应测试中有任何东西不起作用时轻松调试。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    进一步调试后、我确定只有闪存2位 ECC 测试失败:

    /*在闪存上运行2比特 ECC 测试*/
    RetVal = SL_Sel弦 变量 Test_Flash (FLASH_ECC_TEST_MODE_2BIT、TRUE、&failInfoFlash);
    Increment_pass_fail_counter (failInfoFlash、retVal);

    我还调试了 SDL 演示项目、我注意到测试没有失败。

    您能否告知是否需要任何特定配置或步骤才能通过此测试? 很遗憾、由于时间限制、我无法创建新项目。

    谢谢、此致、

    Ilija

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

    您好!

    我成功解决了针对闪存和 RAM 的2位 ECC 测试问题。 事实证明、问题是我没有sys_intvecs.asm如 SDL 演示应用程序中所示更改文件。 做出这些更改后、测试就成功运行了。

    ;-------------------------------------------------------------------------------
    ; sys_intvecs.asm
    ;
    ; Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com 
    ; 
    ; 
    ;  Redistribution and use in source and binary forms, with or without 
    ;  modification, are permitted provided that the following conditions 
    ;  are met:
    ;
    ;    Redistributions of source code must retain the above copyright 
    ;    notice, this list of conditions and the following disclaimer.
    ;
    ;    Redistributions in binary form must reproduce the above copyright
    ;    notice, this list of conditions and the following disclaimer in the 
    ;    documentation and/or other materials provided with the   
    ;    distribution.
    ;
    ;    Neither the name of Texas Instruments Incorporated nor the names of
    ;    its contributors may be used to endorse or promote products derived
    ;    from this software without specific prior written permission.
    ;
    ;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
    ;  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
    ;  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    ;  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
    ;  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
    ;  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
    ;  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    ;  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    ;  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    ;  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    ;  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ;
    ;
    ;
    
        .sect ".intvecs"
        .arm
    
    ;-------------------------------------------------------------------------------
    ; import reference for interrupt routines
    
        .ref _c_int00
        .ref vPortSWI
        .ref _excpt_vec_udef_instr
        .ref _excpt_vec_abort_pref
        .ref _excpt_vec_abort_data
        .ref phantomInterrupt
        .def resetEntry
    
    ;-------------------------------------------------------------------------------
    ; interrupt vectors
    
    resetEntry
            b   _c_int00
    undefEntry
            b   _excpt_vec_udef_instr
            b   vPortSWI
    prefetchEntry
            b   _excpt_vec_abort_pref
            b   _excpt_vec_abort_data
            b   phantomInterrupt
            ldr pc,[pc,#-0x1b0]
            ldr pc,[pc,#-0x1b0]
    
        
    ;-------------------------------------------------------------------------------
    

    谢谢、此致、

    Ilija