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.

[参考译文] TMDSEVM6678:SPI NOR 闪存测试

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1182019/tmdsevm6678-spi-nor-flash-test

器件型号:TMDSEVM6678

您好!

   我正在使用6678评估卡。 我正在使用平台 util 测试代码测试 SPI NOR 闪存,并在其中添加调试打印。我收到验证错误。

我已附加错误映像和错误识别位置。错误函数:平台器件写入。在中、pBlock 和 pPage 函数获得错误指示

#define platform_errno_oom 0x00000030 /**< 内存不足。 已尝试分配 RAM、但无法分配。

 我收到此错误。请检查并提出建议。

此致、

 Thilak

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

    Thilak、

    您有机会了解了以下常见问题解答及其步骤? 如何在 C6678 EVM 上运行平台测试。

    平台测试:

    [常见问题解答] TMS320C6678:如何在 C6678 EVM 上构建和运行平台测试? -处理器论坛-处理器- TI E2E 支持论坛

    启动指南

    [常见问题解答] TMS320C6678:快速设置指南 C6678和 C6678-EVM -处理器论坛-处理器- TI E2E 支持论坛

    --

    请在 GEL 输出和平台测试输出上发布完整的输出日志。

    --

    此致

    Shankari G

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

    e2e.ti.com/.../spi-nor-flash-data.txt

    我已附加日志。我仅启用了测试或功能。还添加了用于检查缓冲区的调试打印。获取 error.writer 缓冲区和读取缓冲区不相同。SPI 和闪存问题也不相同。

     注:

         我能够使用卡中的 EMIF 成功测试 Nand 闪存、并且能够切换调试打印。请检查并提出建议

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

    Thilak、

    请在"不引导"模式下运行测试并共享输出控制台消息。

    从输出消息“IBL: booting from NOR”(IBL:从 NOR 引导)中,您处于“NOR 引导”模式。

    此致

    Shankari G

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

    确定。是否可以发送无引导模式开关配置。

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

    Thilak、

    给你。。。

     在 C6678 EVM -板-->中,应将 DIP 开关设置置于“No boot mode” (无引导模式),以连接到 CCS。

       即 ---- > DIP 软件 3、4、5和6、如下所示。

        

    请按照此常见问题解答中给出的顺序步骤操作。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1082264/faq-tms320c6678-quick-set-up-guide-c6678-and-c6678-evm

    此致

    Shankari G

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

    [C66xx_0]打开../testconfig/platform_test_input.txt 输入文件时出错

    我在无引导模式下遇到此问题

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

    Thilak、

    [引用 userid="529615" URL"~/support/processors-group/processors/f/processors-forum/1182019/tmdsevm6678-spi-nor-flash-test/4453080 #4453080"][C66xx_0]打开../testconfig/platform_test_input.txt 输入文件时出错[/quot]

    此错误表示 CCS 正在查找文件"platform_test_input.txt"作为 输入文件、该文件应位于路径:"C:\ti\pdk_c667x_2_0_16\packages/ti\platform\evmc6678l\platform_test\testconfig"。

    您的 PC 中缺少运行平台测试所需的文件"platform_test_input.txt"。

    发布以下各项的完整日志

    1.测试连接

    GEL 文件

    3.平台测试

    此致

    Shankari G

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

    您好!

     当我更改为 NOBOOT 模式并在该模式后刷写的相同代码只有我得到此错误。

    无论在 NOR/n 和引导模式下、我都将收到错误日志。

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

    Thilak、

    请尝试按顺序执行我的所有说明。 以便更好地理解问题、从而更好地解决问题。

     当您处于“非引导”模式并且您正在闪烁至 NOR 时,如果出现一些错误,则.... 这也可能是导致 SPI 或非测试问题的原因。

    NOR 刻录机闪存实用程序可以为您正常工作? 您是否会发布 NOR 编写器实用程序的输出控制台消息?

    所以...

    请在"无法引导"模式下发布以下各项的完整日志

    1.测试连接

    GEL 文件

    3.平台测试

    然后、让我们进入 NOR 引导模式...

    此致

    Shankari G

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

    您好!

     我已附加平台测试的 GEL 输出和测试连接数据。 请检查附件并告知。

    此致、

     Thilake2e.ti.com/.../jtag-test-connection.txte2e.ti.com/.../jtag-test-connection1.txte2e.ti.com/.../gel-output.txt

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

    Thilak、

    是的、我验证了您的输出消息"JTAG-Test 连接"和 GEL 输出。 这似乎是正确的。

    接下来、

    第三个问题是、请发布平台测试的输出控制台消息。  

    我特别要检查平台测试中包含的 NOR 测试的输出消息。  

    此致

    Shankari G

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

    您好!

     我也发布了指示器。我再次发布也是。计划检查控制台消息并提出建议。  e2e.ti.com/.../nor-flash-data.txtNor测试数据

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

    Thilak RAM、

    在您之前的帖子中、您已经上传了两次 JTAG 结果。

    这就是我在 C6678 EVM 上所做的(我手上有的)

    1.在 位于 C:\ti\pdk_c667x_2_0_16\packages/ti\platform\evmc6678l\platform_test\testconfig\platform_test_input.txt 的"platform_test_input.txt"中将 test_nand 和 test_norm 中的值更改为`1` 1

    INIT_PLL = 1
    INIT_DDR = 1
    INIT_UART = 1
    init_tcsl = 1
    init_phy = 1
    INIT_ECC = 1

    print_info = 1.
    print_curry_core_id = 1.
    print_switch_state = 1.
    TEST_EEPROM = 1
    TEST_nand = 1
    TEST_NOR = 1
    TEST_LED_= 1
    TEST_UART = 1
    RUN_EXTERNAL_MEMORY_TEST = 1
    RUN_INTERNAL_MEMORY_TEST = 1

    init_config_pll1_pllm = 0
    INIT_CONFIG_UART_波特 率= 115200

    NAND_TEST_BLOCK_NUMBER = 1000
    NOR_TEST_Sector_number = 10
    LED_TEST_LOOP_COUNT = 1
    LED_TEST_LOOP_DELAY = 2000000
    EXT_mem_test_base_addr = 0x8000000
    EXT_mem_test_length = 0x1ffffffff
    INT_mem_test_core_id = 2

    ===

    对于我来说、我收到了以下控制台输出消息:

    ========================================================================================

    [C66xx_0] p_info->version	= 2.00.00.15
    p_info->cpu.core_count	= 8
    p_info->cpu.name	= TMS320C6678
    p_info->cpu.id	= 21
    p_info->cpu.revision_id	= 0
    p_info->cpu.silicon_revision_major	= 0
    p_info->cpu.silicon_revision_minor	= 0
    p_info->cpu.megamodule_revision_major	= 8
    p_info->cpu.megamodule_revision_minor	= 1
    p_info->cpu.endian	= 1
    p_info->board_name	= TMDXEVM6678L
    p_info->frequency	= 1000
    p_info->board_rev	= 13
    p_info->led[PLATFORM_USER_LED_CLASS].count	= 4
    p_info->led[PLATFORM_SYSTEM_LED_CLASS].count	= 0
    p_info->emac.port_count	= 2
    EMAC port 1 connected to the PHY.
    MAC Address = 40:5f:c2:b9:43:12
    
    NAND Device: 
    p_device->device_id	= 54
    p_device->manufacturer_id	= 32
    p_device->width	= 8
    p_device->block_count	= 4096
    p_device->page_count	= 32
    p_device->page_size	= 512
    p_device->spare_size	= 16
    p_device->column	= 512
    p_device->handle	= 8246
    p_device->flags	= 0
    p_device->bboffset	= 5
    Bad Block Table (only bad block numbers shown): 
    2538 
    
    NOR Device: 
    p_device->device_id	= 47896
    p_device->manufacturer_id	= 32
    p_device->width	= 8
    p_device->block_count	= 256
    p_device->page_count	= 256
    p_device->page_size	= 256
    p_device->spare_size	= 0
    p_device->handle	= 47896
    p_device->flags	= 0
    p_device->bboffset	= 0
    
    EEPROM Device (@ 0x50): 
    p_device->device_id	= 80
    p_device->manufacturer_id	= 1
    p_device->width	= 8
    p_device->block_count	= 1
    p_device->page_count	= 1
    p_device->page_size	= 65536
    p_device->spare_size	= 0
    p_device->handle	= 80
    p_device->flags	= 0
    p_device->bboffset	= 0
    
    EEPROM Device (@ 0x51): 
    p_device->device_id	= 81
    p_device->manufacturer_id	= 1
    p_device->width	= 8
    p_device->block_count	= 1
    p_device->page_count	= 1
    p_device->page_size	= 65536
    p_device->spare_size	= 0
    p_device->handle	= 81
    p_device->flags	= 0
    p_device->bboffset	= 0
    Current core id is 0
    User switch 1 state is ON
    UART test start
    Open a serial port console in a PC connected to
    the board using UART and set its baudrate to 115200
    You should see following message --- 
    This is a Platform UART API unit test ...
    Type 10 characters in serial console
    Char 0 = 1
    Char 1 = 2
    Char 2 = 3
    Char 3 = 4
    Char 4 = 5
    Char 5 = 6
    Char 6 = 7
    Char 7 = 8
    Char 8 = 9
    Char 9 = 0
    UART test complete
    EEPROM test start
    test_eeprom: passed
    EEPROM test complete
    NAND test start
    test_nand: passed
    NAND test complete
    NOR test start
    test_nor: passed
    NOR test complete
    LED test start
    LED 0 ON
    LED 0 OFF
    LED 0 ON
    LED 1 ON
    LED 1 OFF
    LED 1 ON
    LED 2 ON
    LED 2 OFF
    LED 2 ON
    LED 3 ON
    LED 3 OFF
    LED 3 ON
    LED test complete
    Internal memory test start
    Internal memory test (for core 2) passed
    Internal memory test complete
    External memory test start
    External memory test passed
    External memory test complete
    Test completed
    

    只有两种可能(因为设备在您的日志中打开成功,并且它可以获取 NOR 相关详细信息-->这意味着 Read()似乎成功了。 只有写入()调用失败....

    ===================================

    1.某些初始化代码可能已在源代码中修改。

    尝试此补救措施:  

    重新安装处理器 SDK 并按照常见问题解答的步骤操作,再次: [FAQ] TMS320C6678:如何在 C6678 EVM 上构建和运行平台测试? -处理器论坛-处理器- TI E2E 支持论坛

    2、NOR 芯片内存可能已经坏了。

    如果有其他 C6678备用板、请尝试此测试。

    备选建议:--您可以尝试使用 NOR 实用程序并进行检查。

    ===================

    尝试 NOR 实用程序"  norwriter_evm6657l.out " 、该程序位于: C:\ti\pdk_c665x_2_0_16\packages/ti\boot\writer\nore\evmc6657l\bin。

    加载此.out 文件并刷写任何示例 app.out。

    请按照 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1057566/faq-tms320c6657-how-to-flash-the-ibl-intermediate-boot-loader-into-eeprom-and-how-to-flash-the-application-binary-into-nor-how-to-boot-the-ibl-application-binary 上提供的"步骤4"进行操作

    就是这样  

    步骤4 -刷写应用程序

    本演示采用的示例二进制文件是 UART_BasicExample_C6657_c66xTestProject。

    2.位于 C:\ti\pdk_c665x_2_0_16\packages\MyExampleProjects\UART_BasicExample_C6657_c66xTestProject

    3.使用 CCS 9.3构建和创建应用程序二进制文件

    应用二进制文件 UART_BasicExample_C6657_c66xTestProject.out 将位于 "C:\ti\pdk_c665x_2_0_16\packages/MyExampleProjects\UART_BasicExample_C6657_c66xTestProject\Debug\"

    5.使用 NOR 编写器将应用二进制文件刷写到 NOR 存储器中。

    1. 将 EVM 设置为 不引导。 加电、在 CCS 中启动目标配置、并连接到内核0。 确保使用 GEL 文件并初始化 DDR。
    2. 将要刷写的 UART-APP 二进制文件复制到"C:\ti\pdk_c665x_2_0_16\packages/ti\boot\writer\nor\evmc6657l\bin"目录中。
    3. 将您在上一步中复制的二进制文件重命名为“app.bin”。
    4. 在 CCS 中、选择"Core 0"并打开"Memory Browser"
    5. 在“Memory Browser”(内存浏览器)窗口中,右键单击并选择“Load Memory”(加载内存)
    6. 将 app.bin 加载到0x80000000。 为此、选择文件的 app.bin、单击 Next、然后输入0x8000000作为 Start Address (选择的类型大小应为32位)
    7. 加载 C:\ti\pdk_c665x_2_0_16\packages/ti\boot\writer\normc6657l\bin\norwriter_evm6657l.out
    8. 运行 Core 0。 这将对闪存进行编程。

    如果成功,控制台将打印“NOR programming completed successfully"

     

    此致

    Shankari G