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 应用的 TMDSIE3359:PRU-ICSS Profibus

Guru**** 2547590 points
Other Parts Discussed in Thread: PROFIBUS, AM3359

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1078855/tmdsice3359-pru-icss-profibus-on-rtos-application

部件号:TMDSIICE3359
“线程”中讨论的其它部件:ProfibusAM3359

您好,

经过大量努力,我最终设法在 TI TMDSIE3359评估板上以调试模式运行 Profibus 基本软件,并设法为我们的目的正确配置 Profibus 通信。 但是,在刷新发行版本并运行此版本后,我发现重新引导后系统不会重新启动。 我正在使用建议的 SDK 4.3.0版本。  

1)我认为这是由于初始化问题造成的。 到目前为止,我一直在使用直接从闪存工作的微控制器,但我认为 TI AM3359从根本上说是不同的,并且始终根据速度要求与 RAM 工作;我对吗?

2)在编译过程中,最后一步始终记录“打开输入图像文件时出错!” 尽管“Profibus 从属设备 AM335x_arm.out”文件存在于应该存在的位置。 我检查了 pdkAppImageCreate.bat 的语法,看起来一切都很好。 尝试在 Windows 命令行中运行此批处理文件时会得到相同的结果。 这里有什么问题?

3)这张丢失的图像文件是否可能是我重启问题的原因?

请提前感谢。

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

    我刚刚发现,尽管  出现了误导性的错误消息,但文件“Profibus 从属设备_AM335x_arm.bin”实际上是由 pdkAppImageCreate.bat 编写的。 启动问题似乎与这种所谓的“错误”无关。 然后我想我需要一个引导加载程序;能否有人确认这一点?  如果是,是否应该使用 AM335X_StarterWare_02_00_01_01来完成此操作?

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

    显然,带有 SDK 4.3.0的启动器软件比 Starterware_02_00_01_01更新,因此我尝试在 C:\ti\pdk_AM335x_1_0_10\packages\ti\startware 中构建启动器。 服务器遇到以下错误:

    C:\ti\PDK_AM335x_1_0_10\packages \ti\starterverware>gmake bootloader BUILDCFG=引导引导模式=mcspi platform=AM335x-EVM 配置文件=发行版-s KW_build=否
    PROCESS_BEGIN:CreateProcess (NULL,/mkdir -p C:/ti/PDK_AM335x_1_0_10/packages/ti/startware/binary/bootloader/obj/AM335x-EVM-a8host/release/gcc/boot_mcspi,...)失败。
    品牌(e=2):DAS 系统 kann die angegebene Datei nicht find.
    gmake [1]:***[C:\/ti/PDK_AM335x_1_0_10/packages/ti/startware/binary/bootloader/obj/AM335x-EVM-a8host/release/gcc/boot_mcspi]错误2.
    gmake:***[bootloader]错误2.

    在我的 SDK 中 ,目录 C:\ti\PDK_AM335x_1_0_10\packages \ti\startware\binary\bootloader\obj...不存在。

    我是否必须使用最新的 SDK-版本,尽管对于 Profibus 项目,建议使用 v4.3.0?

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

    Trevor Brown,您好!

    我可以在最后重现此问题。 能否运行以下命令作为构建 mcspi 的引导加载程序的变通办法。

    CD C:\ti\PDK_AM335x_1_0_10\packages
    pdksetupenv.bat

    制作  startware_boot

    注:这将为其他引导模式(UART,mmcsd,nand,mcspi 和 QSPI)构建引导加载程序。

    谢谢,
    纳雷什·库马尔·阿

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

    你好,纳雷什,

    非常感谢您的回复。  使用“make  startware_boot”时,我遇到了另一个错误:

    C:\ti\PDK_AM335x_1_0_10\packages >制作 startware_boot
    德尔·贝菲尔“制造”的网络编程器猎鹰网格里厄根
    Konnte nintt gefunden werden。

    (找不到“make”)

    于是我尝试了“gmake”,结果发生了很多事情! 最后,缺少的目录(C:\ti\PDK_AM335x_1_0_10\packages \ti\startware\binary\bootloader\obj...)现已存在。

    因此,现在我重新尝试构建所需的 bootloader 版本,在这种情况下会出现另一条错误消息:

    C:\ti\PDK_AM335x_1_0_10\packages \ti\starterverware>gmake bootloader BUILDCFG=引导引导模式=mcspi platform=AM335x-EVM 配置文件=发行版-s KW_build=否
    #正在制作 AM335x-EVM:a8host:发行版:设备...
    #正在制作 AM335x-EVM:a8host:发行版:主板...
    #正在制作 AM335x-EVM:a8host:发行版:实用程序...
    #正在制作 AM335x-EVM:a8host:发行版:SOC...
    #正在制作 AM335x-EVM:a8host:发行版:DAD...
    gmade[1]:`没有规则来制作目标“`/arm-no-eabi/lib/hard”,C:/ti/pdp_AM335x_1_0_10/packages /ti/startware/binary/bootloader/bin/AM335x-EVM-EVM-EVM-ebc/bootloader_bootloader_boot_boot_a_host_release.out 需要。” 停下。
    gmake:***[bootloader]错误2.

    但是,我在 C 中找到了以下文件:\ti\PDK_AM335x_1_0_10\packages \ti\startware\binary\bootloader\bin\AM335x-EVM-gcc:

    bootloader_boot_mcspi_a8host_release.bin,

    bootloader_boot_mcspi_a8host_release.out,

    bootloader_boot_mcspi_a8host_release.out.map

     和 bootloader_boot_mcspi_a8host_release_ti.bin  

    这份报告是新编纂的,似乎适合我的目的。 我认为我必须使用最后一个文件"bootloader_boot_mcspi_a8host_release_ti.bin";能否确认?

    此致 Trevor

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

    你好,纳雷什,

    由于上面提到的“重新编译”,我的项目将不再构建!! 最后我得到了以下信息:

    建筑目标:"Profibus 从属设备 AM335x_arm.out
    调用:GNU 链接器
    "C:/ti/gcc-arm-none - eabi-6-2017-Q1-update/bin/arm-none - eabi-gcc-6.3.1.exe"-mtun=cortex-A8 -mam -Dam3359 -DSOC_AM335x -O2 -g -startgstrure-dwarf -wl -mdic-a8 -3v/v/v_3v/v_/vbv/v/3v/v/v/v/v/v8.-/v8./v_v_/vbv_/v-/v-/v-/v_/v_/v_/v_/v_/vbv-/v-/v_/v_/v_/v//vbv_/v_/v/v/v/v/v/v/v/-3v_/v/v/v/v/v///v/v//////v////vbti/v//v///v/v/v/v/v/v/
    Makefile:167:目标'Profibus 从属_AM335x_arm.out 的配方失败
    c:/ti/gcc-arm-non-eabi-6-2017-Q1-update/bin/../lib/gcc/arm-non-eabi/6.3.1/../../arm-non-eabi/bin/ld.exe:找不到-ldal
    collect2.exe:错误:LD 返回1退出状态
    gmake [1]:***[Profibus 从属设备_AM335x_arm.out ]错误1
    gmake:***[所有]错误2.
    Makefile:163:目标“全部”的配方失败

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

    自重新编译以来,必须引入一些不兼容性:(“找不到-ldal”)。 但是,目录\dal 存在于: C:\ti\PDK_AM335x_1_0_10\packages \ti\starterverware\dal

    现在该怎么办?

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

    另一个可能与此相关的问题:

    SDK-RTOS-AM335x-EVM-04.03.00.05 是否只能与旧版 CCS 7.4.00015配合使用? 我安装了11.1.0.00011版...

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

    Trevor Brown,您好!

    PDK 的状态软件文件夹中似乎仍缺少一些库。
    您是否可以使用“gmake starterverware”编译整个 Starterware?

    谢谢,
    纳雷什·库马尔·阿

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

    你好,纳雷什,

    谢谢,这解决了我使用该应用程序编译时遇到的问题。

    但是,编译特定的 bootloader 仍然不起作用:

    C:\ti\PDK_AM335x_1_0_10\packages \ti\starterverware>gmake bootloader BUILDCFG=引导引导模式=mcspi platform=AM335x-EVM 配置文件=发行版-s KW_build=否
    #正在制作 AM335x-EVM:a8host:发行版:设备...
    #正在制作 AM335x-EVM:a8host:发行版:主板...
    #正在制作 AM335x-EVM:a8host:发行版:实用程序...
    #正在制作 AM335x-EVM:a8host:发行版:SOC...
    #正在制作 AM335x-EVM:a8host:发行版:DAD...
    gmade[1]:`没有规则来制作目标“`/arm-no-eabi/lib/hard”,C:/ti/pdp_AM335x_1_0_10/packages /ti/startware/binary/bootloader/bin/AM335x-EVM-EVM-EVM-ebc/bootloader_bootloader_boot_boot_a_host_release.out 需要。” 停下。
    gmake:***[bootloader]错误2.

    因此,我想我会尝试加载已存在的文件:  

    C:\ti\PDK_AM335x_1_0_10\packages \ti\startware\binary\bootloader\bin\AM335x-EVM-gcc\bootloader_boot_mcspi_a8host_release_ti.bin

    CCS 在控制台中显示:

    [科克西卡8]
    AM335x ISDK 闪光灯版本- ICEv2为2.0.1
    已选择 SPI ID - 0
    读取的制造商 ID 为0xef。
    读取设备 ID 为0x16。
    进入操作[1-闪存][2-擦除]:
    2.
    输入偏移量[十六进制]
    0
    输入要擦除的大小(以千兆字节为单位)
    64
    闪存擦除偏移=0,长度=65536
    擦除完成。 正在退出

    AM335x ISDK 闪光灯版本- ICEv2为2.0.1
    已选择 SPI ID - 0
    读取的制造商 ID 为0xef。
    读取设备 ID 为0x16。
    进入操作[1-闪存][2-擦除]:
    1.
    输入二进制类型[0-Bootloader,1-其它]
    0
    输入以字节为单位的偏移量(十六进制,例如:- bootloader :0x0 app:0x20000)
    0x0
    将.bin 文件加载到0x80100000并输入0以继续
    0
    闪存擦除偏移=0,长度=0
    正在写入...
    正在验证...
    刷新完成

    这里给出的长度为0,所以我不知道引导加载程序是否真的加载了!!  

    在使用 CCS 和 SPI-Flash 加载程序(isdk_SPI_FLASISER_OUT)加载(默认)引导加载程序和应用程序文件后,主板仍无法作为独立系统正确引导。 我是否不能从应用程序中定义 main()驻留在引导加载程序跳到的特定地址? (0x800020b8)

    此致 Trevor

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

    您好,

    尝试使该系统正常工作时仍有很大问题!

    我没有尝试使用已经准备好的 Bootloader,而是尝试使用以下命令从原始.bin 创建自己的_ti.bin 文件:tiimage.exe

    C:\ti\PDK_AM335x_1_0_10\packages \ti\starterware\tools\ti_image\tiimage.exe 0x402f0000 none bootloader_boot_mcspi_a8host_release.bin bootloader_TCB_ti.bin (因此不覆盖现有文件)。

    我从 https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/rtos/index_Foundational_Components.html#tools-and-binary-formats 获得的 tiimage 语法

    使用 isdk 闪光灯加载此引导加载程序时,我获得:

    [科克西卡8]
    AM335x ISDK 闪光灯版本- ICEv2为2.0.1
    已选择 SPI ID - 0
    读取的制造商 ID 为0xef。
    读取设备 ID 为0x16。
    进入操作[1-闪存][2-擦除]:
    1.
    输入二进制类型[0-Bootloader,1-其它]
    0
    输入以字节为单位的偏移量(十六进制,例如:- bootloader :0x0 app:0x20000)
    0x0
    将.bin 文件加载到0x80100000并输入0以继续
    0
    无效的文件大小:-1275068416,退出

    为什么我的大小无效?

    使用二进制类型1 (其他)我获得:

    AM335x ISDK 闪光灯版本- ICEv2为2.0.1
    已选择 SPI ID - 0
    读取的制造商 ID 为0xef。
    读取设备 ID 为0x16。
    进入操作[1-闪存][2-擦除]:
    1.
    输入二进制类型[0-Bootloader,1-其它]
    1.
    输入以字节为单位的偏移量(十六进制,例如:- bootloader :0x0 app:0x20000)
    0x0
    将.bin 文件加载到0x80100000并输入0以继续
    0
    闪存擦除偏移=0,长度=4096
    正在写入...
    正在验证...
    刷新完成

    当必须正确设置偏移量时,“二进制类型”定义了什么?  

    为什么长度应该有所不同?

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

    好的,我的问题已经演变成,原来的标题不再合适。 我会解决这个问题并重新开始。