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.

[参考译文] 使用 NullSrc 读写 SD 卡

Guru**** 2601915 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/628716/read-and-write-to-sd-card-using-nullsrc

大家好、

我们正在为一个项目评估 TDA2x_EVM 板。我们将 VISION SDK3.0 (仅 BIOS)用于开发。我们是此 SOC 的新功能。我们对链路和链路框架有基本的了解。

我的演示应用程序包含以下用例链。

UseCase:chains_sdcard_Display

NullSource (IPU1_0)-> Display

如果我直接使用 fatfs API、则所有 API 均在下定义


#if (defined (FATFS_PROC_TO_USE_IPU1_0)&& defined (build_M4_0)))||\
   (已定义(FATFS_PROC_TO_USE_IPU1_1)&&已定义(build_M4_1))||\
   (已定义(FATFS_PROC_TO_USE_IPU2)  &&已定义(build_M4_2))||\
   (已定义(FATFS_PROC_TO_USE_A15_0) &&已定义(build_A15))

静态空 File_lock (void);
静态空 File_unlock (空);
静态 Int32 File_allocObj();
静态空 File_freeObj (Int32 FD);
static void File_registerCioFxns();

那么、如何在我的应用中使用这些 API 呢?

但我有以下问题。

1) 1)如何使用 NullSrc 链接读写 SD 卡?

2) 2)我想从 SD 卡中读取文本文件、并将其提供给算法链接。那么、我如何执行此操作?这的分摊方式是什么?

3) 3)我无法找到 SD 卡读写的任何现有用例。

我们非常感谢您的任何帮助。

谢谢、此致

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

    我已将您的问题转交给一位专家征求意见。

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

    您好、 Rakesh、

    请在下面找到我的答案。

    1) 1)如何使用 NullSrc 链接读写 SD 卡?

    >>空源链接支持多种 RX 模式、如网络、存储器、文件读取。 您需要在 用例创建时间中使用 dataRxMode 参数设置此模式。

    pPrm->dataRxMode = NULSRC_LINK_DATA_RX_MODE_FILE

    2) 2)我想从 SD 卡中读取文本文件、并将其提供给算法链接。那么、我如何执行此操作?这的分摊方式是什么?

    >>已经有类似的用例。 它从 SD 卡(文件)中读取 H264数据以及索引、并解码和显示该数据。 下面是链。

    NullSource (IPU1_0)-> Decode (解码)-> VPE -> Display (显示)

    您可以找到此用例@vision_sdk\apps\src\rtos\usecases\null_src_dec_display

    3) 3)我无法找到 SD 卡读写的任何现有用例。

    >>请参阅 vision_sdk\apps\src\rtos\usecases\full_src_dec_display

    pPrm->dataRxMode = NULSRC_LINK_DATA_RX_MODE_FILE;

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

    感谢您的快速响应。

    我已经介绍过您建议的用例、但我仍然有点困惑。

    1) 1)我是否应直接调用 FatFs API?
    2) 2)在现有用例中、它不调用任何与文件相关的 API、因此它是如何从文件中读取的?
    3) 3)在哪里以及如何使用 file_api.c 中定义的 API?

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

    Rakesh、

    1) 1)我是否应直接调用 FatFs API?

    >>不、您无需调用任何 API。 nullsource 链接会为您解决此问题。 实际上、这就是所有链接在链接框架中从用户中提取驱动程序的方式。 用户无需担心 IP 功能、除非需要。
    2) 2)在现有用例中、它不调用任何与文件相关的 API、因此它是如何从文件中读取的?

    >>它通过链接调用。 您可以在 vision_sdk\links_fw\src\rtos\links_common\nullSrc\文件夹中进行检查。
    3) 3)在哪里以及如何使用 file_api.c 中定义的 API?

    >>您不需要。 如果您想了解它、请执行零源和零链接实现。

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

    感谢您的回答。
    那么、您能给我一些关于可能的链的建议吗?
    我想从存储卡中读取数据、但该数据应传输到算法链接以进行处理。

    另外、写入 SD 卡时、我们应该使用 NULL 链接吗?
    因为 NullSrc 链接只支持对读?

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

    您可以为以下内容创建新的用例或修改现有的用例。

    NullSource (IPU1_0)-> Alg_LaneDetect (DSP1)-> Null (IPU1_0)

    在用例主文件中、为 SD 读取模式设置 NullSource 和 Null 链接参数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prasad、您好!

    感谢您的建议。

    但 nullsrc 无法从捕获链接获取输入、在我的应用程序中、我无法跳过捕获链接。

    我要执行以下任务。
    1) 1)我将在 SD 卡中使用 LUT、我应在应用程序初始中读取 LUT、然后这应该是算法链接的输入。
    2) 2)在算法链接中、我必须处理从捕捉源接收到的帧的每个像素。

    为此、我只需读取 SD 卡一次、应将此值提供给算法进行处理。
    有什么方法可以做到这一点吗?

    我们非常感谢您的任何帮助

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

    您好!

    但 nullsrc 无法从捕获链接获取输入、在我的应用程序中、我无法跳过捕获链接。
    >>空源链接是  像捕获链接这样的源链接、因此您无法互连它。

    根据您的要求、您不应使用空源链接。 我们的示例环视用例中已经使用了读取 LUT 等所需的流程。

    请参阅 vision_sdk\apps\src\rtos\usecases\LVDS_VIP_SV_standalone

    在用例初始化期间、我们也从 SD 读取 LUT 和其他参数、请参阅 从此用例调用的 ChainCommon_SurroundView_CalibInit 函数



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

    感谢您的回答。

    我的问题在你的建议的帮助下得到解决。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Prasad、

    我有一个与 SD 卡读取相关的查询。

    1) 1) 是否可以直接在 AlgorithmName_algplugin.c 中运行文件操作?

    2) 2) 我的算法是否在 DSP 或 A15上运行?

    谢谢

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

    您好、Rakesh、

    1) 1)您应该能够从 algithm 链接调用文件 IO API。

    2) 2) FATFS 仅在 IPU_0上受支持。 因此、不能直接使用来自 DSP 或 A15的文件 IO API 或 IPU_0以外的任何其他内核。  

    但是、您可以使用系统链接调用 IPU_0来从 DSP 或 A15进行文件写入。 基本上、您传递要读取或写入的文件(缓冲区)、并告诉 IPU_0为您执行文件操作。  

    VSDK 默认不支持此功能、但应易于实现。 有类似的示例(如 QSPI 闪存写入)可能很有用

    您的 VSDK 版本是什么?  

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

    感谢您的快速响应。

    我使用的是 VISION SDK 版本3.0 (仅限 BIOS)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还有同样的问题、请您提供帮助!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yash、

    请详述一下。

    您是否检查了先前回复中提供的建议?