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.

[参考译文] AM6442:如果 SBL 介质为 EMMC、则如何在 EMMC 中加载 FreeRTOS FAT 文件系统

Guru**** 2392905 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1496030/am6442-how-to-load-freertos-fat-file-system-in-emmc-if-the-sbl-media-is-emmc

器件型号:AM6442

工具/软件:

您好、TI 专家、

我将基于该示例构建一个文件管理系统 mmcsd_file_io (版本为 MCU_PLUS_SDK_am64x_09_02_01_05)。

我已将 FF 介质更改为 EMMC、如果引导模式为 SD、则可以正常工作。

但是、如果我将引导模式更改为 EMMC、并且在打印"映像加载完成、切换到应用"后没有响应。  

以这种方式操作还是实现方式。

谢谢、

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

    您好:

    如果您使用的是 SBL_EMMC 引导加载程序、则需要应用以下补丁:

    https://github.com/TexasInstruments/mcupsdk-core/commit/9ef14a519fd

    例如、PFA 附加了补丁、以使 MMCSD_FILE_IO 示例可与 eMMC 配合使用:

    diff --git a/examples/drivers/mmcsd/mmcsd_file_io/mmcsd_file_io.c b/examples/drivers/mmcsd/mmcsd_file_io/mmcsd_file_io.c
    index 068d066..8f0bc51 100644
    --- a/examples/drivers/mmcsd/mmcsd_file_io/mmcsd_file_io.c
    +++ b/examples/drivers/mmcsd/mmcsd_file_io/mmcsd_file_io.c
    @@ -60,7 +60,7 @@ void mmcsd_file_io_main(void *args)
          * Later when we give the pcName to the partition during mount, it has to match this. In this
          * case we give the mount point as /sd0. If it was FF_PARTITION_SD1, then /sd1.
          */
    -    FF_Disk_t *pDisk = &gFFDisks[FF_PARTITION_SD0];
    +    FF_Disk_t *pDisk = &gFFDisks[FF_PARTITION_EMMC0];
     
         FF_MMCSDGetPartitionDetails(pDisk, &partDetails);
     
    @@ -71,7 +71,7 @@ void mmcsd_file_io_main(void *args)
     
             FF_MMCSDCreateAndFormatPartition(pDisk, sectorCount);
     
    -        FF_MMCSDMountPartition(pDisk, "/sd0");
    +        FF_MMCSDMountPartition(pDisk, "/emmc0");
     
             /* Check the sector count now */
             FF_MMCSDGetPartitionDetails(pDisk, &partDetails);
    @@ -92,7 +92,7 @@ void mmcsd_file_io_main(void *args)
     
         FF_FILE *fp;
     
    -    char fileName[] = "/sd0/file.dat";
    +    char fileName[] = "/emmc0/file.dat";
         char fileData[] = "This is a test string. Hello, World!";
         char buf[100];
     
    

    BR, Prashant

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

    非常感谢您的答复。

    我 进行了上述修改、并构建了一个刷写到 EMMC 中的新 sbl_eMMC.release.tiimage。 但是、启动 似乎不 成功、我不确定是否是编译器问题。

     如果您能提供、我非常感谢您的支持  sbl_eMMC.release.tiimage 在此基础上:

    [引述 userid="531297" url="~/support/processors-group/processors/f/processors-forum/1496030/am6442-how-to-load-freertos-fat-file-system-in-emmc-if-the-sbl-media-is-emmc/5747453 #5747453"]

    如果您使用的是 SBL_EMMC 引导加载程序、则需要应用以下补丁:

    https://github.com/TexasInstruments/mcupsdk-core/commit/9ef14a519fd

    [/报价]

    期待您的答复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是、启动 似乎不 成功、我不确定这是否是我的编译器问题。

    请共享引导日志以获得更好的见解。

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

    抱歉、我无法屏幕截图、只需将 UART Debug 日志粘贴到此处:

    DMSC Firmware Version 9.2.8--v09.02.08 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1

    实际上没有太多信息、但在运行 sbl_eMMC 程序时似乎会卡住。 这就是为什么我希望有一个工作良好的 eMMC tiimage。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    打印"图像加载完成、切换到应用程序"后没有响应。  [/报价]

    我看不到此日志。

    现在您没有获得此日志、您可以澄清一下不同之处吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用的是 SBL_EMMC 引导加载程序、则需要应用以下补丁:

    我看到此补丁可能无法正常工作、因为它位于 MCU+ SDK v09.02.01.05上。

    请尝试以下补丁:

    diff --git a/examples/drivers/boot/sbl_emmc/am64x-evm/r5fss0-0_nortos/main.c b/examples/drivers/boot/sbl_emmc/am64x-evm/r5fss0-0_nortos/main.c
    index 53cae36..6203322 100644
    --- a/examples/drivers/boot/sbl_emmc/am64x-evm/r5fss0-0_nortos/main.c
    +++ b/examples/drivers/boot/sbl_emmc/am64x-evm/r5fss0-0_nortos/main.c
    @@ -254,6 +254,10 @@ int main(void)
                     {
                         status = Bootloader_rprcImageLoad(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0]);
                     }
    +
    +                /* Power of the MMCSD after loading the images, leave it in clean state for applications  */
    +                SOC_moduleClockEnable(TISCI_DEV_MMCSD0, 0);
    +
                     status = Bootloader_runSelfCpu(bootHandle, &bootImageInfo);
                 }
                 /* it should not return here, if it does, then there was some error */
    

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

    是的、该示例可以通过这种方式传递。

    非常感谢您的帮助。