如何为ATM或电视等机器构建软件?


14

作为一个初学者,我只使用基于计算机的应用程序进行编程,但是自从我开始编程以来,我就经常遇到一个问题,我无法正确回答。

机器不是自己行动,这是程序员的工作,他告诉机器人做什么和何时做,但是我的好奇心在于计算机。我将在本文中以ATM软件为例,但请记住,还有很多其他名称,例如洗衣机显示器,电视,手机等。

这些机器的软件究竟是如何构建的?我想这与基于计算机的编程不可能完全相同。他们使用哪种语言来使这些工作正常工作,以及如何完成工作?有专门从事这种编程的程序员吗?使这些机器变成现实的过程是什么?



谢谢你的链接。在找到您的链接之前,我对此一无所知。还有为什么这被否决了?它出什么问题了?
Bugster 2012年

3
@ThePlan People倾向于否决不是“我如何解决此特定问题?”类型的问题。
CFL_Jeff 2012年

3
尽管人们可以downvote有以下几个原因,并没有要求解释自己,对downvote箭头提示上写着:“这个问题不显示任何研究工作,目前还不清楚是否有用” -我觉得第一句话是非常接近对于您收到的反对意见的充分解释,在询问程序员之前至少进行一些次要研究
扬尼斯,2012年

9
我说他有点懈怠。当您不了解嵌入式编程时,就很难研究它。
Karl Bielefeldt 2012年

Answers:


15

它被称为嵌入式系统或嵌入式软件开发。如果您想了解更多有关常规过程的知识,而又不偏向任何一种架构,我会推荐这本书。它甚至为您提供了一个实时操作系统。

嵌入式编程非常依赖于体系结构。您通常在严重的响应,程序大小,错误恢复和成本约束下工作。例如,您可能有一个z80(8位处理器,无处不在),也许还有几千字节的内存可以玩。您可能只有一个ROM来告诉系统该做什么以及如何设置该程序。它的大小也可能只有几千字节。为什么这么少的记忆?好吧,如果您生产1500万个小型吸盘,一分钱变成15万美元。

如果您想从中学到更多,我建议您像Arduino或Scribbler Robots这样的东西。就语言而言,尽管可以使用Java,但C,C ++和Assembly是典型的语言集(实际上,如果您可以忍受这一想法,它最初是为该领域设计的),我当然也知道可以使用其他语言。 Lisp和ML均已部署。

还要尽可能多地了解体系结构,因为就像我说的那样,内存分配和按位运算开始变得非常重要。


谢谢,这个答案是我选择的一个可接受的答案,因为它概括地解释了嵌入式系统,还给了我一本书的选择。
Bugster 2012年

4
@ThePlan-关于嵌入式的好处是您可以对其进行测试。如果您只有3个输入和3个输出,则很容易确认是否有效。如果他们在希伯来语Windows XP上使用带有乌兹别克斯坦版本的Flash的土耳其语键盘上运行代码,则不必测试会发生什么情况。
马丁·贝克特

@MartinBeckett:您已经稍微简化了嵌入式系统开发的难度。最后一个具有纳秒级的实时响应要求。这是无法测试的-知道它是正确的唯一方法是通过设计和审查来证明代码是正确的。与当今为用户应用程序编写代码的牛仔不同,这些缺陷通过在线更新得到修复。
mattnz'3

另外,可能需要这些系统在没有人或其他访问的情况下运行数年甚至数十年。
世界工程师

@mattnz-这并不总是那么容易,但至少是可行的。在牛仔桌面代码中,您无法完全测试一个OS之上的操作系统,无法使用一个工具包编写一个工具包,无法对可能与之交互的数千个其他应用程序以及用户的随机操作进行全面测试-这几乎是没有希望的。
马丁·贝克特

5

这里肯定有一个嵌入角度。但是,如今,您在传统上称为嵌入式设备的平台上看到了越来越多的高级平台。例如,LG和三星电视现在都具有API和应用程序商店。索尼电视将运行Android。


3
...有些自动柜员机运行Windows。当它们蓝屏时,这些图片通常会显示在thedailywtf.com上。在我的城市,当地的公共交通工具每月出售售货亭的通行证。我曾经看到一个卡住了启动程序-它正在运行Windows 2000(大约6个月前)!
FrustratedWithFormsDesigner 2012年

@FrustratedWithFormsDesigner-谢谢,不要在这里做ATM,所以我不知道它们在做什么。。。
Wyatt Barnett 2012年

ATM =自动柜员机。又名银行机。AKA可以让您从帐户中取款而不必去出纳员的机器。
FrustratedWithFormsDesigner 2012年

我知道,除了客户之外,不要与他们合作。。。
Wyatt Barnett 2012年

4

我已经看到在科罗拉多州丹佛市开设了两个自动取款机。两者都是(当时)指南针银行的ATM,在坚固的情况下都是Windows XP。我确实要问技术人员,具体说来,其中一位是什么人,他说了“ XP Embedded”之类的话。

因此,我敢打赌,如今ATM编程已不像嵌入式编程,而更像是标准Windows开发。


不只是“这些日子”。用于运行Windows NT 3或OS / 2的ATM。您看到的UI最有可能是Internet Explorer显示的HTML页面。编程语言可以是任何东西-我已经在Java系统上工作,该系统取代了用VB编写的语言。ATM实际上只是带有一些异常外围设备和驱动程序的普通PC。
Michael Borgwardt 2012年

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.