การเขียนเฟิร์มแวร์แบบ RTOS
RTOS Firmware Programming · หลักสูตร TESA Firmware SDK สำหรับ Edge AI
เป้าหมาย
หัวข้อที่มีชื่อว่า “เป้าหมาย”แยกงานตามความรับผิดชอบและจังหวะเวลาด้วย FreeRTOS: task, priority, queue, mutex, semaphore และ event group พร้อมกฎของ ISR
บทเรียน
หัวข้อที่มีชื่อว่า “บทเรียน”| # | บทเรียน | เนื้อหา |
|---|---|---|
| 1 | เฟิร์มแวร์หลาย task ด้วย FreeRTOS | สร้าง task ที่มีคาบเวลา เลือก priority ส่งข้อมูลด้วย queue ป้องกันบัสด้วย mutex ส่งสัญญาณด้วย semaphore/event group และเคารพกฎของ ISR |
| 2 | แล็บ: เฟิร์มแวร์หลาย task ด้วย FreeRTOS | สร้างสอง task คาบต่างกัน ส่งเหตุการณ์ปุ่มผ่าน queue ป้องกันบัสร่วมด้วย mutex แล้วเขียนโน้ตเรื่อง timing |
เวลาโดยประมาณตามต้นฉบับ: ประมาณ 3.5–4 ชั่วโมง (บทเรียน) + แล็บ 2.5–3.5 ชั่วโมง
ชีตและแม่แบบประกอบ (อยู่ในโฟลเดอร์ resources/ ของบทเรียนที่ 1):
โค้ด C ในโมดูลนี้ใช้ API ของเฟิร์มแวร์ TESAIoT Bitstream ซึ่งยังไม่เปิดซอร์ส อ่านหมายเหตุต้นบทเรียน ก่อนลงมือ
จุดตรวจ
หัวข้อที่มีชื่อว่า “จุดตรวจ”ก่อนไปโมดูลถัดไป ตรวจว่าคุณทำสิ่งเหล่านี้ได้แล้ว:
- สอง task กระพริบ LED ด้วยคาบเวลาต่างกันโดยไม่ busy-wait
- เหตุการณ์ปุ่มเดินทางผ่าน queue ไปยัง task ที่พิมพ์ UART
- ทรัพยากรที่ใช้ร่วมถูกป้องกันด้วย mutex หรือ API ล็อกบัส
- ตอบคำถาม timing ใน Lab E ครบ
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA