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.

[参考译文] RTOS/AM3352:库验证

Guru**** 2587345 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614016/rtos-am3352-libraries-verification

器件型号:AM3352
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

因此、我在定制板上的进展速度一直很慢、工作正常。 但是、我达到了我需要让 NDK 和 FATFS 正常工作的程度、并且事情进展得不像我想象的那么顺利。 我想获得一些帮助、以验证我是否通过 Nimu 代码为 NDK 安装了所有正确的库、通过 EDMA3为 SDCard 安装了 FATFS。 我根据示例项目和 Wiki 信息汇总了大量此类信息

我正在使用

EDMA3LLD 2.12.1、

NDK 2.25.1.1、

SYSBIOS 6.46.2.47。

XDC 工具3.32.1.22内核

GNU 编译器4.9.3

AM335x PDK 1.0.3

我的库列表包括:

"C"
":ti.osal.aa8fg"
":ti.drv.emac.am335x.aa8fg"
":ti.drv.mmcsd.aa8fg"
":ti.transation.ndk.Nimu.aa8fg"
":EDMA3_LLD_rm_sample.aa8fg"
":EDMA3_LLD_drv_sample.aa8fg"
":EDMA3_LLD_drv.aa8fg"
":EDMA3_LLD_rm.aa8fg"
":ti.fs.fatfs.aa8fg"
"GCC"
"M"
"鼻"
":os.aa8fg"
"SoC"

我的库搜索路径为:

"${NDK_INSTALL_DIR}/packages/ti/ndk/os/lib
"${pdk_install_path}\ti\osal\lib\tirtos\AM335x\a8\release"
"${pdk_install_path}\ti\drv\mmcsd\lib\am335x\a8\release"
"${pdk_install_path}\ti\drv\emac\lib\am335x\armv7"
"${EDMA3_LLD_INSTALL_DIR}\packages/ti\sdo_EDMA3\drv\samples\lib\AM335x-EVM\A8\release"
"${EDMA3_LLD_INSTALL_DIR}\packages/ti\sdo_EDMA3\rm\samples\lib\AM335x-EVM\A8\release"
"${EDMA3_LLD_INSTALL_DIR}\packages/ti\sdo_EDMA3\drv\lib\a8\release"
"${EDMA3_LLD_INSTALL_DIR}\packages/ti\sdo_EDMA3\rm\lib\AM335x-EVM\A8\release"
"${pdk_install_path}\ti\transport \ndk\Nimu\lib\AM335x\a8\release"
"${pdk_install_path}\ti\fs\fs\fatfs\lib\a8\release"
"${BIOS_CG_ROOT}/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu
"$(BIOS_install_path)/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu
"${pdk_install_path}/ti/starterware/binary/soc/lib/am335x-evm/a8/release/gcc

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

    RTOS 团队已收到通知。 他们将在这里作出回应。

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

    AM335x PDK 1.0.3很旧。 最新的 PDK 1.0.7可从 Processor SDK 4.0 software-dl.ti.com/.../index_FDS.html 获取

    发行说明列出了所有相关工具: processors.wiki.ti.com/.../Processor_SDK_RTOS_Release_Notes

    在 CCS -> Properties -> CCS General -> RTSC 中选择 Products and Repositories 后、库和路径会自动链接/找到。

    此致、Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我首次启动这个项目时、我发现了这个项目。 我将进行更新

    我仍然需要验证我需要哪些库、哪些库不需要。

    当我首次设置此项并在 RTSC 选项卡中检查 PDK 时、我仍然会遇到很多链接错误、直到我指定了列出的库、然后它将进行链接。 旧版 PDK 和新 PDK 是否可以解决这一问题?安装时、PDK 及其设置的任何路径是否存在某种问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定错误指向的确切目录、但 CCSv7.x 是必需的、因为该版本未经 CCSv6.1.3验证。

    此致、Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、在回答这篇文章时如何破解:

    (笑声)

    我仍然需要验证我需要哪些库、哪些库不需要。

    当我首次设置此项并在 RTSC 选项卡中检查 PDK 时、我仍然会遇到很多链接错误、直到我指定了列出的库、然后它将进行链接。 旧版 PDK 和新 PDK 是否可以解决这一问题?安装时、PDK 及其设置的任何路径是否存在某种问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在默认的 c:/ti 目录中安装了 PDK 和其他组件? 如果没有,则需要在 CCS ->窗口->首选项-> Code Composer Studio->产品中添加路径,以便可以发现它们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更新到 CCSv7.2并再次尝试创建项目、我只需:

    检测到的测试项目:MMCSD_FatfsConsole_skAM335x_DMA_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_bbbAM335x_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_bbbAM335x_DMA_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_bbbAM335x_EMMC_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCU_bbbAM335x_EMMC_DMA_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_evmAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_evmAM335x_DMA_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_icev2AM335x_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_icev2AM335x_DMA_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_skAM335x_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_skAM335x_DMA_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_BasicExample_icev2AM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_MasterExample_bbbAM335x_armExampleProject

    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_MasterExample_icev2AM335x_armExampleProje
    CT
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_SlaveExample_bbbAM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_SlaveExample_icev2AM335x_armExampleProject
    t
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_MasterExample_iceAMIC110_armExampleProject
    t
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SlaveMode_SlaveExample_iceAMIC110_armExampleProject

    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_BasicExample_icev2AM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MCSPI_SerialFlash_DMA_evmAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_bbbAM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_evmAM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_icev2AM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_skAM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_iceAMIC110_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_bbbAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_DMA_evmAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_evmAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_icev2AM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_skAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:UART_BasicExample_iceAMIC110_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:USB_dev_msc_evmAM335x_arm_project
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:USB_host_msc_evmAM335x_arm_project
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:FATFS_Console_evmAM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:FATFS_Console_icev2AM335x_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:OSAL_BasicExample_evmAM335x_armTestProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_BasicExample_bbbAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_BasicExample_evmAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_BasicExample_icev2AM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_BasicExample_skAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkMaster_bbbAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkMaster_evmAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkMaster_icev2AM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkMaster_skAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkSlave_bbbAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkSlave_evmAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkSlave_icev2AM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_CCLinkSlave_skAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_FtpExample_bbbAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_FtpExample_evmAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_FtpExample_icev2AM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_FtpExample_skAM335x_armExampleproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:Nimu_ICSS_BasicExample_icev2AM335x_wSoCLib_armExampleproj

    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:Nimu_ICSS_BasicExample_iceAMIC110_wSoCLib_armExampleproje
    CT
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_ICSS_CCLinkMaster_icev2AM335x_wSoCLib_armExampleproj

    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_ICSS_CCLinkSlave_icev2AM335x_wSoCLib_armExampleproje
    CT
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:NIMU_ICSS_FtpExample_icev2AM335x_wSoCLib_armExampleProject
    t
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    未检测到工程
    项目生成完成
    (小部分
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    鹅卵石

    由于您使用的是 SYSBIOS/TI RTOS、我想知道为什么您不使用配置文件来包含模块、并且选择了手动将库链接到项目。  配置中缺少几个关键库:所有驱动程序使用的 CSL 库和用于电路板的电路板库(用于设置时钟、prcm、pinmux)。

    无论何时、只要您要移植到新平台、我们建议您首先创建定制电路板库、该库为器件设置时钟、prcm 和 pinmux、以便它可以访问您尝试读取和写入的外设/引脚。 本文中对此进行了说明:

      

    
    

    我们最近创建了一份应用手册、其中介绍了如何组合 Processor SDK RTOS 中提供的多个驱动程序、这可能有助于您理解。有关将多个 Processor SDK RTOS 示例集成到一个应用中的应用手册


    要在配置文件中使用以下语法包括正确的驱动程序库和 OSAL 库集:

    /*========================= 驱动程序配置=================== //
    //*加载 EDMA 包*/
    var EDMA= xdc.loadPackage ("ti.sdo.EDMA3.drv.sample");
    var drv= xdc.loadPackage ("ti.sdo.EDMA3.drv");
    var rm= xdc.loadPackage ("ti.sdo.EDMA3.rm");
    
    
    //根据需要添加 NDK 模块
    var TCP = xdc.useModule('ti.ndk.config.Tcp');
    var UDP = xdc.useModule('ti.ndk.config.Udp');
    
    
    var socType ="AM335x";
    /*使用 CSL 封装*/
    var CSl = XDC.loadPackage ('ti.CSL');
    Csl.Settings.deviceType = socType;
    
    //加载 OSAL 封装*/
    var osType ="tirtos";
    var OSAL = xdc.loadPackage ('ti.osal');
    OSAL.Settings.osType = osType;
    OSAL.Settings.socType = socType;
    
    //加载 SPI 包*/
    var I2C = xdc.loadPackage ('ti.drv.i2c');
    I2C.Settings.socType = socType;
    
    //加载电路板封装*/
    var Board = xdc.loadPackage ('ti.board');
    board.Settings.boardName ="evmAM335x";//使用定制电路板的电路板库
    
    //加载 UART 封装*
    mtid.uart *
    
    
    = xdc.loadPackage ('ti.drv.mmcsd');
    mcsd.Settings.socType = socType;
    
    //加载 socfatfs
    = xdc.loadPackage ('ti.fs.fatfs');
    
    //加载 EMAC 软件包*/
    var EMAC = xdc.loadPackage ('ti.loade.tinu.transport
    
    
    
    
    = nimu.transport);// nimu.transport = nimu.transport = nimu.transport = nimu.transport *;// nimu.transport = nimu.transport = nimu.transport = nimu.transport = nimu.transport = nimu.transport = nimu.transport 


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

    [引用 user="cobsonchael">我更新到 CCSv7.2并再次尝试创建项目、我只需:

    检测到的测试项目:MMCSD_FatfsConsole_skAM335x_DMA_armExampleProject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。
    检测到的测试项目:MMCSD_bbbAM335x_armTestproject
    系统无法找到指定的路径。
    正在复制 macro.ini
    系统无法找到指定的路径。
    已复制0个文件。

    这表示脚本未找到 CCS 安装路径。 请使用设置环境变量 tools_install_path

    设置 tools_install_path=C:\ti

    
    

    您能否设置 tools_install_path、然后重试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在没有 starterware 驱动程序的情况下执行大部分操作。 我可以在没有库的情况下设置时钟和引脚多路复用器。 我已经成功地将 LCDC、UART、SPI、I2C、ECAP 设置为 PWM 模式、RTC、GPIO、并且我正在处理 McASP (我至少在接收中工作)。 到目前为止、我需要的唯一驱动程序是 MMC/SD、FATFS 和 EtherNet/NDK。 那么、似乎我需要 CSL 库吗? 如果我需要、为什么不会出现任何链接错误?

    至于我在阅读该文章的库:如何创建使用 GNU 连接器链接到 PDK 驱动程序库的 ARM 裸机 CCS 工程? 它显示了如何在工程属性中手动包含驱动程序。

    另外、感谢 tools_install_path 修复、我不知道我是如何丢失该环境变量的、但似乎修复了该变量
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    鹅卵石

    我将从我们在这个问题上留下的位置来了解这一点。 您是否能够在包含 CSL 库后取得进展。 我们在 PDK 软件包中提供的大多数 LLD 驱动程序都使用 CSL API。 您似乎n`t 静态链接到库、但未调用驱动程序、这可以解释为什么您看不到任何错误。 如果您包含头文件并调用驱动程序打开调用、链接器将在您开始看到问题时尝试链接驱动程序库中的符号。 在n`t 时、如果链接器发现需要符号、则不会将其构建到最终的应用程序二进制文件中。 请注意、使用 GCC 编译器时、库的链接顺序会有所不同。

    n`t、如果您使用的是 TI RTOS 和 NDK、那么您的项目不是 ARM 裸机 CCS 项目、因此您不需要使用本文中定义的约定。 在 TI RTOS 中、您可以使用项目中包含的.CFG 文件、并使用我在早期响应中提供的约定。

    现在、使用 pdkProjectcreate 创建 CCS 工程的工作是在设置 tools_install_path 后进行设置、您可以设置 MMCSD FATFS 工程和 NIMU 示例工程、以介绍如何在 SDK 内链接和初始化驱动程序/传输。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有包括 CSL 库、因为我没有遇到链接错误、这意味着我一定不需要它、正如您所说的。 运行 FATFS/SDCard 驱动程序或 NIMU 驱动程序是否需要 CSL 库? 如果是、为什么在尝试编译工程时不会出现链接错误、因为我肯定会调用 PDK 示例工程所执行的相同设置例程? 我不会将任何其他驱动程序用于器件的其余部分。

    静态包含库是否存在错误? 即使库是静态定义的、我的项目是否仍然可以工作? 如果链接顺序很重要、我的另一个问题是:我的库是否按正确的顺序链接?

    我有另一个主题、讨论如何使 PDK Nimu 示例在电路板上正常工作。 我遵循 FATFS/SDCard 的示例、但我无法逾期:

    gEdmaHandle =(EDMA3_RM_Handle) edma3init (1、&edmaResult);

    如果我使用0作为第一个参数、我会得到_exit、当我使用1时、例程基本上会传递、并且我不会获得有效的 EDMA 句柄。 这是我首先发布此帖子的提示。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MMCSD 和 NIMU 驱动程序具有 CSL 相关性。 FATFSn`t 不具有 CSL 相关性。 您是否已在代码中调用 MMCSD 驱动程序。 如果不是、正如我提到过的、链接器将不会尝试在驱动程序库中进行链接或从 CSL 库中查找符号。 链接顺序取决于您选择链接库的方式。 如 Processor SDK RTOS 常见问题解答中的文章所示

    如果使用以下语法使用链接器命令文件链接库、则需要首先链接从应用程序调用的驱动程序库、并按顺序在稍后链接其依赖项。

    例如:

    输入(
    
    "c:\ti\pdk_am335x_1_0_6\packages \ti\drv\gpio\test\led_ble\am335x\armv7\BIOS\src\sysbios\aBIOS.aa8fg" "C:\ti\pdk_am335x_1_blink\ti\ti\ti\tis\ti\a8\r\cd\v\r3b\tinu\a8\t\ti\ti_profilterb\t\t\t\t\t\a8a8a8\t\t\t\t\t\t\t\t\ti_a8a8_b\t\t\t\t\ti\t\t\t\t\ti_b\a8a8_b\t\t\t\t\t\t\t\a8a8_b\t\t\t\a8\t\t\t\t\t\a8_b\ti\t\t\t\t\t\ ti.utils.profiling.aa8fg" ti.drv.gpio.profiling.aa8fg"

     n`t 使用 CCS 项目设置或在 make 文件中链接库、我们通常会添加一个选项--start-group 和--end-group、以便链接器可以循环查找符号、从而使顺序无关紧要。

    t $(linker_file)-WL、--start-group -l"c"-lrdimon -l"m"-l"nosy"$(Board_LIB)$(peripheral_LIB)$(CSL_init_LIB)$(OSAL_LIB)$(ICSS_EMAC_LIB)$(PERIPD_LIB)$(USS LIB_LIB (LIB_LIB)(USS LIB_LIB)(LIB_LIB)(LIB_LIB)(USS (LSICC_LIB)(LIB_LIB (LIB_LIB)(LIB_LIB)(LIB_LIB)(LSI 

    注意:对于 CCS 项目,需要通过转到“生成属性”->“GNU 链接器 ”(编辑标志)来手动完成此操作。

    当您想引起注意时、请提供其他 e2e 的链接。 我已请尼姆专家就你关于这个例子的问题发表意见。 EDMA 是一种芯片级资源、因此这不应是特定于电路板的问题。 您是否在为其创建示例的 EVM 上尝试过相同的操作。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更改了项目、使库现在位于.cfg 文件中、如下所示:

    /*========================= 驱动程序配置=================== *
    /*加载 EDMA 包*/
    增值经销商 EDMA= xdc.loadPackage ("ti.sdo.EDMA3.drv.sample");
    变量 drv= XDC.loadPackage ("ti.sdo.EDMA3.drv");
    变量 rm= XDC.loadPackage ("ti.sdo.EDMA3.rm");

    VAR socType ="AM335x";
    /*使用 CSL 封装*/
    VAR_l = XDC.loadPackage ('ti.CSL');
    Csl.Settings.deviceType = socType;

    /*加载 OSAL 封装*/
    VAR osType ="tirtos";
    VAR OSAL = xdc.loadPackage ('ti.osal');
    OSAL.Settings.osType = osType;
    OSAL.Settings.socType = socType;

    /*加载 MMCSD 包*/
    VAR Mmcsd = xdc.loadPackage ('ti.drv.mmcsd');
    mcsd.Settings.socType = socType;

    /*加载 fatfs 包*/
    VAR Fatfs = xdc.loadPackage ('ti.fs.fatfs');

    /*加载 EMAC 软件包*/
    VAR EMAC = XDC.loadPackage ('ti.drv.emac');
    emac.Settings.socType = socType;

    /*加载 NIMU 封装*/
    VAR Nimu= XDC.loadPackage ('ti.transport.NDK.Nimu');
    Nimu.Settings.socType = socType;



    我的项目属性中的库如下所示:
    ${TI_PDK_libraries}
    ${BIOS_libraries}
    ${NDK_libraries}
    ${EDMA3_LLD_libraries}
    C
    GCC
    ":os.aa8fg"
    m
    Nosys
    SoC

    包含路径:
    "${TI_PDK_library_path}"
    "${BIOS_CG_ROOT}/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu
    "${NDK_INSTALL_DIR}/packages/ti/ndk/os/lib
    "${pdk_install_path}/ti/starterware/binary/soc/lib/am335x-evm/a8/release/gcc
    "${BIOS_library_path}"
    "${NDK_library_path}"
    "${EDMA3_LLD_library_path}"

    我将 os.aa8fg 库放在那里、因为我正在尝试使 Nimu 项目正常工作、这就是它在示例项目中的作用

    我的 Nimu 帖子是: e2e.ti.com/.../610850 、但这是我目前正在努力了解函数调用及其工作原理。 目前、我似乎无法直接回答我的 Nimu 代码是否设置正确(如果没有、我需要更改什么)、以了解我是否有其他与库相关的问题。

    我没有要测试的 EVM 板。 我现在对我的 edma3init 无法正常工作的原因感到很损失。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    >>我按照 FATFS/SDCard 的示例操作、但我无法逾期:
    >gEdmaHandle =(EDMA3_RM_Handle) edma3init (1、&edmaResult);
    >>如果我使用0作为第一个参数,我会得到_exit,而当我使用1时,例程基本上会传递,并且我不会获得有效的 EDMA 句柄

    从该帖子 e2e.ti.com/.../389427 中、您应该已经深入了解了过去的 EDMA LLD。 如果您在 EDMA 初始化上打开一个新线程、它可能会获得更多输入。

    对于您提到的 Nimu 帖子、我已更新它、认为您可能已经解决了 PHY 设置问题。

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、我的库和包含路径看起来与我想要的功能正确、对吧? NDK、带 SDCard 和 EDMA3的 FATFS? 我需要验证或校正

    仅供参考、自从我以这种方式实施库后、EDMA 初始化就停止为我提供中止、因此我准备好了、这很好
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >>所以我的库和包含路径看起来与我想要的功能是正确的,是吗? NDK、带 SDCard 和 EDMA3的 FATFS? 我需要验证或校正
    没错。 您已为 cfg 文件中的每个组件定义了'var socType ="AM335x";'、这将确保您调用正确的库。 如果包含路径有任何错误、您将看到链接错误。

    此致、
    Garrett