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.

[参考译文] CCS/AM3359:从 SD 卡运行 EtherCAT 应用

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582698/ccs-am3359-running-ethercat-application-from-sd-card

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

工具/软件:Code Composer Studio

我最近收到 了一 个 AM3359模块、用于开发 EtherCAT 从站。 我已成功构建基于 Beckhoff 从站堆栈工具的 EtherCAT 从站、并使用调试探针运行该从站。 我基于 SYSBIOS 2.1.3.2中的 EtherCAT 演示来构建项目、添加了从站堆栈文件并删除了 EtherCAT 库。 我想我会看到我是否可以将应用程序放在 SD 卡上。 如果我获取由 CCS6.1.3生成的 EtherCAT.out 的发布版本、请键入:

C:\ti\AM335X_StarterWare_02_00_01_01\tools\ti_image\tiimage.exe 0x80000无 EtherCAT.out 应用

并将其与 MLO 文件一起放在 FAT32格式的 SD 卡上、然后重置电路板、我看到:

复制到 RAM 成功完成
 映像复制成功、正在执行应用程序。

但没有其他东西。 如果有任何关于我可能出错的想法、我们将不胜感激。

我的滴答电话是否正确?

我看到我同时拥有 ethercat.bin 和 EtherCAT_ti.bin、但不知道为什么有2个 bin 文件。

感谢您的任何帮助!

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

    当 使用 UART 引导模式进行引导时、将使用 ethercat.bin 文件;当使用 MMCSD、NAND、 McSPI/QSPI 引导模式时、将使用_ti.bin 文件。 _ti.bin 文件向二进制文件添加了一个包含加载地址和加载大小的图像头文件。

    将.out 转换为_ti.bin 的过程如下:

    toolchain_path_ /bin/arm-none-eabi-objcopy -O 二进制文件 .out 
    
    tiimage.exe 无 二进制文件 _ti.bin 

    如果您使用的是工业 SDK、我相信 SDK 会提供 post_build.bat 脚本来生成此处所述的映像:

    n`t 说明、RBL 似乎能够读取和加载 MLO、并且能够初始化 SOC (时钟、UART 等)并复制图像、但应用程序没有启动。 由于问题出在用户级引导加载程序 SBL 中、因此可以使用仿真器执行 CPU 复位、并在次级引导加载程序和根中进行调试、从而导致问题。

    希望这对您有所帮助。

    此致、

    Rahul

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

    感谢您的快速响应! 我看到您正在向我介绍版本01.01.00.08用户指南。 我使用的 是02.01.03.02版 http://processors.wiki.ti.com/index.php/AM335x_SYSBIOS_Industrial_SDK_Getting_Started_Guide。 除非我错过了一些内容、否则我似乎应该能够将 MLO 文件和 EtherCAT 演示应用(作为应用)复制到 SD 卡、并且应该能够启动并运行。 我看不到这个。

    此外、当我构建应用程序时、我以为应该使用 tiimage 应用程序将 ethercat_ti.bin 文件转换为应用程序、而不是简单地将 EtherCAT.ti_bin 复制到 SD 卡上的应用程序。

    我对各种格式(.out、.bin 等)和各种报头类型(UART、SPI、NOR 等)感到困惑。 是否有一些描述这些格式的有用参考?

    再次感谢、

    Robert

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

    TRM 的初始化一章介绍了引导加载程序的映像格式。 工业 SDK 中的引导工具使用此处介绍的 Starterware 工具:
    processors.wiki.ti.com/.../AM335X_StarterWare_Booting_And_Flashing

    引导失败时、您能否连接到 ARM 并查看 ARM 内核是在 SBL 存储器空间还是在 EtherCAT 应用存储器空间中执行。 从 UART 日志中、显示 MLO 已引导、应用程序已复制、控制权已传递给应用程序。

    此外、您能否指定您是使用预构建的二进制文件、还是是否构建了 EtherCAT OUT 文件。 如果您构建了 EtherCAT 应用程序,您能否尝试查看预构建的二进制文件是否正在设置中引导。


    此致、
    Rahul

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

    Robert、Rahul 将您指向正确的信息=)。 我认为在您的案例中、您只需要重命名  将_ti.bin 添加到应用程序和您的应用程序应该可以正常工作。 测试 SD 卡格式是否正确的快速方法是尝试预编译二进制文件。 您可以从 SYSBIOSSDK-IND-Sitara 下载预编译二进制文件

    谢谢、

    Paula

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的评论、Paula。
    我曾尝试将 ethercat_ti.bin 重命名为应用程序、但结果相同。
    因此、我尝试复制预编译的文件 applications\EtherCAT\AM335x_release\SD\app 和引导加载程序\AM335X_ICEv2.1\mmcsd_release\MLO、结果相同:
    *** StarterWare 引导加载程序。 Build -针对 ICE V2为1.0.8
    将应用程序映像从 MMCSD 复制到 RAM

    复制到 RAM 成功完成
    映像复制成功、正在执行应用程序。

    那么什么也没有。 我可以在 SD 卡上有其他文件吗? (我在复制新的 MLO 和应用文件之前重命名了旧的 MLO 和应用文件。 我正在使用 SanDisk 的8GB SD 卡、该卡由 HP 实用程序格式化为 FAT32。

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

    Robert、您可能在 SPI 闪存中有什么东西吗?某些新电路板具有预闪存应用。 此外、请检查您是否已正确设置引导跳线。

    ISDK 入门指南中找到

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    该器件通过 ARM ROM 引导加载程序支持 SPI、MMC/SD 和 NOR 引导模式。 引导引导模式选择由 J5上引脚的状态决定。 (有关引脚标记、请参阅 ICE V2图片)

    MMC/SD 引导

       引脚2和3在 J5上短接。  
       ROM 引导加载程序在 SD 卡中查找名为'LO'的文件、如果找到该文件、则将其加载到 IRAM 并执行该文件。 请注意、SPI 闪存中不应存在 SPI 引导加载程序。

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    您可以按照以下步骤擦除闪存:

    使用 CCS 进行 SPI 刷写  -->我建议您更轻松

    使用 SD 卡进行 SPI 闪存

    谢谢、

    Paula

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

    我曾假设、由于它说将应用程序从 MMCSD 复制到 RAM、因此它从 SD 卡加载应用程序。 由于它没有在 SPI 中运行应用程序、因此这不是问题。 确切地说、我擦除了 SPI 应用程序、但没有看到任何差异(除了默认应用程序不再运行)。 然后、我也擦除了引导加载程序、但结果相同。 我以前尝试过更改 J5跳线、但没有任何更改。

    还有其他想法吗?

    我已经尝试将目标配置同时设置为 AM3359和 ICE_AM3359、以查看我是否看到任何差异、但我看不到任何差异(我不确定两者之间的区别应该是什么-我使用的是 V2板、而不是 EVM)。

    再次感谢、

    Robert

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

    Robert、我认为下一步最好的方法是连接 JTAG 并使用 CCS 进行调试、正如上文对 Rahul 的建议。 您的过程和步骤对我来说是正确的、因此我不能真正确定它是什么。

    回显 Rahul、 从 控制台日志中可以看到 MLO 已引导、应用程序已复制、控制权已传递给应用程序、因此当您连接到 CCS 时、您可以看到程序中它卡在何处。

    谢谢、您、

    Paula