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.

[参考译文] AM6548:AM6548:在哪里可以找到 PRU EtherCAT 从站固件?

Guru**** 2542430 points
Other Parts Discussed in Thread: AMIC110, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/941898/am6548-am6548-where-to-find-pru-ethercat-slave-firmware

器件型号:AM6548
Thread 中讨论的其他器件:AMIC110SYSBIOS

PRU-ICSS-EtherCAT-SLAVE 01_00_08_01 (software-dl.ti.com/.../index_FDS.html)提到了 AM65xx。 但预编译二进制文件下载中的 AM65xx_release 文件夹为空。 在 PRU-ICSS EtherCAT 从站 Linux 安装程序中 、有一个从版本号到电路板的 Readme.txt 映射、如所示

1) v1.0 -> ICSS v1.0 ->出现在 AM335x、AMIC110和 AM572x PG1.x 中
1) v2.0 -> ICSS v2.0 ->出现在 AM437x 中
1) v2.1 -> ICSS v2.1 ->出现在 AM572x 和 AM571x 中
1) v2.2 -> ICSS v2.2 ->存在于 K2G 中

哪个版本适用于 AM65xx? 或者、我是否需要在其他地方找到来源?

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

    g_v1.0中的固件适用于 AM65x。

    "G"可能指 ICSSG

    此致、

    Dominic

     

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

    感谢您提供信息。 我尝试通过创建项目

    projectCreate.sh AM65xx ARM EtherCAT_SLAVE_DEMO 

    在 PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocol/EtherCAT_SLAVE/Projects 中。 它会创建带有警告的项目:

    注意:当前未安装编译器版本'GNU_7.2.1:Linaro Aarch64'! -缺省为'GNU_7.2.1:Linaro'。

    CCS 显示了有关已创建工程的错误:

    此项目不包含可构建的 RTSC 配置(.cfg)文件。 为了使它能够生成、这个项目必须包含一个未从构建中排除的 RTSC 配置文件。

    当我按下构建按钮时、我会执行一些操作、但会遇到错误:


    ****为项目 EtherCAT_SLAVE_DEMO_AM65xx_ARM 构建配置 AM65xx_release ****

    /home/jonatan.h.zeidler/ti/ccs930/ccs/utils/bin/gmake -k -j 4 all -O
     
    构建文件:"/home/jonatan.h.zeidler/ti/PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocols/ethercat_slave/ecat_appl/am65xx_app.cfg
    调用:XDCtools
    "/home/jonatan.h.zeidler/ti/ccs930/xdctools_3_60_02_34_core/xs "--xdcpath="/home/jonatan.h.zeidler/ti/bios_6_73_00_12/packages;/home/jonatan.h.zeidler/ti/pdk_am65xx_1_0_2/packages;/home/jonatan.h.zeidler/ti/ndk_3_40_01_01/packages;/home/jonatan.h.zeidler/ti/edma3_lld_02_12_00_20/packages;" xdc.tools.configuro -o configPkg -t GNU.targets.arm.a53F -p ti.platforms.cortexA:AM65X -r release -c "/home/jonatan.h.zeidler/ti/ccs930/ccs/tools/compiler/gcc-arm-none-eabi-7-2017-q4-major "/home/jonatan.h.zeidler/ti/PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocols/ethercat_slave/ecat_appl/am65xx_app.cfg
    正在制作 package.mak (由于 package.bld)...
    正在为软件包 configPkg 生成接口(因为 package/package.xdc.inc 比 package.XDC 旧)...
    从 package/cfg/am65xx_app_pa53fg.cfg 配置 am65xx_app.xa53fg ...
    正在生成自定义 ti.sysbios 库 makefile ...
       链接库/home/jonatan.h.zeidler/ti/pdk_am65xx_1_0_2/packages/ti/drv/sciclient/./lib/am65xx/mpu1_0/release/sciclient.aa53fg
       链接库 ti.osal:/lib/tirtos/a53/release/ti.osal.aa53fg
       链接库 ti.drv.SPI:./lib/am65xx/a53/release/ti.drv.spi.aa53fg
       链接库 ti.board:./lib/am65xx_idk/a53/release/ti.board.aa53fg
       链接库 ti.csl:./lib/am65xx/a53/release/ti.csl.aa53fg
       链接库 ti.drv.gpio:./lib/a53/release/ti.drv.gpio.aa53fg
       链接库 ti.drv.pruss:./lib/a53/release/ti.drv.pruss.aa53fg
       链接库 ti.drv.i2c:./lib/a53/release/ti.drv.i2c.aa53fg
       链接库 ti.drv.UART:./lib/a53/release/ti.drv.uart.aa53fg
    正在开始构建库源...
    正在制作/home/jonatan.h.zeidler/ti/PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocols/ethercat_slave/ecat_appl/src/sysbios/sysbios.aa53fg ...
    asma53fg /home/jonatan.h.zeidler/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/IntrinsicsSupport_asm_gnu.sv8A……
    库构建失败。
    subdir_rules.mk:38:目标'Build-1648658223-InProc '的配方失败
    arm-none-eabi-gcc:错误:选项'-Mcpu=cortex-A53+fp+SIMD 中无法识别的参数
    arm-none-eabi-gcc:注意:'-MCPU='的有效参数为: arm1020e arm1020t arm1022e arm1026ej-s arm10e arm10tdmi arm1136j-s arm1136jf-s arm1156t2f-s arm1156t2f-s arm1156t2f-s arm1176jz-s arm1176jf-s arm250 arm3 arm1156jf-s arm1156t2 arm79660 armdm arm7100m arm796m armdm arm797m armm arm2 armdm armdarm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm10 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm2 arm10 arm2 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm10 arm arm968e-s arm9E arm9tdmi cortex-A12 cortex-a15 cortex-a15.cortex-a17 cortex-a17.cortex-a32 cortex-A35 cortex-a5 cortex-a53 cortex-a57 cortex-A57 cortex-a57.a72 mtex-a3-a36 cortex rtex-a36 cortex-mtex-a36 cortex-m7 cortex rtex rtex rtex rtex rtex rtex m3-a36 cortex rtex rtex m3-a36 cortex rtex rtex rtex m3-a53 cortex rtex rtex rtex rtex rtex rtex rtex rtex m3-a53 cortex rtex rtex rtex rtex rtex m3-a53 cortex rtex rtex rtex rtex rtex rtex rtex rtex rtex rtex Marvell-pj4 mPCore mpcorenovfp 本机 strarm strarm110 strarm1100 strarm1110 xgene1 xscale;您是指"cortex-A53"吗?
    arm-none-eabi-gcc:错误:选项'-mabi=LP64'中无法识别的参数
    arm-none-eabi-gcc:注意:'-mabi='的有效参数为:aapcs aapcs-linux ams-gu atpcs iwmmxt
    arm-none-eabi-gcc:错误:无法识别的命令行选项'-mcmodel=large
    arm-none-eabi-gcc:错误:无法识别的命令行选项'-mstrict-align ';您是指'-wstrict-alias'?
    arm-none-eabi-gcc:错误:无法识别的命令行选项'-mfix-cortex-A53-835769';您是指'-mfix-cortex-m3-ldrd'?
    arm-none-eabi-gcc:错误:无法识别的命令行选项'-mfix-cortex-A53-843419';您是指'-mfix-cortex-m3-ldrd'?
    gmake[1]:***[makefile:48:arm_intrinsicsSupport_asm_dng.o]错误1
    gmake:***[/home/jonatan.h.zeidler/ti/PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocols/ethercat_slave/ecat_appl/src/makefile.libs:57:/home/jonatan.h.zeidler/ti/PRU-ICSS-EtherCAT_Slave_01.00.08.01/protocols/ethercat_slave/ecat_appl/src/sysbios/sysbios.aa53fg ]错误2.
    错误:xdc.cfg.SourceDir:“/home/jonatan.h.zeidler/ti/ccs930/xdctools_3_60_02_34_core/packages/xdc/cfg/SourceDir.xs”,第209行:xdc.cfg.SourceDir:生成的源库生成失败:退出状态= 2:
     
    JS:"/home/jonatan.h.zeidler/ti/ccs930/xdctools_3_60_02_34_core/packages/xdc/cfg/Main.xs、第160行:错误:配置失败!
    gmake:***[package.mak:218:package/cfg/am65xx_app_pa53fg.xdl]错误1
    gmake:***删除文件'package/cfg/am65xx_app_pa53fg.xdl'
    gmake:***[package/cfg/am65xx_app_pa53fg.xdl]删除文件'package/cfg/am65xx_app_pa53fg.h'
    gmake:***[package/cfg/am65xx_app_pa53fg.xdl]删除文件'package/cfg/am65xx_app_pa53fg.c'
    JS:"/home/jonatan.h.zeidler/ti/ccs930/xdctools_3_60_02_34_core/packages/xdc/tools/Cmdr.xs、第52行:错误:xdc.tools.configuro:由于早期错误(状态= 2)、配置失败;已删除'linker.cmd'。
    gmaking[1]:***[Build-1648658223-InProC]错误1.
    gmake:***[build-1648658223]错误2.
    subdir_rules.mk:35:目标'build-1648658223'的配方失败
    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    我想它会尝试使用错误的编译器进行编译。

    是否有更简单的方法来构建 PRU 固件? 这是我实际上唯一感兴趣的东西。

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

    我已经尝试构建 EtherCAT 从站示例项目了很长时间。 请注意、我不是 TI。 TI 的某个人可能会为您提供更好的答案。

    [引用 user="Jonatan Hatakeyama Zeduer"]我想它会尝试使用错误的编译器进行编译。

    是的、您使用的编译器错误。 您是否安装了 AM65x 处理器 SDK RTOS、是否确保其所有产品和编译器都已在 CCS IDE 中注册?

    [引用 user="Jonatan Hatakeyama Zeduer"]是否有更简单的方法来构建 PRU 固件? 这是我实际上唯一感兴趣的东西。[/引述]

    PRU-ICSS-EtherCAT-SLAVE 不包含 EtherCAT 从站 PRU 固件的源代码。 它仅包含应在 A53内核上运行的"主机"软件。 实际的 PRU 固件以预构建的二进制文件(ecat_frame_handler.bin 和 ecat_host_interface.bin)和这些二进制文件的 HEXed 版本提供、这些二进制文件允许将 PRU 固件链接到 A53可执行文件中。 二进制文件由 A53加载到 PRU 存储器中。

    我认为 PRU 固件源不可用、至少我在任何地方都看不到。 如果您需要的是二进制固件、则应该已经将其放在 g_v1.0文件夹中。

    此致、

    Dominic

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

    Jonatan、

    只有二进制文件可用。 我们不提供 EtherCAT 固件的源代码版本。 若要构建 CCS 工程、请首先确保您已按照 Processor SDK 入门步骤在 CCS 中安装、设置环境变量并查找产品。 具体针对 EtherCAT、请遵循以下内容。

    转到 \protocols \EtherCAT_SLAVE\Projects。 并编辑 projectCreate.bat 文件

    应按照所示找到并编辑以下行(所有行均位于用户配置部分的文件开头。)  

    :设置 CCS 安装目录路径(必需)-文件夹'eclipse'所在的路径
    设置"CCS_INSTALL_DIR= \ccs"(示例:C:\ti\ccs1010\ccs)

    :设置 IA_SDK_HOME 目录(必需)
    设置"IA_SDK_HOME= "(例如:C:\TI\PRU-ICSS-EtherCAT_Slave_01.00.08.01)

    :设置 PDK 安装目录路径(对于 AM65xx 工程是必需的)
    设置"AM65xx_pdk_install_path= "封装"(例如:C:\ti\pdk_am65xx_1_0_7\packages)

    保存文件

    在中 \protocol\EtherCAT_SLAVE\Projects 执行以下命令:
    对于 A53:projectCreate.bat AM65xx ARM EtherCAT_SLAVE_DEMO
    对于 R5F:projectCreate.bat AM65xx r5f EtherCAT_SLAVE_DEMO


    "EtherCAT_SLAVE_DEMO_AM65xx_ARM"和"EtherCAT_SLAVE_DEMO_AM65xx_r5f"项目现在应在 CCS Project Explorer 窗口中可见。 项目生成中存在需要手动更正的错误。 右键点击工程并选择属性、然后在构建部分下:
    -使用“Configuration”(配置)框中的下拉菜单,如果尚未设置,请选择“AM65xx_release”
    -选择“Steps”(步骤)窗口
    -在 post-build 步骤中,在行末尾添加“MPU”或“MCU”(确保包含空格)。

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

    我按照您的说明操作、遇到了与以前完全相同的构建错误。 在 post-build 步骤中已经有"MPU"。 顺便说一下、r5f 构建也失败了。

    也许 TI SDK 的版本很有趣?

    BIOS_6_73_00_12

    NDK_3_40_01_01

    ccs1010

    pdk_am65xx_1_0_2

    PROCESSOR-SDK-LINUX_am65xx-EVM-07_00_01_06

    PRU-ICSS-EtherCAT_Slave_01.00.08.01

    EDMA3_LLD_02_12_00_20

    gcc-linaro-7.2.1-2017.11-x86_64_Aarch64-elf

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

    感谢您的帮助、Dominic。 ICSSG 有四个处理器(PRU1、PRU2、PRU_RTU1和 PRU_RTU2)、但只有两个二进制文件。 哪个二进制文件应该在哪个处理器上运行?

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

    您可以在 tiescbsp.c 中找到加载固件的代码:

    /* PRU 固件作为头文件加载在应用中*/
    PRUICSS_pruWriteMemory (pruIcssHandle、PRU_ICSS_IRAM (0)、0、
    (uint32_t *) PRU_frame_proc、
    pru_FRAME_PROC_Len);
    
    PRUICSS_pruWriteMemory (pruIcssHandle、PRU_ICSS_IRAM (1)、0、
    (uint32_t *) pru_host_proc、
    PRU_HOST_PROC_Len); 

    然后、我会说、PRU1运行 ecat_frame_handler_bin 代码、而 PRU2运行 ecat_host_interface_bin 代码。

    此致、

    Dominic

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

    Jonatan、

    EtherCAT 1.0.8版本是使用 Processor SDK RTOS 6.3开发的。 因此、您需要确保在使用项目设置进行干净编译时使用相同的方法。

    对于 PRU 利用率、它仅需要 PRU1和 PRU2。 未使用 RTU。

    此致、

    Dave

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

    使用 SDK RTOS 6.3、我可以构建 EtherCAT 1.0.8。 感谢您的帮助!

    为了避免将来的混淆、这些版本依赖项记录在哪里?

    此致

    Jonatan

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

    Jonatan、

    它在用户指南中的第1.1.2.2节组件版本下列出

    https://software-dl.ti.com/processor-industrial-sw/esd/docs/indsw/EtherCAT_Slave/01_00_08/PRU_ICSS_EtherCAT.html

    此致、

    Dave