ข้ามไปยังเนื้อหา

พื้นฐานเฟิร์มแวร์ภาษา 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
  1. เขียนโค้ดภาษา C ที่จัดการบิต รีจิสเตอร์ และหน่วยความจำบนไมโครคอนโทรลเลอร์อย่างปลอดภัย โดยอธิบายได้ว่าข้อมูลแต่ละก้อนอยู่ที่ใดในหน่วยความจำ
  2. build แฟลช และจัดการเวอร์ชันของเฟิร์มแวร์ด้วย ModusToolbox, Make และ Git ได้ซ้ำได้ทุกครั้ง
  3. ดีบักเฟิร์มแวร์ด้วย SWD และ GDB และวินิจฉัยความผิดพลาดจากหลักฐาน ไม่ใช่การเดา
  4. ใช้ GPIO, interrupt, timer, watchdog และ DMA ตามกติกาของบริบท ISR และ RTOS ได้ถูกต้อง
  5. สื่อสารผ่าน UART, I2C และ SPI และยืนยันสัญญาณด้วย logic analyzer ได้
  6. แยกตรรกะออกจากฮาร์ดแวร์เพื่อเขียน unit test บนเครื่องโฮสต์ และตั้ง CI ให้ตรวจทุกการเปลี่ยนแปลง
บทเรียน เรื่อง เวลา
c-found.m01.l01 ภาษา C บนไมโครคอนโทรลเลอร์ 70 นาที
c-found.m01.l02 แผนที่หน่วยความจำ stack และ heap 70 นาที
c-found.m01.l03 struct, pointer และบัฟเฟอร์วงแหวน 70 นาที
บทเรียน เรื่อง เวลา
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 นาที
บทเรียน เรื่อง เวลา
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 นาที
บทเรียน เรื่อง เวลา
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 ไม่คัดลอกมา
  • เนื้อหา 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 นี้

เมื่อนำหลักสูตรนี้ไปใช้ แบ่งปัน หรือดัดแปลง ต้องอ้างอิงดังนี้

“พื้นฐานเฟิร์มแวร์ภาษา 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 (เปิดในแท็บใหม่)

วิดีโอโดย สมาคมสมองกลฝังตัวไทย (TESA) · ดูทั้งชุดใน playlist AIoT Foundation

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA