作为一个初学者,我只使用基于计算机的应用程序进行编程,但是自从我开始编程以来,我就经常遇到一个问题,我无法正确回答。
机器不是自己行动,这是程序员的工作,他告诉机器人做什么和何时做,但是我的好奇心在于计算机。我将在本文中以ATM软件为例,但请记住,还有很多其他名称,例如洗衣机显示器,电视,手机等。
这些机器的软件究竟是如何构建的?我想这与基于计算机的编程不可能完全相同。他们使用哪种语言来使这些工作正常工作,以及如何完成工作?有专门从事这种编程的程序员吗?使这些机器变成现实的过程是什么?
作为一个初学者,我只使用基于计算机的应用程序进行编程,但是自从我开始编程以来,我就经常遇到一个问题,我无法正确回答。
机器不是自己行动,这是程序员的工作,他告诉机器人做什么和何时做,但是我的好奇心在于计算机。我将在本文中以ATM软件为例,但请记住,还有很多其他名称,例如洗衣机显示器,电视,手机等。
这些机器的软件究竟是如何构建的?我想这与基于计算机的编程不可能完全相同。他们使用哪种语言来使这些工作正常工作,以及如何完成工作?有专门从事这种编程的程序员吗?使这些机器变成现实的过程是什么?
Answers:
它被称为嵌入式系统或嵌入式软件开发。如果您想了解更多有关常规过程的知识,而又不偏向任何一种架构,我会推荐这本书。它甚至为您提供了一个实时操作系统。
嵌入式编程非常依赖于体系结构。您通常在严重的响应,程序大小,错误恢复和成本约束下工作。例如,您可能有一个z80(8位处理器,无处不在),也许还有几千字节的内存可以玩。您可能只有一个ROM来告诉系统该做什么以及如何设置该程序。它的大小也可能只有几千字节。为什么这么少的记忆?好吧,如果您生产1500万个小型吸盘,一分钱变成15万美元。
如果您想从中学到更多,我建议您像Arduino或Scribbler Robots这样的东西。就语言而言,尽管可以使用Java,但C,C ++和Assembly是典型的语言集(实际上,如果您可以忍受这一想法,它最初是为该领域设计的),我当然也知道可以使用其他语言。 Lisp和ML均已部署。
还要尽可能多地了解体系结构,因为就像我说的那样,内存分配和按位运算开始变得非常重要。
这里肯定有一个嵌入角度。但是,如今,您在传统上称为嵌入式设备的平台上看到了越来越多的高级平台。例如,LG和三星电视现在都具有API和应用程序商店。索尼电视将运行Android。
我已经看到在科罗拉多州丹佛市开设了两个自动取款机。两者都是(当时)指南针银行的ATM,在坚固的情况下都是Windows XP。我确实要问技术人员,具体说来,其中一位是什么人,他说了“ XP Embedded”之类的话。
因此,我敢打赌,如今ATM编程已不像嵌入式编程,而更像是标准Windows开发。