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/PRU-ICSS-INDUSTRIAL-SW:EtherCAT 从站演示问题

Guru**** 2551110 points
Other Parts Discussed in Thread: AM3359, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/620334/rtos-pru-icss-industrial-sw-ethercat-slave-demo-issue

器件型号:PRU-ICSS-INDUSTRIAL-SW
Thread 中讨论的其他器件:AM3359SYSBIOS

工具/软件:TI-RTOS

您好!

我 将使用 PROCESSOR_SDK_RTOS_AM335x_4_00_00_04 (PDK_1_0_7)测试 PRU ICSS EtherCAT 从站演示项目 PRU-ICSS-EtherCAT_Slave_01.00.04.02。 我已检查系统要求、并已从 http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT#Component_Version 安装所有推荐版本 

我使用的是 Code Composer Studio 7.1.0、BIOS_6_46_05_55和 AM3359 Sitara IceV2评估板。 我尚未对示例代码进行任何更改。

我在任务1 ()中调用 UART_printf ("\n 版本-")时遇到异常。 当我进行分步调试时、我发现它在 Semaphore.c 文件中的 Semaphore_pend 函数处抛出异常。 SEM 变量未初始化,且 SEM->COUNT 引发异常。 导致这个未初始化信标的原因。 我使用的是 CCS7.1.0的 GEL 文件、因此如果是2.1版本。  

我在不同的机器上尝试过这个相同的示例应用、我只看到信号量访问的异常问题。 我之前在调用 SPI_open()时看到过这个问题,在信标访问时抛出异常。

我是否需要在构建环境中进行一些我缺失的更改? 我可以在我的设置上运行预构建的二进制文件、而不会出现任何问题。

此致

Mohit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好、Mohit

    最好在空目录中全新安装每个处理器 SDK 和 CCS 版本、以避免潜在问题。 为了加快安装并获得本地副本、可以首先将 PRU_ICSS_Protocol、Processor SDK 和 CCS 下载到下载等目录、然后从磁盘安装。

    作为首次完整性检查-让我们验证 CCS 版本信息是否为版本7.1.0.00016 (2017年3月17日)。 这不是 CCS >帮助>关于 Code Composer Studio。 我们之所以谨慎、是因为 CCS 将提供安装不应接受的7.2更新。

    另一个潜在问题可能是-如果您以前使用过 SYSBIOS 工业 SDK、则 Windows 环境中将存在 IA_SDK_HOME 的定义、应将其删除。

    如果您在 C:\ti 以外的目录中安装了 Processor SDK、Pru-ICSS_Protocol 或 CCS、则我们需要确保 CCS 知道所有相关文件的位置。 这是通过转到 CCS -> Window -> Preferences -> Products,然后输入 CCS、Processor SDK 和 EProtocol (EtherCAT)的 Install Directory path 来完成的。 删除不属于此配置的任何目录。 您还需要在[INSTALT-DIR]/PRU-ICSS-ETHERCAT_Slave_01.00.04.02/projects/projectCreate.bat 中编辑 EtherCAT -项目创建脚本、以指向 CCS、Processor SDK 和 EtherCAT 的正确位置。


    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    我使用的是 CCS 7.1.0.00016版本。 我还在未安装 SDK/PDK 的系统上对此进行了测试。 我已将所有工具安装到 c:\ti 文件夹中。
    但我遇到了 EtherCAT_SLAVE_DEMO 项目的例外问题。 问题始终在信标访问上。

    如何卸载处理器 SDK? 我能否只删除 pdk、xdctools 的文件夹、或将该文件夹重命名为 c:\ti_old。 然后、我应该执行全新安装吗?
    是否有首选的安装顺序、即在安装 CCS 和 PSDK 后应安装 PRU_ICSS_EtherCAT? 我知道、它仅提取软件包并复制到 c:/ti 文件夹。 我们是否还在安装过程中更新了一些环境变量?

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

    你(们)好,Mohan

    最简单的测试配置 是将 Processor SDK、CCS 和 PRU-ICSS Industrial 加载到空的 c:\ti 目录中。 还有许多其他配置可以正常工作,但这是最简单的安装方法。

    1) 1)通过 转到控制面板>程序和功能 > 卸载所有其他版本的 CCS 来删除所有其他版本。  

    2) 2)删除 c:\ti 中的所有文件和目录、以便 C:\ti 为完全空。 我们 还可以将以前的 C:\目录重命名为其他目录、然后创建一个空的 c:\ti 目录。

    我没有看到对加载订单的依赖,但我使用的订单是:

    3) 3)禁用病毒保护。

    4) 4)下载并安装 Processor SDK

    5) 5)安装 CCS。

    6) 6)此时 CCS 7.1 启动。  我通常会更改 每个 CCS 安装的工作区名称、以避免潜在的冲突。 但是、我们将在稍后的步骤中创建 PRU-ICSS-EtherCAT 工程中执行此操作。 允许 CCS 进行初始化。 然后 CCS 将推荐 可用的更新。   对于此 Processor SDK 版本-选择除 CCS Service Release Windows 7.2.0.00013之外的所有更新,因为我们要使用 CCS 7.1。    

    7)我们在 C:\ti 中安装所有内容- CCS 将自动找到支持工具 XDCtools、SYSBIOS、NDK、... 而无需额外配置。

    8) 8)关闭 CCS

    9) 9)安装 PRU-ICSS EtherCAT。

    此时、C:\ti 应如所示

    10) 10)重新启动 CCS 并允许其进行初始化、以便识别 使用 PRU-ICSS EtherCAT 下载的文件。

    CCS 应该会显示

    11) 11)关闭 CCS

    12)编辑 C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocol\EtherCAT_SLAVE\projects\projectCreate.bat

    在这种情况   下、我们想要将第37行从设置"CCS_WORKSPACE_LOC=%USERPROFILE%\CCS_WORKSPACy"更改为另一个名称(例如)设置"CCS_WORKSPACE_LOC=%USERPROFILE%\CCS_ECS"以避免潜在冲突。

    13) 13)保存文件并创建 DOS 窗口

    14) 14) cd 到 C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.04.02\protocol\EtherCAT_Slave\projects

    15) 15)进入 projectCreate.bat AM335x ARM EtherCAT_SLAVE_DEMO

    您应该会看到

    C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocols\EtherCAT_SLAVE\projects>projectCreate.bat AM335x ARM EtherCAT_SLAVE_DEMO
    (二
    环境配置摘要:
       CCS 安装目录         :C:\ti\ccsv7
       CCS 工作区目录       :C:\Users\a0122356\CCS_ECS
       SDK 安装目录         :C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocol\EtherCAT_SLAVE\projects\..\..
       PDK 安装目录         :C:\ti\pdk_am335x_1_0_7\packages
       项目创建目录     :C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.04.02\protocol\EtherCAT_SLAVE\projects\..\..\protocol\EtherCAT_SLAVE\projects
       项目创建 args 目录 :C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocol\EtherCAT_SLAVE\projects\..\..\protocol\EtherCAT_SLAVE\projects\ccsproject_args
    (二

    在目录 C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocol\EtherCAT_SLAVE\projects\..\protocol_SLAVE\PROJECT 中为"AM335x"平台创建项目'EtherCAT_SLAVE_DEMOH_AM335x_ARM"
    eCTS\EtherCAT_SLAVE_DEMO_AM335x_ARM'、方法是覆盖工程(如果已存在)...

    --------------------------------------------------
    正在创建项目'EtherCAT_SLAVE_DEMO_AM335x_ARM'...


    完成!

    C:\ti\PRU-ICSS-EtherCAT_Slave_01.00.04.02\protocol\EtherCAT_Slave\projects>

    16) 16)重新启动病毒保护

    17) 17)启动 CCS 并选择工作区 CCS_ECS。

    18) 18)打开项目 EtherCAT_SLAVE_DEMO_AM335x_ARM

    19)重新构建项目

    我使用 EVM USB 端口。 为此、我  使用德州仪器 XDS100v2调试探针配置 ICE_AM3359目标配置。

    我的 AM335x 在闪存中有一个程序、因此我在0x402f0400处配置了一个硬件断点、并按照上的说明进行操作

    http://processors.wiki.ti.com/index.php/Industrial_Protocol_Package_Getting_Started_Guide#Launching_and_Debugging_application_in_CCS

    以运行项目。

    David

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    感谢您提供有关安装过程的详细步骤。
    但我发现了异常问题的根本原因。 我观察到、在我的安装中、当我为 EtherCAT 生成项目文件时、"AM335x.lds"文件将在"C:\ti\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocols\EtherCAT_SLAV\projects\EtherCAT_SLAVE_DEMO_AM335x_ARM"中生成。 我还可以在编译控制台中看到、该文件正在用于编译。 作为试用版、我删除了该文件并构建了项目。 这一次例外问题没有出现。

    在进一步搜索后、我找到了以下内容
    processors.wiki.ti.com/.../SYSBIOS_Industrial_SDK_Getting_Started_Guide

    注意:在为 ICE_AM3359[CortexA]器件使用 AM335x_debug/AM335x_release 配置编译工程时,请确保从 Main 选项卡下的 Properties->CCS General->Linker 命令文件中删除了链接命令文件 AM335x.lds。

    因此、此链接器脚本文件不应与 ICE_AM3359[CortexA]构建一起使用。 我不确定它是如何自动生成的、但从项目文件夹中删除"AM335x.lds"文件后、我没有遇到异常问题。

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

    Mohit

    谢谢你。 我将在我们的 Sitara 工业常见问题解答- http://processors.wiki.ti.com/index.php/FAQ_Sitara_Industrial 中添加该故障指示和原因

    David