ATM 또는 TV와 같은 기계 용 소프트웨어는 어떻게 구축됩니까?


14

초보자 프로그래머로서 나는 컴퓨터 기반 응용 프로그램 프로그래밍으로 만 일했지만 프로그래밍을 시작한 이후로 자주 질문을 받았는데 제대로 대답을 얻을 수 없습니다.

기계는 스스로 행동하지 않습니다. 프로그래머의 일입니다. 그는 무엇을해야하고 언제해야하는지 말해 주지만 제 호기심은 컴퓨터 아래에 있습니다. 이 게시물에서 ATM 소프트웨어의 예를 들겠습니다. 그러나 세탁기 디스플레이 나 TV, 휴대폰과 같은 다른 많은 것들이 있습니다.

이런 종류의 기계를위한 소프트웨어는 정확히 어떻게 만들어 집니까? 컴퓨터 기반 프로그래밍과 동일 할 수는 없다고 생각합니다. 그들은 그러한 일을하기 위해 어떤 언어를 사용하며 어떻게 일을 수행합니까? 이런 종류의 프로그래밍을 전문으로하는 프로그래머가 있습니까? 이 기계를 활성화시키는 과정은 무엇입니까?



링크 주셔서 감사합니다. 나는 당신의 링크를 찾을 때까지 이것에 대한 단서가 없었습니다. 또한 왜 이것이 하향 조정 되었습니까? 무슨 일이야?
Bugster

3
@ThePlan 사람들은 "이 특정 문제를 어떻게 해결합니까?"
CFL_Jeff 2016 년

3
사람들이 여러 가지 이유로 공감할 수 있지만 스스로 설명 할 필요 는 없지만 , 공감 화살표의 툴팁은 "이 질문은 어떤 연구 노력도 보여주지 않으며, 명확하지 않거나 유용하지 않습니다"라고 읽습니다.-첫 번째 문장은 매우 가까운 것으로 생각합니다 받은 공감에 대한 충분한 설명이 필요하면 프로그래머에게 문의하기 전에 최소한의 사소한 조사를 수행하십시오 .
yannis

9
나는 그를 약간 느슨하게 잘라 말한다. 용어를 모르면 임베디드 프로그래밍을 연구하기가 어렵습니다.
Karl Bielefeldt

답변:


15

임베디드 시스템 또는 임베디드 소프트웨어 개발이라고합니다. 하나의 아키텍처로 너무 많이 가지 않고 일반적인 프로세스에 대해 더 많이 알고 싶다면 이 책을 추천 합니다 . 심지어 실시간 운영 체제를 제공합니다.

임베디드 프로그래밍은 아키텍처에 따라 매우 다릅니다. 일반적으로 심각한 응답, 프로그램 크기, 오류 복구 및 비용 제약 조건 하에서 작업하고 있습니다. 예를 들어 z80 (8 비트 프로세서, 어디에나 있음)과 2 킬로바이트의 메모리를 가지고있을 수 있습니다. 시스템에 수행 할 작업과 프로그램 설정 방법을 알려주는 ROM 만있을 수 있습니다. 크기는 몇 킬로바이트에 불과합니다. 왜 그렇게 적은 메모리? 만약 당신이 작은 빨판의 1 천 5 백만을 제조한다면; 모든 페니는 $ 150,000가됩니다.

나는 당신이 더 많은 것을 배우고 싶다면 Arduino 또는 Scribbler Robots와 같은 것을 다루는 것이 좋습니다. 언어가 진행되는 한, Java를 사용할 수는 있지만 C, C ++ 및 Assembly가 일반적인 세트입니다. 리스프와 ML이 모두 배포되고 있습니다.

내가 말했듯이 메모리 할당과 비트 단위 연산이 실제로 중요해지기 때문에 아키텍처에 대해 가능한 많은 것을 배우십시오.


감사합니다.이 답변은 임베디드 시스템을 간단히 설명하고 나에게 책 옵션을 제공하기 때문에 허용되는 답변을 선택합니다.
Bugster

4
@ThePlan-임베디드에 대한 좋은 점은 테스트 할 수 있다는 것입니다. 입력이 3 개이고 출력이 3 개인 경우 작동하는 것을 쉽게 확인할 수 있습니다. Uzbekistan Flash 버전의 터키어 키보드에서 히브리어 Windows XP에서 코드를 실행하면 어떤 일이 발생하는지 테스트 할 필요가 없습니다.
Martin Beckett

@MartinBeckett : 임베디드 시스템 개발의 어려움을 다소 사소하게 만들었습니다. 마지막 것은 실시간 응답 요구 사항을 나노초 단위로 측정 한 것입니다. 테스트 할 수 없었습니다. 올바른지 확인하는 유일한 방법은 디자인과 검토를 통해 코드가 올바른지 증명하는 것입니다. 요즘 사용자 응용 프로그램을 코딩하는 카우보이와 달리 결함은 온라인 업데이트로 해결됩니다.
mattnz

또한 이러한 시스템은 사람이나 기타 액세스 권한없이 수년 또는 수십 년 동안 작동해야 할 수도 있습니다.
세계 엔지니어

@ mattnz-항상 쉽지는 않지만 적어도 가능합니다. 카우보이 데스크탑 코드에서 OS 위에는 완전히 테스트 할 수 없으며 툴킷으로 작성되어 잠재적으로 상호 작용하는 1000 개의 다른 앱과 사용자의 임의 동작을 완전히 테스트 할 수는 없습니다. 거의 희망이 없습니다.
Martin Beckett

5

여기에는 분명히 내장 된 각도가 있습니다. 그러나 요즘에는 전통적으로 임베디드 장치라고 불리는 것에 대한 점점 더 고급 플랫폼이 보입니다. 예를 들어 LG와 삼성 TV에는 이제 API와 앱 스토어가 있습니다. 소니 TV는 Android를 실행합니다.


3
... 그리고 일부 ATM은 Windows를 실행합니다. 그들이 블루 스크린을 할 때, 그림은 보통 dailywtf.com에 옵니다 . 그리고 우리 도시에서는 지역 대중 교통이 매점에서 매월 패스를 판매합니다. 한 번 부팅이 중단 된 것을 보았습니다. Windows 2000을 실행 중이었습니다 (약 6 개월 전).
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner-감사합니다. ATM을 사용하지 마십시오. 그래서 그들이하는 일을 알지 못합니다. . .
Wyatt Barnett

ATM = 현금 자동 입출금기. AKA Bank Machine. AKA 현금 인출기 대신 계좌에서 돈을 인출 할 수있는 기계.
FrustratedWithFormsDesigner

나는 고객이 아닌 다른 사람들과 함께 일하지 않는다는 것을 알고 있습니다. . .
Wyatt Barnett

4

콜로라도 주 덴버에 ATM 2 대가 오픈 한 것을 보았습니다. 둘 다 (그 당시) Compass Bank ATM이었고, 강화 된 경우 Windows XP였습니다. 나는 그 기술 중 하나, 특히 그들 중 하나가 어떻게 운영되는지를 물었고, 그는 "XP Embedded"와 같은 것을 말했다.

따라서 ATM 프로그래밍은 요즘 임베디드 프로그래밍과 같지 않으며 표준 Windows 개발과 비슷합니다.


"이 요일"만이 아닙니다. Windows NT 3 또는 OS / 2를 실행하는 데 사용되는 ATM. 그리고 UI가 Internet Explorer에 의해 표시되는 HTML 페이지 일 가능성이 높습니다. 프로그래밍 언어는 무엇이든 가능합니다. VB로 작성된 Java 시스템을 대체 한 Java 시스템에서 작업했습니다. ATM은 실제로 비정상적인 주변 장치 및 드라이버가있는 일반 PC입니다.
Michael Borgwardt

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.