【问题标题】:Embedded System: which OS should I use?嵌入式系统:我应该使用哪个操作系统?
【发布时间】:2011-10-07 23:22:33
【问题描述】:

我正计划构建我的嵌入式系统来处理我的吉他声音,比如一个带有输入和输出等的 pod,并且一个在小液晶屏幕上运行带有预设、选项等程序的系统应该是多点触控的用于导航。

现在我处于起步阶段,不知道从哪里开始,应该使用什么系统。

它应该支持我上面写的功能(比如多点触控)并且应该是免费的。

嵌入式 Linux, 要么 安卓 还是什么?

【问题讨论】:

  • 你的硬件平台是什么?你需要先知道这一点。
  • 我想拥有这些功能,以便硬件平台成为下一步。

标签: android embedded-linux embedded


【解决方案1】:

您是在使用带有某种嵌入式系统接口的现成效果模块,还是计划在您的程序中制作效果?我在此回复中假设为后者,请澄清我是否误解了项目的性质:

进行系统工程...

您将需要处理输入和输出的模拟。甚至数字输入和输出在某些方面也是模拟的,以保持信号清晰。甚至光接口和处理器接口之间的光接口也将是模拟的。

(我知道这很长,继续阅读它将集中在您问题的答案上)

您将在接口中有某种硬件到软件数据,理想情况下,如果您选择支持不同的接口,您最好将数据规范化为通用形式和数据速率,以便效果处理只需处理一个大大地。 (避免在代码中使用一堆 if-then-elses,如果比特率是这样,否则如果比特率是这样,否则......如果比特率是这样并且数据是单极性的,否则如果比特率是这样并且数据是双极性的那么,否则……)。

效果处理的核心与您想要制作的一样复杂,一次一个效果还是多个?对于每个效果,定义您将允许调整的参数(我会从可能没有的最小数量开始,然后在一切正常后添加参数)。这些参数需要以某种方式全局化,以便用户界面可以获取并修改它们以进行效果处理。

输出,与输入相同,大量模拟工作,从规范化数据流转换为接口想要或需要或您定义的任何内容。

然后是用户界面……最简单的部分。

...

效果处理软件的核心可以是独立于系统的代码,在台式机/笔记本电脑上开发和测试可能比在目标系统上更舒服,记住代码应该由系统和操作系统编写独立且可嵌入(避免浮点、除法、大量局部变量等)。

有时,如果不是经常在一个封闭系统中,在同一个黑匣子上具有某种用户界面、旋钮或按钮、某种屏幕、触摸屏等。一个系统可以管理用户界面,另一个系统可以执行任务和之间有联系。并非总是如此,但它是一个很好的简洁设计,例如,昨天设计的带有按钮和旋钮的产品,比如两行液晶面板,只需付出一小部分努力,就可以现代化为触摸屏,明天某个时候就会出现可能是一些光纤直接插入你脑后的插座,谁知道呢。

分离处理任务的另一个原因是更容易确保效果处理器永远不会被用户界面的东西所困扰。你不想在你的触摸屏上转动一个虚拟旋钮,而图形加载来绘制图片会导致你的音频出现乱码或变成令人讨厌的呜呜声。基本上效果处理器是实时关键的。您不想在吉他上拨弦,三秒钟后声音从放大器中出来,因为处理器还在您的触摸屏面板上绘制动画背景。该处理需要紧凑、快速和确定性,代码中的每个 if-then-else 都必须考虑和平衡。如果您允许并行处理多个效果,您的处理器需要能够处理所有效果而没有明显延迟的带宽,否则如果一次只有一种效果,则需要选择处理器来处理一种效果最糟糕的计算工作。可能发生的最糟糕的情况是,由于 gui 处理正在执行某些操作,输入到输出延迟会发生变化,从而导致音乐听起来很糟糕。

因此,您可以使用效果处理器及其用户界面,例如,串行接口和跨该接口(您定义)的协议,用于选择效果和更改参数。您可以使用通过串行接口连接的台式机和/或笔记本电脑启动效果处理器并进行工作和测试,并使用一些临时代码来更改参数,也许是命令行程序。

现在是有趣的地方。您可以获得现成的嵌入式 linux 系统,例如嵌入式 android 或其他任何东西,编写使用串行协议的应用程序,如果需要,将胶水、螺栓、胶带、模具等这个用户界面系统放在上面,旁边效果处理器模块。请注意,您可以拥有所有建议的平台,一个 android 版本、一个 linux(没有 android)版本、一个 mac 版本、一个 windows 版本、一个 dos 版本、一个 qnx 版本、一个 amiga 版本,你可以命名它。您可以在同一个操作系统上尝试 100 种不同的用户界面变体,也许我希望旋钮是滑块,或者上/下按钮,或者我使用两指触摸来旋转的表盘,或者其他一些多点触控手势。

而且它会变得更好,除了串行之外,您还可以使用蓝牙模块。您的用户界面可以是 iPhone 应用程序、Android 手机应用程序、笔记本电脑 linux 或 Windows 应用程序。或您的台式计算机等。所有这些都是(相对)简单的平台,用于编写用于选择事物的图形用户界面。

当然,另一种方法可能是以太网,特别是无线以太网,那么您的用户界面可以是一个网页,并且您的大部分用户界面工作已经由 firefox 或 chrome 或其他团队完成。 (无线以太网或蓝牙或 zigbee 或其他允许效果处理器放在方便的地方,而不必在你的手臂/脚范围内)。

...

进行系统工程。将问题分解为几个大模块,定义模块之间的接口,然后在必要时担心这些模块内部的系统工程,直到你得到易于消化的部分。系统工程越好,模块之间的接口定义得越好,项目就越容易实现。

...

我还会研究 xmos 的 xcore 处理器,他们有一个非常好的模拟器,带有 vcd 波形输出,您还可以使用它来准确地分析您的效果处理。就我个人而言,如果不为这个项目选择这个平台,我会很难过。

您还应该研究来自 ti 的 omap,这是 beagleboard 上的内容。你会得到一个不错的手臂,它已经移植了 linux 和其他东西并在上面运行,但你也得到了一个 dsp 块,该 dsp 块可以进行你的效果处理,并且可能以两者不干扰的方式进行。您失去了在物理上分离用户界面处理器和效果处理器的能力,但在其他方面有所收获,并且可能使用现成的 beagleboard 来开发原型(使用模拟音频输入和输出)。实际上,我更喜欢 hawkboard(使用 hawkboard,您可以获得一个开箱即用的可用系统,使用 beagleboard,您会花费另一个价值 beagleboards 的钱购买本应在板上的东西),但最后我看到他们有一个不稳定的缺陷与pcb设计。

我不了解规格,但 tegra(许多即将推出的手机已经或将基于 tegra),如 omap,应该提供一些并行处理,并倾向于音频/视频以及 gui。您只需要音频和 gui(三者中较容易的两个)。我认为有一个开发平台出售,上面有触摸屏和流行的嵌入式操作系统。

如果您想省钱,请自己购买其中一件。现在停下来,去商店买一个。即使所有的设计都是免费的,自制软件的成本也会更高。硬件和熔化的吉他和吉他放大器不是。我从经验中讲,很多时候我在自制项目上花费了数千美元,以避免购买一些现成的 300 美元的商品。我学到了很多东西,而且就个人而言,构建这个东西比使用它更有趣,我通常会在它最终工作后搁置它。 YMMV

如果我误解了您的问题,请告诉我,我将编辑/删除/替换所有问题并使用不同的(简短)答案。

【讨论】:

  • 好吧,感谢您的出色回答。但现在我必须选择一个平台。如果它具有所有想要的功能以及蓝牙和无线局域网和触摸屏等,那就太好了,所以你可以用笔记本电脑或智能手机控制它,它必须功能强大且灵活但不太昂贵且易于开发。看到一些具有非常快的英特尔 i3、i5 和 i7 处理器的嵌入式系统,但我不知道,什么更好。带有最新处理器的 mini itx 上的完整嵌入式系统,也可以是完整的 pc,或者像你说的那样的板(beagleboard,xmos ...
  • 你知道在哪里看到了tegra的开发平台吗?
  • 这里有一些developer.nvidia.com/tegra-development-kits,但这些不是我记得看到的,我的头上有一张板子的图片,右侧被一个带有 Windows 徽标的液晶面板覆盖有点,以为是tegra会继续寻找。
  • 听起来你需要做的是从声卡和桌面系统开始,让你的东西启动并运行(linux、andriod 等)。然后弄清楚你正在使用/需要多少处理能力并购买一台迷你电脑,也许是基于原子的东西或类似的东西(啊,你需要/想要一个多点触控显示器,不是你,嗯)。 earthlcd有ezlcd面板,我用的是早期的,单点触控,有点小。如果您单独购买组件,您可能会在那里找到一些东西。 sparkfun 总是适合做类似的事情。
  • 很好,会看看这个=)
【解决方案2】:

事实上,这取决于您想要运行什么样的硬件和接口(因此,您将在驱动程序级别工作多少......或不)。 android 的问题与裸 linux 的问题相同。如果没有框架级库 (Java) 可能会更糟,因为您必须管理 C 部分(使用 JNI)和 Java 部分。

按照规格工作...然后您将明智地选择...

提醒:android 是基于 linux 的。

【讨论】:

  • 嗯,应该尽可能简单,但也要尽可能强大。你知道吉他的吊舱吗?我想创建自己的,我也可以链接它们,配置预设,还有一个输入和输出用于录制等等。
  • 如果我理解,您想实现数字效果(混响、移相器、发行版)并链接它们?
  • 这样,用 qt (c++) 编写我自己的效果器并在硬件上运行它们
  • Qt 是一个很棒的框架,但我上次尝试使用 Qt Embedded 时,它并不简单(Windows mobile 在坚固的移动手持设备上)。如果你最终选择了android,你可能会发现sourceforge.net/p/necessitas/home/necessitas很有用;)
  • 我的两分钱:你的功能规格肯定会让你得出结论你不需要加速度计或 GPS……因此很难找到开箱即用的适配 android 设备⇒ 那么在任何你能找到的架构上选择一个裸 linux。 1. 规格。 2. 硬件,3. 软件(硬件支持、android、Qt 等)。
【解决方案3】:

安卓系统:

  • 对于任何其他嵌入式操作系统,您将需要处理太多的集成工作。
  • 您可以从购买现成的硬件(Galaxy Tab、HTC 手机等)开始您的开发并快速获得原型

【讨论】:

  • 你知道一些经销商可以为我自己的安卓设备找到合适的硬件平台吗?也许我可以在哪里选择我需要的组件并从该硬件上的 android 开始?
猜你喜欢
  • 1970-01-01
  • 2012-03-09
  • 2016-10-20
  • 2012-07-12
  • 2010-09-11
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多