在软件中,“嵌入式”一词意味着什么?


9

因此,我一直在寻求将我的知识扩展到嵌入式和较低级别的硬件编程中,但是,每次寻找“嵌入式”工作时,它总是高级的东西。对我而言,这没有任何意义。

那么“嵌入式”到底需要什么呢?当我想到嵌入式系统时,我想到的是较低级别的微控制器编程等。如果嵌入式不是此的适当标题,那么我应该搜索什么?

Answers:


4

定义高级内容的含义。提到嵌入式软件时,大多数人可能会想到编写驱动程序和与硬件进行通信的任何其他类型的软件。虽然这只是其中的一部分,但这只是一小部分。完成所有设置后,仍然有整个应用程序要编写,可能永远不会直接与硬件对话,在大多数情况下,这是大部分开发工作。在某种程度上,这可以与“更高”级别的编程相媲美。但是,在嵌入式世界中,您可能正在某些约束下工作,尤其是在计算能力和内存方面。这是我每天考虑的事情清单,在大多数情况下,这些事情在更高层次的开发中可能没有那么重要。

  • 线程并发(保护和计时)
  • 内存分配,释放和使用
  • 堆管理(避免碎片)
  • 满足实时期限
  • 线程优先级
  • I / 0性能
  • DMA传输
  • 堆叠尺寸
  • 图书馆表现
  • 语言功能(异常使代码code肿)

而且,与被设计为用于通用异构计算的平台的PC相比,嵌入式平台倾向于高度专业化以实现一个特定目标。这意味着您可能有很多可能可移植或不可移植的自定义代码。


7

维基百科/嵌入式系统

嵌入式系统是一种计算机系统,通常被设计为执行具有实时计算约束的一个或几个专用功能。

简而言之,该术语可以适用于不是通用PC的任何类型的系统。范围从简单的微控制器到网络硬件再到现代游戏机。

如果您认为“高级内容”是指“使用高级编程语言”,甚至“是一个大型的面向对象的项目”,那么当然总有可能在嵌入式系统上拥有非常高级的软件。 。

通常,通过指定您的软件将在“嵌入式​​”系统上进行,您的意思是您的软件将以某种方式与嵌入式系统耦合-可能不是高度可移植的。

确实,这是一个非常宽泛的术语。我不希望听到的称为“嵌入式”的东西通常是PC软件,Web应用程序和服务器软件。当然,不能保证嵌入式软件会排除任何类型的高级编程或设计。


另外,我可能会指出,指定您的软件是嵌入式的目的是为了表明您将拥有更少的库和可用于构建解决方案的现有解决方案。
ProdigySim 2011年

+1。嵌入式系统的常见示例是POS或ATM计算机中的计算机。即使它们运行Windows或Linux之类的现成OS。
nikie 2011年

1

我怀疑您正在寻找的工作中,“嵌入式”是指“一体式计算机”,通常可以完成一项特定任务。很有可能在大多数Linux发行版或Microsoft OS上运行,但是它将相当完整,您将能够使用标准的GUI IDE等。当设备作为多通道录像机,媒体流设备或防盗警报器出厂时,真正的嵌入式部分就来了。

如今,您可以在1W的设备中进行很多处理,因此嵌入式的定义也相应增加。但是即使在20年前,我们也有使用电池供电的嵌入式设备运行相当标准的DOS,并使用当时的IDE为它们构建程序(例如,符号条形码扫描仪具有C和Pascal的库,因此我们在Win3.1上使用Turbo Pascal来构建可执行文件)。但是,我们还交付了“工业PC”,该PC会先启动DOS,然后再启动我们的软件,输入内容仅限于安装在不锈钢盒上的几个防水按钮。该盒子中玻璃后面的15英寸LCD意味着我们有很多输出选项,但是连接键盘意味着打开盒子(在食品工厂内部)。从某些角度来看,这些可能被认为是嵌入式的。大多数情况下,用户没有多少错误恢复选项-是否关闭并重新打开电源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.