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.

[参考译文] Linux/PROCESSOR-SDK-AM335X:将现有 Linux 应用移植到 AM335x 入门套件板

Guru**** 2563960 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/596195/linux-processor-sdk-am335x-porting-an-existing-linux-application-to-the-am335x-starter-kit-board

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我是嵌入式 Linux 的新手。

我之前有一个 AM335x 入门套件板、并在 StarterWare 的帮助下对其进行了裸机编程、因此这种方法是我迄今为止在嵌入式开发方面的唯一经验。

现在、我在 JUce C++框架的帮助下开发了一个交叉点状音频应用程序、该框架通过 JUce Projucer 软件生成的 Makefile 在 Linux 计算机上成功编译。 根据此论坛文章: https://forum.juce.com/t/announcement-juce-support-for-embedded-linux/18625、Joce 与嵌入式 Linux 兼容

但我对嵌入式 Linux 没有任何经验。 从我的角度来看、以下步骤是直观的:

-创建一个完全新鲜的 Linux 映像,该映像可从 SD 卡引导(但我不知道具体如何执行此操作,以及哪个 Linux 发行版是最佳选择)

-将电路板连接到网络,通过 ssh 登录,并通过 scp 将我的项目文件复制到电路板

-在目标上运行 makefile

-启动应用程序以检查是否所有程序都按我预期的方式运行

-编写一个脚本,在启动时运行应用程序

-删除所有项目和源文件

但这似乎不是通常的工作流程。 一方面,上面的 juce-forum 文章在开放或 Yocto 的帮助下讨论了交叉编译,这似乎是更常见的方式。 可能是因为在主机上构建可执行文件比在目标上构建要快得多? 另一方面、TI 提供了 Linux 处理器 SDK、如果我正确的话、它还提供了一个交叉编译工具链、用于开发基于某些 TI 框架的应用? 在我看来、这似乎不是我想要的、因为该应用程序已经基于 Jucce 进行开发、我唯一想要的就是创建新的 Linux 映像并为目标架构构建我的应用程序。

那么、我计划做什么是正确的方式、需要哪些工具? 是否有适合我的用例和经验水平的分步说明?

谢谢、

Janos

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

    JUce 应用程序需要 X11显示服务器、并且由于它使用 Wayland、因此不会在入门套件板上运行。

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

    感谢您的快速回复!

    现在,如果我正确的话,X11的结尾就是一个 Linux 软件,没有特定的硬件。 那么、您的意思是、那里没有兼容的 X11版本、适合 TI 推荐用于该电路板的 Linux 发行版吗? 那么,不可能只安装 X11,或者选择与 X11一起提供的另一个 Linux 发行版? 或者我是在这里搞砸了吗?

    还有一个基本问题:Linux GUI 应用程序是否始终绑定到特定的显示服务器、或者是否可以对其进行编程以与任何可用的显示服务器配合使用? 从现在起、我只使用 JUce 等框架来完成 GUI 部分、而不关心内幕揭秘。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不、它有自己的特定于硬件的部件。 Wayland 是 X11的后继产品,因为最新的 Processor SDK 版本不再支持 X11。 有针对 BBB 的社区 X11发行版、但这些图像不能在 SK 上运行。 TI SDK 中的大多数 GUI 应用都基于 Qt、您可以选择使用 Weston 窗口化系统或 EGLFS、但我不确定 JUce 是否具有此功能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我明白了。 因此、我认为我必须使用新工具重新构建 GUI 部件。

    但是、在我到达那里之前、我必须了解有关桌面 Linux 开发和嵌入式 Linux 开发之间的区别的更多信息、例如:

    -在台式计算机上安装所选的 Linux 发行版,而不是通过某种方法创建可引导的 Linux SD 卡
    -在具有互联网访问权限的台式 Linux 计算机上使用数据包管理器,而不是以某种方式将所有需要的依赖项安装到我的嵌入式系统中,而不能访问互联网
    -通过(手动编写或自动生成的)桌面 Linux 计算机上的 makefile 来编译软件,而不是使用交叉编译工具链来编译软件

    我开始在互联网上搜索一些类似的指南、但我发现的嵌入式开发的大部分内容都是分步说明、主要针对特殊的开发工具、通常是为没有任何 Linux 经验的人编写的。 我总是喜欢学习一些一般性想法、并在了解一个特殊工具/工具集如何完成工作之前、了解所有常用工具的概述。 那么、是否有任何 TI 文档、从一般性说明开始、并在第二步中解释 Linux SDK、而不是立即开始逐步解释 SDK?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实验中、您可以看到 Qt GUI 是如何使用 Qt 构建的。

    台式机 Linux 和嵌入式 Linux 之间的软件与硬件不同。 演示是了解嵌入式 Linux 系统开发的良好起点。

    您可以按照 此 wiki 页面上的步骤创建 SD 卡。

    您可以 在 Processor SDK Linux 入门指南中的此处找到 U-Boot 和内核重建步骤。

    此处介绍了用于重建整个处理器 SDK 和 rootfs 的 OE 构建步骤。

    您可以在 此处找到 TI 文档、从培训模块的一般性说明开始