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:在 BeagleBone Black 上引导

Guru**** 2696775 points

Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578676/rtos-booting-on-beaglebone-black

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

工具/软件:TI-RTOS

大家好、

目前、我正在评估我们是否可以在某些应用中使用 AM3358来替代 Cortex M3微控制器。

作为评估板、我购买了 BeagleBordBlack 并安装了 Code Composer Studio 和 TI-RTOS SDK。 现在、我确实很难将测试代码放入控制器中(我更喜欢硬件)。

首先、我想说明一下、如果能够将代码直接连接到电路板(但没有外部调试器-我在这里没有调试器)、这不能正常工作?

然后 我尝试将代码加载到 SD 卡中、但我不太理解如何执行该操作。 在我构建代码后、我会得到一个.out-file、该文件必须以某种方式进行转换、以便我可以将其加载到 CD 卡上。但我没有找到任何有关如何执行该操作的最新信息。 可以帮帮我吗?

提前感谢、

Christian

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

    我将尝试为您提供在 Beagle Bone Black 上加载和运行代码的指导。

    要运行 SD 卡的代码、您需要使用此处描述的过程创建_ti.bin 文件:
    processors.wiki.ti.com/.../AM437x

    然后、您可以使用此处所述的步骤创建 SD 卡:
    processors.wiki.ti.com/.../AM437x

    如果您计划使用调试器、这基本上是开发和调试 TI RTOS 代码的理想方式、请参阅此处的文章:
    elinux.org/Beagleboard:BeagleBone

    希望这对您有所帮助。

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

    您好 Rahul、

    感谢您的回复!

    我已经看到该页面、但我的问题是我不知道如何处理这些行

    "toolchain_path_ /bin/arm-none-eabi-objcopy -O 二进制文件 .out .bin"

    " tiimage.exe 无 二进制文件 _ti.bin"

    我想它们必须粘贴到 Code Composer Studio 中的某些位置(或者是否存在差异?)

    此致、

    Christian

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

    您可以从命令行运行该文件、也可以将其添加到 CCS 工程中的编译后处理步骤中。

    要从命令行运行此操作、请在 CCS 安装中的 ccsv6\tools\compiler.gcc-arm-none-eabi-4_9-2015q3\bin 下找到 ARM 编译器并运行命令

    arm-none-eabi-objcopy -O 二进制文件 .out .bin"

    然后、转到器件启动包中 SDK 的 tiimage.exe 安装位置、并通过命令行调用实用程序来创建_ti.bin 文件。

    要从 CCS 中执行此操作、请右键点击工程文件并转至 Properties。 在"CCS Build" Settings 下,转到 GNU obj utilty 并选择 Enable GNU objcopy utility。 在 generaal 选项中、将 out 从.hex 更改为.bin

    若要运行 tiimage.exe、请转至"CCS build"并单击"Steps"选项卡、然后添加带有实用程序完整位置的 tiimage 命令。

    希望这对您有所帮助。

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

    我添加了这些行

    C:\ti\AM335X_StarterWare_02_00_01\tools\ti_image\tiimage.exe 0x80000000无${BuildDirectory}/${BuildArtifactFileBaseName}.bin ${BuildDirectory}/app
    C:\ti\AM335X_StarterWare_02_00_01_01\tools\ti_image\tiimage.exe 0x402F0400 MMCSD C:\ti\pdk_am335x_1_0_5\packages/ti\starterware\binary\bootloader\bin\AM335x-evm\gcc\bootloader_boot_mmcsd_a8host_release.bin ${BuildDirectory}

    执行开机自检操作步骤、现在我获得一个应用程序和一个 MLO 文件。

    我已经使用两个示例项目(一个"典型"-RTOS 项目、该项目应通过 printf 打印一些字符串、另一个类似于此 LED-BLINK 示例[https://e2e.ti.com/support/embedded/tirtos/f/355/t/443187])来尝试这些文件、但我在终端上收到了以下消息

    \r\n>StarterWare 启动加载程序
    \r\n>BOARDInit 状态[0x0]<n>
    <\r\n\r\n SoC :[AM335X]</r></n>
    </r>内核 :[A8]</r></n>
    <(r)检测到电路板 :[BEAGLEBONEBLACK]</r></n>
    \r\n\r\n 基本主板版本:[未知]</r></n>
    </r>子卡版本:[未知]</r></n>
    </r></n>
    <\r\n\r\n 管脚复用失败!<n>
    <\r\n\r\n 将应用程序映像从 MMC/SD 卡复制到 RAM</r></n>
    <\r\n\r\n 跳转至 StarterWare 应用程序...</r></n>
    </r></n>

    如果我使用 ti\processor_sdk_rtos_am335x_3_02_00_05\prebuild-sdcards\evmAM335x\sd_card_files 中提供的 MLO 文件、则没有"引脚复用失败!" 但程序似乎仍然停留在"跳转到 StarterWare 应用程序..."

    是否有某种方法可以确定应用程序是否已声明?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    查看应用程序是否已启动的一个好方法是使用和仿真器连接到 ARM 内核并检查程序计数器的值。 如果这与应用二进制文件中的某个区域匹配、则应用程序会正确引导。

    其他选项是将 UART_printf 添加到您的应用中、以便您在串行控制台上获得反馈。 其他选项是添加 LED 闪烁代码、以便提供可视反馈。

    从日志中可以看到引导映像和板已正确检测到、但对于某些问题、pinmux 出现故障。 MLO 似乎还检测到应用程序并复制了它、因此从日志中看起来就像 MLO 已正确执行。 您只需在应用程序中添加类似的打印消息即可获得引导应用程序的反馈。

    希望这对您有所帮助。

    此致、
    Rahul