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.

[参考译文] LP-AM243:使用 NVM_APP_READ ()从 FlashROM 读取

Guru**** 2466550 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1464767/lp-am243-read-from-flashrom-using-nvm_app_read

器件型号:LP-AM243
主题中讨论的其他器件:UNIFLASH

工具与软件:

嗨、团队:

我使用 ind_comms_sdk_am243x_09_02_00_15开发应用。

我在较低程序中检查了闪存读取和写入。

我将数据写入"0F0F0F0F0F0F..." ",并阅读它。

但是、读取数据有时会从"0f"更改为"0b"。

您能告诉我为什么会发生这种情况、以及如何感知和避免这种情况吗?

    uint8_t write_flash[32]={0};
    uint8_t read_flash[32]={0};

    OSAL_MEMORY_memset(write_flash,0x0F,32);

    //write "0F0F0F0F....." to flash
    error = NVM_APP_write(  NVM_TYPE_FLASH,
                        CONFIG_FLASH0,
                        0x400000,
                        32,
                        (void*)write_flash
                        );
                        
    //read from same section of flash 
    error = NVM_APP_read(  NVM_TYPE_FLASH,
                        CONFIG_FLASH0,
                        0x400000,
                        32,
                        (void*)read_flash
                        );

    for(uint32_t i=0;i<32;i++){
        OSAL_printf("%02x",read_flash[i]);
    }
    //the result "0f0f0b0f0b0b0f0f0f0f0..."
    OSAL_printf("\r\n");  

此致、

小山

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

    您好、 Oyama、

    感谢您的提问。

    将线程分配给工业通信专家。

    此致

    Ashwani

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

    嗨、团队:

    是否取得了进展?

    您能否重现此图?

    此致、

    小山

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

    您好、Oyama、

    您能告诉我您在这里使用的是哪种应用吗? 这将有助于我们重新研究这一问题

    此致、
    Prajith

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

    您好、Prajith:

    我使用 ethercat_slave_demo

    此致、

    小山

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

    您好、Oyama、

    我无法重现您在此处指定的问题。 我使用了您在 EtherCAT 从站简单演示示示示例中从  ind_comms_sdk_am243x_09_02_00_15共享的相同代码、并进行了测试。 即使我在循环中执行了您的代码、并且没有观察到 任何数据不匹配的情况。

    您能告诉我您在结束时发现此问题的频率吗? 另外、在发现此问题时、您能否共享此日志。  

    在观察到数据不匹配的情况下、请尝试在向闪存写入/读取数据/从闪存读取数据期间检查是否存在错误。 以下代码片段供您参考。

    error = NVM_APP_write(      NVM_TYPE_FLASH,
                                CONFIG_FLASH0,
                                0x400000,
                                32,
                                (void*)write_flash
                         );
    if (error != NVM_ERR_SUCCESS)
    {
        OSAL_printf("Write Error!!! \r\n");
    }
    
    error = NVM_APP_read(  NVM_TYPE_FLASH,
                            CONFIG_FLASH0,
                            0x400000,
                            32,
                            (void*)read_flash
                            );
    if (error != NVM_ERR_SUCCESS)
    {
        OSAL_printf("Read Error!!! \r\n");
    }


    此致、

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

    嗨、Harsha、

    这种情况经常发生、不会出现任何错误。

    这是 设置0x0F 后的 WRITE_FLASH。

    这是读取闪存后不久的 READ_FLASH。  

    这是一次日志。

    此致、

    小山

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

    您好、Oyama、

    感谢您提供屏幕截图和信息。 由于我无法在最后重现此问题、因此我将要求您尝试执行以下步骤来确定此问题的原因。

    1.请刷写应用程序,并检查应用程序是否运行而没有任何错误消息。 使用 UART uniflash python 脚本来在 UART 引导模式下加载.appimage、并在刷写完成后更改为 OPSI 引导模式并重新启动。  

    2.与 SDK 示例闪存配置相比、请检查 syscfg 中是否存在任何闪存配置不匹配的情况。

    3.请使用闪存中的不同偏移来检查是否可以 在闪存中的不同偏移处重现相同错误。

    4.如果您有另一个 AM243x LP 硬件、则检查是否 可以重现相同的错误。

    5.尝试使用默认的 EtherCAT SDK 示例、无需任何额外的修改、但写入闪存和读取闪存除外。

    6.尝试通过 foe 下载和上传示例文件,并比较文件以检查是否存在数据不匹配。

    此致、

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

    嗨、Harsha、

    检查此问题的结果、

    1. OSPI 引导未发生数据中断

    4.我有 AM64、但在 UART 启动时未发生

    5. 在 UART 引导中发生数据中断  

    问题是否来自硬件?  

    此致、

    小山

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

    您好、Oyama、

    1.  OSPI 引导未发生数据中断-如果  在此情况下允许以偏移量0x400000从闪存进行写入和读取、或者应用程序正在运行且没有任何错误、请告诉我。

    4.我知道 AM64x EVM 上可以对闪存进行写入和读取。

    5、我了解到 这个问题在 AM243x LP 目标板上又出现了。 这也可能是由硬件问题造成的。 每个闪存的写入周期有限、并且可能是闪存上的某些扇区有问题。 请查看 AM243x LP 上的项目2和3。  

    此致、