พื้นฐานเฟิร์มแวร์ภาษา C บน PSoC Edge
ระดับ L3 · สถานะ alpha (ทดลองใช้) · 6 โมดูล 17 บทเรียน · ประมาณ 30 ชั่วโมง
หลักสูตรนี้ปิดช่องว่างที่ใหญ่ที่สุดของคลังความรู้ คือทักษะวิศวกรรมพื้นฐานที่ Embedded Systems Engineering Roadmap จัดเป็นระดับจำเป็น
ได้แก่ ภาษา C การจัดการหน่วยความจำ การ build การดีบัก อุปกรณ์ต่อพ่วง โปรโตคอลพื้นฐาน และการทดสอบ
ทุกบทผูกกับตัวอย่างภาษา C ที่มีอยู่จริงใน TESAIoT PSE84 Dev Kit SDK (Apache-2.0)
โดยลิงก์ไปยัง commit ef72c1b ที่ตรึงไว้ ตรงไหนที่ SDK ยังไม่มีตัวอย่าง บทเรียนจะบอกไว้ตรง ๆ และอ้างเอกสารของผู้ผลิตชิปแทน
เหมาะกับใคร
หัวข้อที่มีชื่อว่า “เหมาะกับใคร”- นักพัฒนาที่เขียน MicroPython หรือภาษาอื่นได้แล้ว และต้องการก้าวไปทำเฟิร์มแวร์ภาษา C
- นักศึกษาที่ผ่านหลักสูตร AIoT in Action หรือเทียบเท่า
- ต้องมีบอร์ด TESAIoT Dev Kit (แม่แบบเฟิร์มแวร์ของ SDK ที่ commit นี้รองรับบอร์ด KIT_PSE84_AI) เครื่องมือ ModusToolbox และสำหรับโมดูล 5 ต้องมี logic analyzer
- ตัวอย่างและแบบฝึกทุกไฟล์ของหลักสูตรรันบนคอมพิวเตอร์ได้โดยไม่ต้องมีบอร์ด ต้องมี gcc หรือ clang, make, git และ python3 ส่วนแล็บของแต่ละบทใช้บอร์ด
- การ build เฟิร์มแวร์ใช้ไฟล์ zip ของ release
fw-c-only-v1.10.0ของ SDK ไม่ใช่ git clone เพราะ git repo ไม่มีไลบรารีที่ build แล้ว (*.a) รายละเอียดอยู่ในบทเรียน 2.1
เมื่อจบหลักสูตร คุณจะทำได้
หัวข้อที่มีชื่อว่า “เมื่อจบหลักสูตร คุณจะทำได้”- เขียนโค้ดภาษา C ที่จัดการบิต รีจิสเตอร์ และหน่วยความจำบนไมโครคอนโทรลเลอร์อย่างปลอดภัย โดยอธิบายได้ว่าข้อมูลแต่ละก้อนอยู่ที่ใดในหน่วยความจำ
- build แฟลช และจัดการเวอร์ชันของเฟิร์มแวร์ด้วย ModusToolbox, Make และ Git ได้ซ้ำได้ทุกครั้ง
- ดีบักเฟิร์มแวร์ด้วย SWD และ GDB และวินิจฉัยความผิดพลาดจากหลักฐาน ไม่ใช่การเดา
- ใช้ GPIO, interrupt, timer, watchdog และ DMA ตามกติกาของบริบท ISR และ RTOS ได้ถูกต้อง
- สื่อสารผ่าน UART, I2C และ SPI และยืนยันสัญญาณด้วย logic analyzer ได้
- แยกตรรกะออกจากฮาร์ดแวร์เพื่อเขียน unit test บนเครื่องโฮสต์ และตั้ง CI ให้ตรวจทุกการเปลี่ยนแปลง
โมดูลและบทเรียน
หัวข้อที่มีชื่อว่า “โมดูลและบทเรียน”โมดูล 1 · ภาษา C สำหรับไมโครคอนโทรลเลอร์และหน่วยความจำ
หัวข้อที่มีชื่อว่า “โมดูล 1 · ภาษา C สำหรับไมโครคอนโทรลเลอร์และหน่วยความจำ”| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m01.l01 | ภาษา C บนไมโครคอนโทรลเลอร์ | 70 นาที |
| c-found.m01.l02 | แผนที่หน่วยความจำ stack และ heap | 70 นาที |
| c-found.m01.l03 | struct, pointer และบัฟเฟอร์วงแหวน | 70 นาที |
โมดูล 2 · Build ด้วย ModusToolbox และ Make และ Git สำหรับเฟิร์มแวร์
หัวข้อที่มีชื่อว่า “โมดูล 2 · Build ด้วย ModusToolbox และ Make และ Git สำหรับเฟิร์มแวร์”| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m02.l01 | ชุดเครื่องมือและการ build ครั้งแรก | 70 นาที |
| c-found.m02.l02 | Make และตัวแปรของการ build | 70 นาที |
| c-found.m02.l03 | Git สำหรับงานเฟิร์มแวร์ | 70 นาที |
| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m03.l01 | SWD และ GDB เบื้องต้น | 70 นาที |
| c-found.m03.l02 | วินิจฉัยความผิดพลาดจากหลักฐาน | 70 นาที |
โมดูล 4 · Timer, Interrupt, Watchdog, DMA และสัญญาณนาฬิกา
หัวข้อที่มีชื่อว่า “โมดูล 4 · Timer, Interrupt, Watchdog, DMA และสัญญาณนาฬิกา”| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m04.l01 | GPIO และ interrupt | 70 นาที |
| c-found.m04.l02 | Timer และสัญญาณนาฬิกา | 70 นาที |
| c-found.m04.l03 | Watchdog | 70 นาที |
| c-found.m04.l04 | DMA | 70 นาที |
โมดูล 5 · UART, I2C และ SPI กับ logic analyzer
หัวข้อที่มีชื่อว่า “โมดูล 5 · UART, I2C และ SPI กับ logic analyzer”| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m05.l01 | UART | 70 นาที |
| c-found.m05.l02 | I2C | 70 นาที |
| c-found.m05.l03 | SPI | 70 นาที |
| บทเรียน | เรื่อง | เวลา |
|---|---|---|
| c-found.m06.l01 | Unit test บนเครื่องโฮสต์ | 70 นาที |
| c-found.m06.l02 | CI สำหรับเฟิร์มแวร์ | 70 นาที |
สถานะของหลักสูตร
หัวข้อที่มีชื่อว่า “สถานะของหลักสูตร”หลักสูตรอยู่ในสถานะ alpha (ทดลองใช้) ทั้ง 17 บทเรียนมีเนื้อหาครบตามโครงเดียวกัน คือ เป้าหมาย ก่อนเริ่ม ดูของจริงก่อน แนวคิด ตัวอย่างสมบูรณ์ ฝึกเติม เฉลย
เช็กความเข้าใจ (ไฟล์ quiz.yaml ของแต่ละบท) แล็บ และไปต่อ
- โค้ดตัวอย่างและแบบฝึกทุกไฟล์ตรวจบนคอมพิวเตอร์แล้ว แบบฝึกทุกไฟล์ล้ม test ก่อนเติม และเฉลยทุกไฟล์ผ่าน ยกเว้นสคริปต์ GDB ของบทเรียน 3.1 ที่ตรวจได้เฉพาะเมื่อต่อบอร์ด
- แล็บบนบอร์ดเขียนจากโค้ดและเอกสารของ SDK ที่ commit
ef72c1bแต่ยังไม่ได้ทดลองสอนบนบอร์ดจริง ถ้าพบขั้นตอนที่ไม่ตรงกับบอร์ด แจ้งได้ตาม CONTRIBUTING.md - ลิงก์ไปยัง SDK ทุกลิงก์ตรึงไว้ที่ commit เดียวกัน และตรวจแล้วว่าไฟล์มีอยู่จริง ณ commit นั้น
- ข้อเท็จจริงเรื่องฮาร์ดแวร์และ API ทุกข้ออ้างจากซอร์สของ SDK หรือจาก Infineon mtb-pdl-cat1 release-v3.24.0 ตัวอย่างของ Infineon ใช้วิธีลิงก์ไปยัง repository และ tag ไม่คัดลอกมา
แหล่งอ้างอิงหลัก
หัวข้อที่มีชื่อว่า “แหล่งอ้างอิงหลัก”- TESAIoT PSE84 Dev Kit SDK (Apache-2.0) README
- แม่แบบเฟิร์มแวร์ mtb-only: README
- แคตตาล็อกตัวอย่างภาษา C ของ SDK
- A1 — From the zip to your first program (เอกสาร SDK สร้างจาก commit ef72c1b)
- Infineon mtb-pdl-cat1 (Peripheral Driver Library) @ release-v3.24.0
สัญญาอนุญาต
หัวข้อที่มีชื่อว่า “สัญญาอนุญาต”- เนื้อหา CC BY-NC 4.0
- โค้ดของหลักสูตรนี้ (โฟลเดอร์
examples/,practice/และsolution/ของทุกบท) Apache-2.0 - โค้ดของ SDK ไม่ได้คัดลอกเป็นไฟล์ บทเรียนยกมาเป็นช่วงสั้น ๆ ไม่เกิน 25 บรรทัด พร้อมลิงก์ไปยังไฟล์ที่ commit
ef72c1bและระบุ (Apache-2.0, tesaiot-pse84-devkit-sdk) - โค้ดของ Infineon ไม่ได้คัดลอกมา ใช้สัญญาอนุญาตของต้นทางตามลิงก์
- Unity (MIT) ที่ใช้ในโมดูล 6 ผู้เรียน clone เองที่ tag v2.7.0 ไม่ได้รวมไว้ใน repository นี้
อ้างอิง TESA
หัวข้อที่มีชื่อว่า “อ้างอิง TESA”เมื่อนำหลักสูตรนี้ไปใช้ แบ่งปัน หรือดัดแปลง ต้องอ้างอิงดังนี้
“พื้นฐานเฟิร์มแวร์ภาษา C บน PSoC Edge” จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
ถ้าแก้ไขเนื้อหา ให้เติม (ดัดแปลง) ต่อท้ายข้อความอ้างอิง พร้อมบอกสั้น ๆ ว่าเปลี่ยนอะไร การอ้างอิงไม่ได้แปลว่า TESA รับรองงานของคุณ รายละเอียดและตัวอย่างอยู่ใน ATTRIBUTION.md
วิดีโอประกอบหลักสูตร
ดูบน YouTube (เปิดในแท็บใหม่)
-
TESAIoT Developer Hub for Firmware/Middleware/Application Developer สมาคมสมองกลฝังตัวไทย (TESA) -
Download (from TESA Developer Hub), Build and Program via ModusToolbox to TESAIoT Dev Kit สมาคมสมองกลฝังตัวไทย (TESA) -
Remote Flashing for TESAIoT Dev Kit via TESA Developer Hub สมาคมสมองกลฝังตัวไทย (TESA)
วิดีโอโดย สมาคมสมองกลฝังตัวไทย (TESA) · ดูทั้งชุดใน playlist AIoT Foundation
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA