android – 嵌入式系统:我应该使用哪个操作系统?
作者:互联网
我计划构建我的嵌入式系统来处理我的吉他声音,如一个pod,带有输入和输出等等,一个带有预设的程序运行的系统,小型液晶屏幕中的选项等应该是用于导航的多点触控.
现在我刚开始,不知道从哪里开始,我应该使用什么系统.
它应该支持我上面写的功能(如多点触控)并且应该是免费的.
解决方法:
您是否使用现成的效果模块与嵌入式系统的某种接口,或者您是否计划在程序中执行效果?我在这个回复中假设后者,请澄清我是否误解了项目的性质:
你的系统工程……
您将需要处理输入和输出的模拟.甚至数字输入和输出在某些方面都是模拟的,以保持信号清洁.甚至光学也将在光学接口和处理器接口之间进行模拟.
(我知道这很长,继续阅读会收敛你问题的答案)
您将在界面中拥有某种硬件到软件数据,理想情况下,如果您选择支持不同的接口,理想情况下您需要将数据规范化为通用形式和数据速率,以便效果处理只需要以一种方式处理它. (在代码中避免一堆if-then-elses,如果比特率是那么,否则如果比特率是那么,否则……如果比特率是这个,数据是单极的话,否则如果比特率是这样,数据是双极的那么,否则……).
效果处理的内容和你想要的一样复杂,一次一个效果或多个效果?对于每个效果,定义您要允许调整的参数(我将从最小数字开始,可能是无,然后在一切正常后再添加参数).这些参数需要在某些方面或方式中是全局的,以便用户界面可以获取它们并修改它们以进行效果处理.
输出,与输入相同,大量模拟工作,从规范化数据流转换为接口想要或需要的任何东西,或者您定义它.
然后有用户界面……简单的部分.
…
用于效果处理的软件的内容可以是与系统无关的代码,并且在桌面/笔记本电脑上比在目标系统上开发和测试更加舒适,同时要记住代码应该是系统和操作系统独立编写的.因为写入可嵌入(避免浮点,除法,许多局部变量等).
有时,如果不经常在一个封闭的系统中,在同一个黑盒子上有某种用户界面,旋钮或按钮,某种屏幕,触摸屏等.一个系统可以管理用户界面,另一个执行任务,有一个之间的联系.并不总是,但它是一个很好的清洁设计,并允许,例如昨天设计的产品,按钮和旋钮,并说一个双线液晶面板,现代化的触摸屏,只需一小部分的努力,明天的某个时候那里可能是一些光纤直接插入你脑后的插座,谁知道呢.
分离处理任务的另一个原因是,更容易确保效果处理器永远不会被用户界面的东西陷入困境.你不想在你的触摸屏上转动一个虚拟旋钮,并且图形加载以绘制图片会导致你的音频变得乱码或变成讨厌的呜呜声.基本上效果处理器是实时关键的.你不想在吉他上拾取琴弦,并在三秒钟之后将声音从放大器中取出,因为处理器也在你的触摸屏面板上绘制了一个动画背景.这种处理需要紧密,快速和确定性,代码中的每个if-then-else都必须被考虑和平衡.如果您允许多个并行效果,您的处理器需要能够有带宽来处理所有效果而不会有明显的延迟,否则如果一次只有一个效果,那么需要选择处理器来处理一个效果最糟糕的计算工作.可能发生的最坏情况是输入到输出延迟因gui处理正在做的事情而变化,导致音乐听起来很糟糕.
因此,您可以使用其用户界面来处理效果处理器,例如,串行接口和该接口(您定义的)上的协议,用于选择效果和更改参数.您可以使用通过串行接口连接的桌面和/或笔记本电脑启动效果处理器并进行工作和测试,其中一些特殊代码用于更改参数,可能是命令行程序.
现在是它变得有趣的地方.你可以得到一个现成的嵌入式linux系统或嵌入式android或者其他什么,编写你的使用串行协议的app,如果需要胶水,螺栓,磁带,模具等这个用户界面系统在上面,旁边效果处理器模块.请注意,您可以拥有所有建议的平台,一个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你花了另一个berapeboard值钱的东西本应该在板上),但最后我看到他们有一个不稳定的缺陷与pcb设计.
我不喜欢这些规格,但tegra(一些即将推出的手机已经或将要以tegra为基础),就像omap一样,应该提供一些平行处理,以及对音频/视频和gui的精益.你只需要音频和gui(三个中更容易的两个).我认为有一个销售的开发平台,它有一个触摸屏和流行的嵌入式操作系统.
如果你想省钱,你可以自己制作这些东西.现在停下来去商店买一个.即使所有的设计都是免费的,自制软件也会花费更多.硬件和熔化的吉他和吉他放大器不是.我从经验中说,很多时候我在自制项目上花费了数千美元,以避免购买一些现成的300美元的物品.我学到了很多东西,而且个人建造这件东西比使用它更有趣,我通常在它最终工作后搁置它.因人而异
如果我误解了您的问题,请告诉我,我将使用不同的(简短)答案编辑/删除/替换所有问题.
标签:android,embedded,embedded-linux 来源: https://codeday.me/bug/20190903/1795806.html