การเขียนโปรแกรมระบบฝังตัวคืออะไรและภาษาของมันคืออะไร

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ระบบคือการจัดเรียงของหน่วยต่างๆซึ่งประกอบเข้าด้วยกันเพื่อทำหน้าที่ตามคำแนะนำที่กำหนด ระบบฝังตัวเป็นการรวมกันของทั้งฮาร์ดแวร์และซอฟต์แวร์ซึ่งจะทำงานเฉพาะภายในระยะเวลาที่กำหนด (ซึ่งหมายความว่าควรทำงานเฉพาะอย่างเดียวเช่นเครื่องซักผ้า) ข้อได้เปรียบหลักของการใช้ระบบฝังตัวในแอปพลิเคชันคือสามารถลดขนาดและต้นทุนให้น้อยที่สุดและยังช่วยเพิ่มความน่าเชื่อถือและประสิทธิภาพของงาน บทความนี้แสดงภาพรวมเกี่ยวกับภาษาซอฟต์แวร์แบบฝังระบบฝังตัว การเขียนโปรแกรม และหน้าที่ของพวกเขา

ส่วนประกอบของระบบฝังตัว

ต่อไปนี้เป็นส่วนประกอบของระบบฝังตัว




  • ฮาร์ดแวร์ในตัว: ไมโครคอนโทรลเลอร์เป็นหัวใจสำคัญของระบบฝังตัวที่อุปกรณ์ต่อพ่วงหลายตัวเชื่อมต่อกับฮาร์ดแวร์แบบฝังเพื่อการสื่อสาร
  • RTO ในตัว: ระบบปฏิบัติการเรียลไทม์ในตัวถูกใช้เพื่อดำเนินการที่ซับซ้อนทั้งหมด (การดำเนินการ ar.
  • ไดรเวอร์อุปกรณ์: ทำหน้าที่เป็นสะพานเชื่อมระหว่างระบบปฏิบัติการและอุปกรณ์ต่อพ่วง
  • กองการสื่อสาร: ใช้สำหรับสื่อสารกับอุปกรณ์ภายนอก
  • โปรแกรมฝังตัว: มันทำหน้าที่ที่กำหนดไว้ล่วงหน้าของอุปกรณ์ฝังตัว
ส่วนประกอบของระบบฝังตัว

ส่วนประกอบของระบบฝังตัว

ซอฟต์แวร์ฝังตัว

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



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

ภาษาการเขียนโปรแกรมระบบฝังตัว

ซอฟต์แวร์ในตัวใช้ระบบปฏิบัติการซึ่งเป็นระบบปฏิบัติการแบบเรียลไทม์ที่ทำงานหลายอย่างพร้อมกัน โปรแกรมฝังตัวถูกตั้งโปรแกรมโดยใช้ใน C / C ++ , Phyton และ Java Scripts และได้รับการประมวลผลบนระบบปฏิบัติการเช่น ระบบปฏิบัติการลินุกซ์ , VxWorks , Fusion RTOS, Nucleus RTOS, micro C / OS, OSE เป็นต้นการเลือกภาษาโปรแกรมมีบทบาทสำคัญในการพัฒนาซอฟต์แวร์ฝังตัวซึ่งขึ้นอยู่กับปัจจัยบางประการดังที่แสดงด้านล่าง

  • ขนาด : จำนวนหน่วยความจำที่โปรแกรมต้องการมีบทบาทสำคัญเนื่องจากโปรเซสเซอร์แบบฝังตัว (ไมโครคอนโทรลเลอร์) มี ROM (หน่วยความจำแบบอ่านอย่างเดียว) ตามจำนวนที่กำหนด
  • ความเร็ว : ความเร็วในการทำงานของโปรแกรมต้องเร็ว
  • การพกพา: สามารถคอมไพล์โปรเซสเซอร์ที่แตกต่างกันได้โดยใช้โปรแกรมเดียว
  • การนำไปใช้งานทำได้ยาก
  • การดูแลรักษาทำได้ยาก

การเขียนโปรแกรมระบบฝังตัวในภาษาแอสเซมบลี

การเขียนโปรแกรมระบบฝังตัวใน ภาษาแอสเซมบลี (อินพุต) และการแปลงเป็นไฟล์ ภาษาระดับเครื่อง (เอาต์พุต) โดยใช้แอสเซมเบลอร์สามารถอธิบายได้โดยใช้ตัวอย่างต่อไปนี้ซึ่งเราดำเนินการเพิ่มตัวเลขสองตัวโดยใช้รีจิสเตอร์สองตัวและเก็บผลลัพธ์ไว้ในรีจิสเตอร์เอาต์พุต


อินพุต

ที่นี่: MOV R0, # 01H

MOV # 1, # 02H

MOV A, R0

เพิ่ม A, R1

MOV P0, ก

SIMP ที่นี่

เอาต์พุต

ที่อยู่ Opcode Operand

0000 78 01
0002 79 02
0004 E8 -
0005 29 -
0006 F5 80
0008 80 00

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

เกี่ยวกับ C, C ++, Java และ Embedded C

การเขียนโปรแกรม C

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

ฝังตัว C

Embedded C เป็นส่วนขยายของภาษา C ซึ่งใช้สำหรับการพัฒนาระบบฝังตัว ไวยากรณ์คล้ายกับภาษา C (เช่นฟังก์ชันหลักการประกาศฟังก์ชันการประกาศประเภทข้อมูลการวนซ้ำ ฯลฯ ) ความแตกต่างที่สำคัญระหว่างภาษา C แบบฝังและภาษา C มาตรฐานคือการกำหนดแอดเดรสอินพุต - เอาต์พุตของฮาร์ดแวร์การดำเนินการแบบจุดคงที่และช่องว่างที่อยู่การประมวลผล

การใช้ C ในระบบฝังตัวเนื่องจากข้อดีดังต่อไปนี้

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

เปรียบเทียบกับภาษา C ระดับสูงอื่น ๆ มีความยืดหยุ่นมากกว่าเนื่องจากเป็นภาษาที่เน้นโครงสร้างค่อนข้างเล็กและรองรับระดับบิตระดับต่ำ การจัดการข้อมูล .

C ++

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

JAVA

ระบบฝังตัวสามารถตั้งโปรแกรมด้วยภาษา JAVA โดยใช้ JAVA virtual machine (JVM) ซึ่งเข้าถึงทรัพยากรจำนวนมาก พบการใช้งานในแอปพลิเคชันระดับไฮเอนด์เป็นหลัก (เช่นโทรศัพท์มือถือ) และมีการพกพาข้ามระบบเพื่อประมวลผลแอปพลิเคชัน ไม่แนะนำสำหรับอุปกรณ์ฝังตัวขนาดเล็ก

สถาปัตยกรรมการเขียนโปรแกรม C แบบฝังตัวและตัวอย่าง

สถาปัตยกรรมการเขียนโปรแกรม C แบบฝังสามารถเข้าใจได้ด้วยตัวอย่างการใช้งาน ไมโครคอนโทรลเลอร์ 8051 โดยที่หน้าที่ของมันคือการกะพริบหลอด LED ซึ่งเชื่อมต่อกับ PORT1 ของคอนโทรลเลอร์และคอมไพเลอร์ที่ใช้คือ Keil C Compiler ต่อไปนี้เป็นรหัสสำหรับ LED กระพริบตา

#include // คำสั่งของตัวประมวลผลล่วงหน้า
ความล่าช้าเป็นโมฆะ (int) // การประกาศฟังก์ชันการหน่วงเวลา
โมฆะ main (โมฆะ) // ฟังก์ชันหลัก
{
P1 = 0x00 // port1 ปิดดังนั้น LED จึงปิดและเก็บไว้ใน reg51.h
ในขณะที่ (1) // ลูปอินฟินิตี้
{
P1 = OxFF //// port1 เปิดอยู่ดังนั้น LED จึงเปิดอยู่
ล่าช้า (1,000) // กำหนดการหน่วงเวลา
P1 = 0X00 // พอร์ต 1 ปิด
ล่าช้า (1000)
}
}
ความล่าช้าเป็นโมฆะ (int d) // การกำหนดฟังก์ชันการหน่วงเวลา
{
int ที่ไม่ได้ลงนาม i = 0 // ตัวแปรที่กำหนดในเครื่อง
สำหรับ (d> 0 d-)
{
สำหรับ (i = 250 i> 0i–)
สำหรับ (i = 248 i> 0i–)
}
}

ข้อดี

ต่อไปนี้เป็นข้อดีของซอฟต์แวร์ฝังตัว

  • การโหลดข้อมูลทำได้เร็วขึ้น
  • ต้นทุนต่ำ
  • ใช้ทรัพยากรน้อยลง

ข้อเสีย

ต่อไปนี้เป็นข้อเสียของซอฟต์แวร์ฝังตัว

  • การอัพเกรดมีความซับซ้อน
  • ทุกครั้งที่รีเซ็ตเป็นสิ่งที่จำเป็นหากเกิดปัญหาใด ๆ
  • การปรับขนาดสำหรับค่าขนาดเล็กเป็นเรื่องยาก

การใช้งาน

ต่อไปนี้เป็นแอพพลิเคชั่นของ Embedded Software

  • การธนาคาร
  • รถยนต์
  • เครื่องใช้ในบ้าน
  • รถยนต์
  • ขีปนาวุธ ฯลฯ

คำถามที่พบบ่อย

1). ซอฟต์แวร์ฝังตัวคืออะไร?

ซอฟต์แวร์ฝังตัวหรือโปรแกรมระบบสมองกลฝังตัวคือซอฟต์แวร์คอมพิวเตอร์ซึ่งใช้ในการควบคุมอุปกรณ์โดยให้คำสั่ง

2). โปรแกรมที่ใช้ในซอฟต์แวร์ระบบฝังตัวคืออะไร?

โปรแกรมซอฟต์แวร์ระบบฝังตัวถูกตั้งโปรแกรมใน C หรือ C ++, Phyton และ Java Scripts

3). อะไรคือความแตกต่างระหว่างระบบฝังตัวและระบบปกติ?

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

4). ระบบฝังตัวประเภทต่างๆมีอะไรบ้าง?

ระบบฝังตัวแบ่งออกเป็นสองประเภท

  • ขึ้นอยู่กับความต้องการด้านประสิทธิภาพและการใช้งานพวกเขาได้รับการจัดประเภทเพิ่มเติมเป็นเรียลไทม์สแตนด์อโลนเครือข่ายมือถือ
  • ขึ้นอยู่กับประสิทธิภาพของไมโครคอนโทรลเลอร์พวกเขาถูกจัดประเภทเพิ่มเติมเป็นสเกลเล็กสเกลกลางและสเกลที่ซับซ้อน

5). การใช้งานหลักของระบบฝังตัว

การใช้งานที่สำคัญของระบบฝังตัวคือ

  • เครื่องซักผ้า
  • กล้องดิจิตอล
  • เครื่องเล่นเพลง ฯลฯ

ระบบฝังตัวคือการผสมผสานระหว่างฮาร์ดแวร์และซอฟต์แวร์ ที่ไหน โปรแกรมซอฟต์แวร์ฝังตัว ถูกตั้งโปรแกรมใน C หรือ C ++, Phyton และ Java Scripts พวกเขาทำงานบน Linux OS, micro C / OS, QNX และอื่น ๆ ภาษา C เป็นภาษาพื้นฐานสำหรับการเขียนโค้ดซอฟต์แวร์ฝังตัว ดังนั้นนี่คือภาพรวมของซอฟต์แวร์ฝังตัวและสถาปัตยกรรมที่อธิบายโดยใช้โปรแกรม