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/AM3356:Starterware、RTOS 和 PDK 差异

Guru**** 2618835 points

Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/657786/rtos-am3356-starterware-rtos-and-pdk-differences

器件型号:AM3356
主题中讨论的其他器件:AM3358

工具/软件:TI-RTOS

情况如下: 我们可以毫无问题地连接和调试 BeagleBone。  我们可以编译简单的 hello world 和 SWI 示例、并在板上正常运行它们。  

我们遇到的问题都是在我们尝试设置处理器外设代码并尝试编译时遇到的所有 TI 工具链问题。  我们只是尝试在 CCS 中为电路板编译 SYSBYOS、并使用正确的驱动程序等    我们已经搜索了~2周、尝试将所有内容整合在一起、并不断进行循环引用、但未找到问题的答案。

以下是我们的问题列表:

Starterware、Processor SDK RTOS AM335X 和 PDK AM335X 之间有何区别?  

    1. 有关所有这些内容的文档都在地图上。

2.我们似乎需要以某种方式获得上述封装之一的电路板设置、并将其集成到 board.h 中以获得要编译的代码。  我发现我需要从 Pinmux 工具开始 (我已经为我们的板附加了 zip 文件–尽管我不知道我是否需要启用 EMIF 外设、或者在附加的文件中是否以其他方式启用了 EMIF 外设)。  我无法弄清楚的是如何使 pinmux 生成的文件与我的代码链接,以便使用正确的引脚配置进行构建。  

    1. 一些在线信息引用了 pinmux、该 pinmux 生成的文件比实际多。
    2. 当我们在今年夏天完成自己的板的旋转并为 AM335X 配备了一套全新的引脚多路复用器 IO 时、对这一过程的帮助将会非常棒、并且对我们有所帮助。

3. SDK 和 PDK 驱动程序的总体文档–是否有与 AM335X 处理器和 SDK 的 Tivaware 和 TI-RTOS for Tiva C 文档类似的文档?

CCS 中 AM335X 处理器的整体项目配置–构建时、我们需要包含哪些软件包?

5.我们可以访问/使用哪些示例?

    1. 即使我们按照 TI 论坛中的建议编译 Processor SDK、PDK 示例也不存在

如果我们能够通过集成电路板引脚多路复用文件和必要的文档来设置 CCS 环境、我们似乎非常接近于运行项目。  

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

    Mark、您好!

    我可以帮助回答您的一些问题:

    独立 StarterWare 是我们不再支持的传统软件包。 这是为裸机无操作系统开发创建的软件包、将此软件包与高级操作系统集成时出现问题。

    处理器已迁移到 Processor SDK、这是"一个软件平台、可以控制所有处理器。" www.ti.com/.../overview.html。对于 AM335x 器件、starterware 仍会集成到 PDK 软件包中、主要是为了重复使用引导加载程序和一些 SOC/电路板初始化例程、同时还允许现有客户迁移到 PDK 环境。 对于新应用开发、建议使用 PDK 软件包中的 LLD 进行应用开发、并且仅使用 Starterware 软件包中的引导加载程序。  


    对于文档、我们提供了 Processor SDK RTOS 软件开发人员指南、其中包含有关入门、驱动程序、示例等的文档
    www.ti.com/processor_sdk_rtos -我建议将此书签标记为书签!

    PDK 示例基于 makefile、但 PDK 目录中有一个脚本可将其转换为 CCS 工程。 请参阅 processors.wiki.ti.com/.../Rebuilding_The_PDK

    您需要首先通过导航到 pdk_folder/packages 并在命令提示符下运行 pdksetupenv.bat 来设置 PDK 环境。 然后、您可以运行 pdkProjectCreate.bat 脚本以创建 CCS 项目。 这些脚本假设您已在默认位置(C:\ti)安装了 SDK、因此如果情况并非如此、请参阅 processors.wiki.ti.com/.../Processor_SDK_RTOS_Install_In_Custom_Path

    导入示例时、SDK 将自动包含必要的软件包。

    希望这对您有所帮助。

    此致、
    Sahin

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

    Sahin、

    感谢您的反馈。 我的客户已经完成了 gmake-call、但系统似乎在此处分解。 外设驱动程序加载不正确。 (我们可以让基础知识运行('hello world')-似乎无法超越)。

    实际的目标处理器是 AM3358、而 Code Composer Studio 6.2.0是软件开发平台。 CCS 7已经过尝试、但仍有太多问题无法继续沿着该路径运行。

    深入了解 e2e 论坛、似乎有几个人遇到了相同的问题。 我的客户正在尝试将 TI RTOS 用于 CCS 7.4+、 您是否听说过有关这方面的任何投诉? 尽管所有路径都显示了 TI RTOS 应该出现在项目中、但他们仍在尝试确定为什么它没有出现在项目中。

    我们是否应该在此时避免将 CCS 7.4+用于新开发并坚持使用6.x 版本的修订版?

    以下是 e2e 上的链接、它与他们遇到的问题相匹配:

    有关 CCS 7与具有 TIRTOS 的 CCS6的更多信息:

    1.当我在 CCS6中时、用于 TivaC 的最新 TI_RTOS 为2.16.1.14。  但当我在 CCS7中时、系统会提示我下载2.16.0.08。  

    2.如果我尝试使用2.16.1.14编译 CCS7中的项目(由于安装了 CCS6、我已经编译了该项目)、我的项目将符合要求。  如果我进入项目常规设置并选择2.16.0.08、则该项目不会编译、并且我会遇到错误。  

    它们使用除 I2C 外的所有 AM3358外设。 我可以发送 Pin mux 文件进行审核、如果这样做有帮助的话。

    是否有驱动程序说明文档?

    当涉及外设时、TI-RTOS 似乎有问题。 展望未来-是否有任何特定的库需要包含在外设驱动程序的代码编译中?

    谢谢!e2e.ti.com/.../3757.AM335x.pinmux.txt

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

    Mark、

    我想我们在这里要解决很多问题、因此我想帮助您了解 Processor SDK RTOS 堆栈、并帮助您提供更多 AM335x 文档。

    首先、我不确定 TivaC 软件和 Processor SDK RTOS 软件是否提供相同的用户体验并支持相同的依赖项集、因此可能会在首次学习该过程如何与 AM335x 器件配合使用时学到一些知识。  

    要选择合适的 CCS 版本、应始终参阅软件的发行说明、其中指定了系统测试 SDK 以获得最佳用户体验的依赖项版本。  处理器 SDK RTOS v4.2发行说明可从以下位置获取:

    我们当前支持的 CCS 版本是当前版本的 CCSv7.3。 除 CCS 之外、包括编译器在内的所有其他工具都是 Processor SDK RTOS 安装程序的一部分。

    对于 AM335x、如果您使用外设、我们建议您设置 LLD 驱动程序的示例/测试、并检查.cfg 文件作为创建您自己的应用程序的起点。  我们还添加了 AM335x EVM 上支持的简单入门模板、您可以将其用作参考。 此模板合并了多个驱动程序、并显示了如何同时运行这些驱动程序。

    为了更新和自定义电路板库、您可以参阅以下应用手册、其中介绍了如何在 SDK 中更新默认 UART 实例。 这将指导用户使用更新的引脚多路复用器、外设实例更改电路板封装并测试更改。

    大多数使用外设驱动程序的应用程序要求您在 CSL 库、OSAL (OS 抽象层)库和电路板库中进行链接。

    高级驱动程序文档链接自 软件开发人员指南 、API 参考指南位于

    pdk_am335x_1_0_9\packages/API_Documentation.html

    此致、

    Rahul

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

    让我对此进行一点备份。

    我要求客户执行以下操作(更详细的分步方法):

    我向‘提出的请求-“您能否进行以下练习–获取以下文档并测试使用 Pin Mux 工具更改 UART 设置的“示例”。

    Processor SDK RTOS 定制:修改电路板库以更改 UART 实例(sprac32.pdf)

    让我们将其用作我们对话的起点。  (第1节和第2节针对软件方面的内容)

    我可以告诉您发送的文件–您已经完成了类似的操作(可能与本示例不完全相同)。

    然后,第3节,‘测试更改’。  如果一切正常、那么我们的最终解决方案就远比这更远了。 如果不是–那么我们知道可以从哪里开始。 "

    工程师的回答:

    对该示例有几处意见(以及构建电路板的问题):

    1. 在第2.1节中 、项目1似乎已经完成、所幸的是、外设已经在那里、因此我希望所有外设都可以启用、而不是手动输入:   
      1. 项目2.1.2似乎只是在编辑0到1之间的 UART 模块。  是否有原因不能同时启用两者(只考虑未来的工作)
      2. 项目2.2.1:如果我想启用多于 UART 1、我会在这里执行什么操作?  它是部分或组合、还是完全不同? 似乎只能有一行 Board_UART_Instance
      3. 2.2.2:此步骤似乎与步骤2.1.2相同、但仅在 pinmux 文件中–似乎是多余的。
      4. 当我尝试构建电路板和 Starterware 文件时、我会遇到以下错误:

       

      电路板

      C:\ti\pdk_am~1\packages/gmake 板

      gmake -C ./ti/board all

      gmake[1]:进入目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake libcore Board=evmAM335x

      gmake[2]:进入目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake lib_allenthans core=a8host build_profile_a8host=release

      gmake[3]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake comp_libs ENDIAN=小

      gmake[4]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake -C /ti/PDK_AM~1/packages/ti/board -f build/makefile.mk

      gmake[5]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

      #编译 evmAM335x:AM335x:a8host:release:board:src/evmAM335x/evmAM335x_pinmux.c

      C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -MD -MF /ti/PDK_AM~1/packages/ti/binary/ti/board/obj/evmAM335x/a8/release/.deps/evmAM335x_pinmux.P -DMAKEFILE_Build -c -mcpu=corabi-a8-mtune -motip=mAM335x_mspi_-drom_unus_dspi_dbrom_dbrom_b-dbrom_d_d_drom_d_un-mspi_mspi_un-drom-d_d_drom_d_mspi_un-mspi_mspi_mspi_un-drom-d_mspi_mspi_mspi_un-drom-d_d_d_mspi_mspi_un-un-drom_d_d_drom_mspi_mspi_mspi_un-un-drom-d_d_d_d_mspi_mspi_mspi_mspi_d_   -DBUILDCFG_MOD_WDT -DBUILDCFG_MOD_ADC -DBUILDCFG_MOD_LCDC -DBUILDCFG_MOD_PRU_ICSS  -DevmAM335x -DSOC_AM335x -DevmAM335x -IC:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include -I. -isrc -isrc/evmAM335x -isrc/evmAM335x/device -isrc/evmAM335x/include -i/ti/pdk_am~1/packages/ti/starterware/包括-i/starter/pdk/starware/ti/包含/ti/ti/ki/starware/ti/ti/包含/am/starware/ti/starm//am/km//starware/i /i starware/km//am/i /i starware/i starm//km/1/km/i starware/am/i /i /i /km/i starware/km/i /i /i starware/am/i /i starware/km/i /i /i starware/km/i /i /i /i starware/km/i /i /i~/i /i /i starters/i~~~~~~~~/i /i /i /i /i starware/km/i starware/km/i /i /km/i /i /i /i ~/ti/PDK_AM~/ti/PDK_AM~/ti/PDK_AM~/ti/edma3_lld_2_12_05_29/packages~

      src/evmAM335x/evmAM335x_pinmux.c:在函数'PINMUXModuleConfig'中:

      src/evmAM335x/evmAM335x_pinmux.c:165:19:错误:未声明'ggpevmPinmuxData'(在此函数中首次使用)

          pPinmuxData = gGpevmPinmuxData;

                        ^μ A

      src/evmAM335x/evmAM335x_pinmux.c:165:19:注意:每个未声明的标识符只针对出现在中的每个函数报告一次

      gmake[5]:***[/ti/PDK_AM~1/packages/ti/binary/ti/board/obj/evmAM335x/A8/release/evmAM335x_pinmux.oa8fg]错误1.

      gmake[5]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmaked[4]:***[board]错误2.

      gmake[4]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmaked[3]:***[LIT_lib]错误2.

      gmake[3]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake[2]:***[a8host_lib]错误2.

      gmake[2]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmaking[1]:***[evmAM335x_lib]错误2.

      gmake[1]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

      gmake:***[board_lib]错误2.

       

      Starterware:

      C:\ti\pdk_am~1\packages/gmake starterware

      cmd /C del /s ti\\starterware\\*.o ti\\starterware\\*.a > NUL

      gmake -C ./ti/starterware bootloader BUILDCFG=引导引导模式=UART platform=AM335x-EVM profile=debug -s KW_build=no

      #生成 AM335x-EVM:a8host:debug:xMODEM_lib...

      #编译 AM335x-EVM:a8host:debug:xMODEM_lib:crc16.c

      #编译 AM335x-EVM:a8host:debug:xMODEM_lib:XMODE.c

      编号

      #存档 AM335x-EVM:a8host:debug:xMODEM_lib_boot

      编号

      #生成 AM335x-EVM:a8host:debug:board...

      #编译 AM335x-EVM:a8host:debug:board:board.c

      #编译 AM335x-EVM:a8host:debug:board:dcard.c

      #编译 AM335x-EVM:a8host:debug:board:platform.c

      #编译 AM335x-EVM:a8host:debug:board:pinmux.c

      #编译 AM335x-EVM:a8host:debug:board:AM335x/board_AM335x.c

      #编译 AM335x-EVM:a8host:debug:board:AM335x/dcard_AM335x.c

      #编译 AM335x-EVM:a8host:debug:board:AM335x/AM335x_gpevm.c

      AM335x/AM335x_gpevm.c:341:5:错误:'ggpevmPinmuxData'在此未声明(不在函数中)

          gg.pevmPinmuxData、

          ^μ A

      gmake[3]:***[c:/ti/PDK_AM~1/packages/ti/starterware/binary/board/obj/AM335x-EVM/A8/debug/gcc/AM335x_gpevm_boot.o]错误1.

      gmak[2]:***[板]错误2.

      gmaked[1]:***[bootloader]错误2.

      gmake:***[starterware_boot]错误2.

    更新日期:2018年2月4日

     我尝试仅构建 BBB 板、并得到此错误(在出现以下错误信息后、我的更新继续):

     C:\ti\pdk_am~1\packages/gmake board_lib limit_boards=bbbAM335x

    gmake -C ./ti/board all

    gmake[1]:进入目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake libcore Board=bbbAM335x

    gmake[2]:进入目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake lib_allenthans core=a8host build_profile_a8host=release

    gmake[3]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake comp_libs ENDIAN=小

    gmake[4]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake -C /ti/PDK_AM~1/packages/ti/board -f build/makefile.mk

    gmake[5]:输入目录`c:/ti/PDK_AM~1/packages/ti/board'

    #编译 bbbAM335x:AM335x:a8host:release:board:src/bbbAM335x/bbbAM335x_pinmux.c

    C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -MD -mf /ti/PDK_AM~1/packages/ti/binary/ti/board/obj/bbbAM335x/a8/release/.deps/bbbAM335x_pinmux.P -DMakeFile_build-c -mcpu=corabi-a8-mtune -motip=mspi=dspi_unus_dspi_mspi_drom-db_dspi_un-dspi_mspi_drom-drom-d_un-mspi_drom-d_drom-d_d_un-mspi_mspi_un-mspi_dspi_mspi_mspi_un-drom-drom-d_mspi_un-drom-d_d_mspi_mspi_un-drom-d_mspi_mspi_un-drom-d_mspi_un-mspi_mspi_mspi_un-drom-drom-d_mspi_m   -DBUILDCFG_MOD_WDT -DBUILDCFG_MOD_ADC -DBUILDCFG_MOD_LCDC -DBUILDCFG_MOD_PRU_ICSS  -DbbbAM335x -DSOC_AM335x -DbbbAM335x -IC:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include -I. -isrc -isrc/bbbAM335x -isrc/bbbAM335x/device -isrc/bbbAM335x/include -i/ti/pdk_am~~~~~~~~~~1/packages/ti/starterware/包括-i/ti/pdk/starware/starware/ti/包含/ti/ti/kb/starware/ti/b/starware/ti/ti/b/starb/starware/kb/starb/starb/starb/starware/packages/i /ti/ti/ti/ti/b/starb/starware/kb/starb/starb/starb/am/kb/starb/starware/kb/starb/starb/starb/starb/starb/starb/starb/starware/packages/ti/b/ti/kb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/starb/packages/i /packages/ti/b/ti/ ~/ti/PDK_AM~/ti/PDK_AM~/ti/PDK_AM~/ti/edma3_lld_2_12_05_29/packages~

    src/bbbAM335x/bbbAM335x_pinmux.c:在函数'PINMUXModuleConfig'中:

    src/bbbAM335x/bbbAM335x_pinmux.c:118:19:错误:未声明'gBbbPinmuxData'(在此函数中首次使用)

        pPinmuxData = gBbbPinmuxData;

                      ^μ A

    src/bbbAM335x/bbbAM335x_pinmux.c:118:19:注意:每个未声明的标识符只报告一次、每次显示在中的函数都是这样

    gmake[5]:***[/ti/PDK_AM~1/packages/ti/binary/ti/board/obj/bbbAM335x/A8/release/bbbAM335x_pinmux.oa8fg]错误1.

    gmake[5]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmaked[4]:***[board]错误2.

    gmake[4]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmaked[3]:***[LIT_lib]错误2.

    gmake[3]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake[2]:***[a8host_lib]错误2.

    gmake[2]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmaked[1]:***[bbbAM335x_lib]错误2.

    gmake[1]:离开目录`c:/ti/PDK_AM~1/packages/ti/board'

    gmake:***[board_lib]错误2.

     

    我看到错误位于“src/bbbAM335x/bbbAM335x_pinmux.c”中,因此我进行了调查。  我看到文件中唯一包含错误的文件是 am335x_pinmux.h、而在 am335x_pinmux.h 文件的底部、有对 pinmuxBoardCfg_t 的引用  因此、我将 am335x_pinmux.h 编辑为:pinmuxBoardCfg_t gBbbPinmuxData[];并且我的板符合要求。  

     

    似乎是指令中遗漏的一个相当大的步骤…

    更新日期:2018年2月5日

    供参考–UART 1示例没有为我提供任何数据,即使在我构建电路板之后也是如此。  

     代码会编译并显示在电路板上运行。  我没有在 UART0或 UART1上获取数据,所以可能我做了些什么?  

    同样,我也无法重建 Starterware,所以也许这就是原因。  

     

    那么、这是否能帮助您(e2e 论坛)更好地了解情况?

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

    Mark、您好!

    我了解了您在构建过程中遇到的问题、如应用手册中所强调的那样。 我还遇到了相同的错误。

    本应用手册发布已有几年时间,因此 Processor SDK RTOS 软件包已有所发展。 pinmux 工具生成的语法也改变了一个位。

    话虽如此,我正在使用最新的更改更新文档。 由于您拥有电路板库构建、请尝试以下操作。

    在 C:\ti\pdk_am335x_1_0_9\packages/ti\drv\uart\soc \am335x\uart_soc.c 中

    将中断编号从105更改为73 (这是软件中的错误)。

    然后通过执行一个>gmake 板来重建电路板库。

     {

    SoC_UART_1_regs、
    73、
    0、
    48000000U、
    CSL_EDMA3_CHA_UART1_RX、
    CSL_EDMA3_CHA_UART1_TX、
    0、
    0、
    0、
    0、
    0、
    null、
    UART_RXTRIGLVL_8、
    UART_TXTRIGLVL_56、
    True、/*默认 DMA 模式*/
    false,默认情况下禁用/*回送*/
    true,默认情况下启用/*中断
    }、 

    请告诉我们这是否有效。

     Lali