ซอฟต์แวร์สำหรับเครื่องเช่น ATM หรือ TV สร้างขึ้นอย่างไร


14

ในฐานะโปรแกรมเมอร์มือใหม่ฉันได้ทำงานกับแอพพลิเคชั่นบนพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์เท่านั้น แต่มีคำถามมาที่หัวบ่อยๆตั้งแต่ฉันเริ่มเขียนโปรแกรมและไม่สามารถตอบคำถามได้อย่างถูกต้อง

เครื่องจักรไม่ทำงานด้วยตัวเองนั่นเป็นหน้าที่ของโปรแกรมเมอร์เขาบอกว่าจะทำอย่างไรและเมื่อใดที่จะทำ แต่ความอยากรู้ของฉันอยู่ใต้คอมพิวเตอร์ ฉันจะนำตัวอย่างของซอฟต์แวร์ ATM ในโพสต์นี้ แต่จำไว้ว่ามีคนอื่นอีกหลายคนเช่นจอแสดงผลเครื่องซักผ้าหรือโทรทัศน์โทรศัพท์มือถือคุณตั้งชื่อมัน

ซอฟต์แวร์สำหรับเครื่องจักรประเภทนี้สร้างขึ้นมาได้อย่างไร? ฉันคิดว่ามันไม่เหมือนการเขียนโปรแกรมคอมพิวเตอร์ พวกเขาใช้ภาษาอะไรเพื่อทำให้งานดังกล่าวทำงานได้อย่างไร โปรแกรมเมอร์มีความเชี่ยวชาญในการเขียนโปรแกรมประเภทนี้หรือไม่? กระบวนการทำให้เครื่องจักรเหล่านี้มีชีวิตขึ้นมาได้อย่างไร?



ขอบคุณสำหรับลิงค์ ฉันไม่มีเงื่อนงำเกี่ยวกับเรื่องนี้จนกว่าฉันจะพบลิงก์ของคุณ ทำไมยังถูก downvote นี้? มีอะไรผิดปกติกับมัน?
Bugster

3
@ThePlan คนมีแนวโน้มที่จะลงคะแนนคำถามที่ไม่ใช่ประเภท "ฉันจะแก้ปัญหานี้ได้อย่างไร"
CFL_Jeff

3
แม้ว่าผู้คนอาจ downvote ด้วยเหตุผลหลายประการและไม่จำเป็นต้องอธิบายตนเองคำแนะนำบนลูกศร downvote อ่าน: "คำถามนี้ไม่ได้แสดงความพยายามในการวิจัยใด ๆ มันไม่ชัดเจนหรือไม่มีประโยชน์" - ฉันคิดว่าประโยคแรกนั้นใกล้เคียงกับ คำอธิบายที่เพียงพอสำหรับ downvote ที่คุณได้รับโปรดทำวิจัยเล็กน้อยอย่างน้อยก่อนที่จะถามโปรแกรมเมอร์
yannis

9
ฉันว่าให้ตัดเขานิดหน่อย เป็นการยากที่จะวิจัยการเขียนโปรแกรมแบบฝังตัวเมื่อคุณไม่ทราบคำศัพท์
Karl Bielefeldt

คำตอบ:


15

มันเป็นที่รู้จักในนามระบบสมองกลฝังตัวหรือการพัฒนาซอฟต์แวร์แบบฝังตัว ฉันอยากจะแนะนำหนังสือเล่มนี้ถ้าคุณต้องการทราบเพิ่มเติมเกี่ยวกับกระบวนการทั่วไปโดยไม่ไปที่สถาปัตยกรรมใดสถาปัตยกรรมหนึ่งมากเกินไป มันยังช่วยให้คุณมีระบบปฏิบัติการแบบเรียลไทม์เพื่อเล่นกับ

การเขียนโปรแกรมแบบฝังตัวนั้นขึ้นอยู่กับสถาปัตยกรรมเป็นอย่างมาก โดยทั่วไปคุณจะทำงานภายใต้การตอบสนองอย่างจริงจังขนาดโปรแกรมการกู้คืนข้อผิดพลาดและข้อ จำกัด ด้านต้นทุน ตัวอย่างเช่นคุณอาจมี z80 (โปรเซสเซอร์ 8 บิตมีอยู่ทั่วไป) และอาจมีหน่วยความจำสองสามกิโลไบต์สำหรับเล่น คุณอาจมี ROM ที่จะบอกระบบว่าจะต้องทำอย่างไรและจะติดตั้งโปรแกรมอย่างไร อาจมีขนาดเพียงไม่กี่กิโลไบต์ ทำไมความทรงจำเล็ก ๆ น้อย ๆ ? ถ้าคุณผลิตตัวดูดน้อย 15 ล้านตัว เงินทุกเหรียญจะกลายเป็น $ 150,000

ฉันขอแนะนำการเล่นซอกับ Arduino หรือ Scribbler Robots หากคุณต้องการเรียนรู้เพิ่มเติมโดยการทำ ตราบใดที่ Languages ​​go, C, C ++ และ Assembly เป็นชุดทั่วไปแม้ว่า Java สามารถใช้งานได้ (และในความเป็นจริงแล้วเดิมออกแบบมาสำหรับโดเมนนี้ Lisp และ ML ถูกปรับใช้ทั้งคู่

เรียนรู้ให้มากที่สุดเท่าที่คุณสามารถทำได้เกี่ยวกับสถาปัตยกรรมเช่นกันเพราะอย่างที่ฉันพูดการจัดสรรหน่วยความจำและการดำเนินงานระดับบิตเริ่มสำคัญมาก


ขอบคุณคำตอบนี้เป็นทางเลือกของฉันสำหรับคำตอบที่ได้รับการยอมรับเพราะมันอธิบายถึงระบบฝังตัวอย่างย่อและยังให้ตัวเลือกหนังสือแก่ฉันอีกด้วย
Bugster

4
@ThePlan - สิ่งที่ดีเกี่ยวกับการฝังตัวคือคุณสามารถทดสอบได้ หากคุณมีเพียง 3 อินพุตและ 3 เอาต์พุตมันค่อนข้างง่ายที่จะยืนยันว่าอะไรใช้งานได้ คุณไม่ต้องทดสอบว่าจะเกิดอะไรขึ้นหากพวกเขาเรียกใช้รหัสของคุณภายใต้ Hebrew Windows XP บนแป้นพิมพ์ภาษาตุรกีที่มี Flash รุ่น Uzbekistan
Martin Beckett

@MartinBeckett: คุณมีความยุ่งยากเล็กน้อยในการพัฒนาระบบสมองกลฝังตัว คนสุดท้ายมีความต้องการการตอบสนองแบบเรียลไทม์ซึ่งหมายความว่าในไม่กี่วินาทีนาโน มันไม่สามารถทดสอบได้ - วิธีเดียวที่จะรู้ว่าถูกต้องคือการพิสูจน์ว่ารหัสนั้นถูกต้องโดยการออกแบบและตรวจสอบ ต่างจากคาวบอยที่รหัสผู้ใช้งานในวันนี้ซึ่งข้อบกพร่องได้รับการแก้ไขโดยการอัพเดทออนไลน์
mattnz

นอกจากนี้ระบบเหล่านี้อาจจำเป็นต้องใช้งานเป็นเวลาหลายปีหรือหลายทศวรรษโดยไม่ต้องมีคนหรือการเข้าถึงอื่น ๆ
วิศวกรโลก

@mattnz - มันไม่ง่ายเสมอไป แต่อย่างน้อยก็ทำได้ ในโค้ดเดสก์ท็อปของคาวบอยด้านบนของระบบปฏิบัติการที่คุณไม่สามารถทดสอบได้อย่างเต็มที่เขียนด้วยชุดเครื่องมือที่คุณไม่สามารถทดสอบได้อย่างเต็มที่กับแอปอื่น ๆ ที่อาจโต้ตอบกับมันรวมถึง 1,000 แอพรวมถึงการกระทำแบบสุ่มของผู้ใช้
Martin Beckett

5

มีมุมฝังอยู่ที่นี่แน่นอน แต่ทุกวันนี้คุณกำลังเห็นแพลตฟอร์มที่ก้าวหน้ามากขึ้นเรื่อย ๆ เกี่ยวกับสิ่งที่เรียกว่าอุปกรณ์ฝังตัว ตัวอย่างเช่นทีวี LG และ Samsung ทั้งตอนนี้มี API และร้านค้าแอพ ทีวีของ Sony จะใช้ Android


3
... และ ATM บางเครื่องใช้ Windows เมื่อพวกเขาสีฟ้าหน้าจอภาพมักจะจบลงในthedailywtf.com และในเมืองของฉันการขนส่งมวลชนท้องถิ่นจำหน่ายบัตรผ่านรายเดือน ฉันเคยเห็นที่ติดบูท - มันใช้ Windows 2000 (ประมาณ 6 เดือนที่แล้ว)!
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner - ขอบคุณอย่าทำตู้เอทีเอ็มที่นี่ดังนั้นฉันจึงไม่ทราบว่าพวกเขากำลังทำอะไรอยู่ . .
ไวแอตต์บาร์เน็ตต์

ATM = เครื่องถอนเงินอัตโนมัติ AKA Bank Machine AKA เครื่องที่ให้คุณถอนเงินออกจากบัญชีของคุณแทนที่จะต้องไปจ่ายเงิน
FrustratedWithFormsDesigner

ฉันรู้ว่าไม่ทำงานกับพวกเขาเป็นเพียงแค่ลูกค้า . .
ไวแอตต์บาร์เน็ตต์

4

ฉันเห็นตู้เอทีเอ็มสองเครื่องเปิดที่เดนเวอร์รัฐโคโลราโด ทั้งคู่เป็นเครื่อง ATM ของ Compass Bank และทั้งคู่เป็น Windows XP ภายใต้เคสที่แข็ง ฉันได้ถามเทคโนโลยีว่าโดยเฉพาะหนึ่งในนั้นวิ่งและเขาพูดอะไรบางอย่างเช่น "ฝังตัว XP"

ดังนั้นฉันจึงคิดว่าการเขียนโปรแกรม ATM ไม่เหมือนกับการเขียนโปรแกรมแบบฝังตัวในปัจจุบันและอื่น ๆ เช่นการพัฒนา Windows มาตรฐาน


ไม่ใช่แค่ "วันนี้" ATM ใช้เพื่อเรียกใช้ Windows NT 3 หรือ OS / 2 และ UI ที่คุณเห็นน่าจะเป็นหน้า HTML ที่แสดงโดย Internet Explorer ภาษาการเขียนโปรแกรมสามารถเป็นอะไรก็ได้ - ฉันได้ทำงานกับระบบ Java ที่แทนที่หนึ่งเขียนใน VB ตู้เอทีเอ็มเป็นเพียงพีซีธรรมดาที่มีอุปกรณ์ต่อพ่วงและไดรเวอร์บางอย่างผิดปกติ
Michael Borgwardt

3

อุปกรณ์ประเภทนี้เป็นโปรแกรมที่ใช้ในการเขียนโปรแกรมฝังตัว นี่คือการเขียนโปรแกรมระดับต่ำมากที่เกี่ยวข้องกับตรรกะและประตูอย่างมาก

หากคุณมีความสนใจในการเรียนรู้ที่ฝังมือในการเขียนโปรแกรมผมจะแนะนำให้มองเข้าไปในArduino

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.