สถาปัตยกรรม MCU หลายโดเมนและชั้นของ Firmware SDK
Course 1 · Module 1
Suggested time: ประมาณ 2.5–3 ชั่วโมง (อ่านละเอียด + ทำแบบฝึก)
Format: บทเรียนเชิงแนวคิด — ยังไม่ต้อง flash บอร์ด (เริ่มลงมือกับเครื่องมือใน M02)
Lab · Cheatsheet · ← Table of Contents · M02 →
หมายเหตุ: โค้ดในบทนี้เขียนสำหรับเฟิร์มแวร์ชุดใด (ตรวจสอบเมื่อ 26 ก.ย. 2026)
โค้ด C ในบทนี้เรียก API ของเฟิร์มแวร์ TESAIoT Bitstream ที่ต้นฉบับเรียกว่า “TESA Firmware SDK” ซึ่งเผยแพร่เป็นไฟล์ HEX สำเร็จรูป (
tesaiot-bitstream-<version>.hex) คู่กับ Bitstream Studio ในแพ็กแล็บ TESAIoT_Hackathon ซอร์สโค้ดของเฟิร์มแวร์ชุดนี้ยังไม่เปิดเผยต่อสาธารณะ ฟังก์ชันอย่างled_controller_*,cm55_button_*,sensor_*,cm55_adc_*จึงยังไม่มี header ให้เปิดดูหรือนำไป build เอง ให้อ่าน snippet เป็นแนวคิดและลำดับการเรียกใช้ ส่วนการเรียก FreeRTOS และ Infineon PDL (เช่นxTaskCreate,vTaskDelay,Cy_GPIO_*) เป็น API สาธารณะตามปกติถ้าต้องการโค้ดที่อ่านและ build ได้จากซอร์สเปิด ให้ดู tesaiot-pse84-devkit-sdk (Apache-2.0) ซึ่งเป็นคนละโค้ดเบสและตั้งชื่อ API ต่างกัน ตัวอย่างที่ตรวจแล้วว่าทำงานเรื่องเดียวกับบทนี้ (commit
ef72c1b):
- README ของ SDK และโฟลเดอร์
bento-firmware-template-mtb-only/— โครงสร้างเฟิร์มแวร์แบบเปิดทั้งชุด (bsps/·bento_libs/·proj_cm33_ns/·proj_cm55/) ใช้เทียบกับแผนที่ชั้น HAL/BSP · Driver · Utility · Application ในบทนี้
เป้าหมาย (Learning Outcomes)
หัวข้อที่มีชื่อว่า “เป้าหมาย (Learning Outcomes)”เมื่อเรียนจบ คุณควรทำได้ดังนี้:
- อธิบายได้ว่าทำไมงาน Edge AI จึงต้องการไมโครคอนโทรลเลอร์แบบหลายโดเมน (multi-domain)
- อธิบายโครงสร้างระบบของ PSOC™ Edge E84 ในระดับผู้พัฒนาเฟิร์มแวร์ ได้แก่โดเมนประสิทธิภาพสูง (Cortex-M55 + Ethos-U55) และโดเมนพลังงานต่ำ (Cortex-M33 + NNLite) รวมถึงภาพรวมหน่วยความจำ HMI และความปลอดภัย
- อธิบายองค์ประกอบหลักของ TESA Firmware SDK ในมุมเรียน ได้แก่ HAL / BSP, Driver API และ Utility Modules และเชื่อมโยงได้กับสแต็กซอฟต์แวร์ของ ModusToolbox™ (PDL, HAL, BSP, middleware)
- จับคู่ “งานที่ต้องการทำ” กับ “โดเมนฮาร์ดแวร์ / ชั้นซอฟต์แวร์ที่ควรเรียกใช้” ได้ก่อนลงมือเขียนโค้ดในบทถัดไป
โมดูลนี้คือ แผนที่ความคิด ของทั้งหลักสูตรที่ 1 หากเข้าใจสถาปัตยกรรมชิปและชั้นซอฟต์แวร์แล้ว การติดตั้งเครื่องมือ (M02) และการเรียก Driver API (M03) จะมีโครงที่ชัด
หมายเหตุเกี่ยวกับตัวเลขสเปก
ตัวเลขความถี่ หน่วยความจำ และฟีเจอร์ด้านล่างอ้างจากคู่มือ Infineon สำหรับตระกูล PSOC™ Edge E8x / E84 เช่น Product Brief (PDF) และ หน้าผลิตภัณฑ์ E84
ชิปย่อย (SKU) บนบอร์ดที่คุณใช้อาจต่างกันเล็กน้อย — ให้ยึดเอกสารของบอร์ด/ชิปที่ได้รับจริงเป็นหลัก และใช้ตัวเลขในบทนี้เป็น กรอบความเข้าใจ ไม่ใช่แทน datasheet ทั้งเล่ม
Read alongside this chapter
หัวข้อที่มีชื่อว่า “Read alongside this chapter”| เอกสาร | ใช้เมื่อ |
|---|---|
| PSOC™ Edge E84 product page | ภาพรวมฟีเจอร์และโดเมนประมวลผล |
| PSOC™ Edge E84 documentation hub | อ่านเอกสารตระกูล Edge เพิ่ม |
| PSOC™ Edge E84 Product Brief (PDF) | สเปกสรุป: M55/M33, NPU, memory, HMI, security |
| PSOC™ Edge family overview | เปรียบเทียบตระกูล Edge ทั้งสาย |
| KIT_PSE84_EVAL | ชุดประเมินผลที่ใช้เรียน/ต้นแบบ |
| AN241775 — Getting started with HAL on PSOC™ Edge (PDF) | สแต็ก PDL / HAL / BSP / middleware |
| AN235935 — Getting started with PSOC™ Edge on ModusToolbox™ (PDF) | เชื่อมไปเครื่องมือใน M02 |
| mtb-dsl-pse8xxgp (Device Support Library) | ซอร์ส PDL/HAL ของตระกูล PSE8xx |
| TESAIoT Developer Hub | คลังตัวอย่างโค้ด / flowchart / API Reference ของหลักสูตร (อ้างอิงหลัก) |
| Bitstream Studio (Marketplace) | Host app ใน VS Code — telemetry, Sensor Studio, digital twin เชื่อมเฟิร์มแวร์ |
| TESAIoT_Hackathon | แพ็กแล็บ: HEX, VSIX, Flasher, web-app demos สำหรับฝึกปฏิบัติ |
1. From Traditional MCUs to Edge AI
หัวข้อที่มีชื่อว่า “1. From Traditional MCUs to Edge AI”1.1 What Traditional MCUs Do Well
หัวข้อที่มีชื่อว่า “1.1 What Traditional MCUs Do Well”ไมโครคอนโทรลเลอร์ (MCU) ถูกใช้เป็นตัวควบคุมอุปกรณ์มานาน เช่น
- อ่านสวิตช์ / เซ็นเซอร์ง่าย ๆ
- ขับ LED, มอเตอร์, รีเลย์
- สื่อสารผ่าน UART / I²C / SPI
- รันลูปควบคุมที่คาดพฤติกรรมได้
งานเหล่านี้มักอยู่บนคอร์เดียว มีหน่วยความจำจำกัด และไม่ต้องการเร่งโมเดล Machine Learning บนชิป
1.2 What Changes with Edge AI
หัวข้อที่มีชื่อว่า “1.2 What Changes with Edge AI”ผลิตภัณฑ์อัจฉริยะสมัยใหม่มักต้องการมากกว่า “อ่านค่าแล้วส่งขึ้นคลาวด์”:
| ความต้องการ | ตัวอย่างในผลิตภัณฑ์ |
|---|---|
| ประมวลผลใกล้แหล่งข้อมูล | รู้ว่ามีคำสั่งเสียง / ท่าทาง โดยไม่ส่งเสียงดิบตลอดเวลา |
| ตอบสนองเร็ว (latency ต่ำ) | UI หรือ safety interlock ที่ต้องตอบในหน่วยมิลลิวินาที |
| ใช้พลังงานอย่างมีวินัย | รอฟังตลอดคืนบนแบตเตอรี่ |
| ความเป็นส่วนตัว | ข้อมูลดิบบางส่วนไม่ต้องออกนอกอุปกรณ์ |
| ทนเมื่อเน็ตหลุด | ฟังก์ชันหลักยังทำงานได้แม้คลาวด์ชั่วคราวใช้ไม่ได้ |
แนวคิดนี้เรียกว่า Edge AI — การนำปัญญาประดิษฐ์หรือการเรียนรู้ของเครื่อง (Machine Learning) ไปทำงานใกล้แหล่งข้อมูล
1.3 Why a Single Core Is Often Not Enough
หัวข้อที่มีชื่อว่า “1.3 Why a Single Core Is Often Not Enough”ถ้าบังคับงานทุกอย่างไว้บน CPU เดียว คุณจะเจอข้อขัดแย้งบ่อย ๆ เช่น
- ต้องการ inference หนัก → ต้อง clock สูง → กินพลังงานมาก
- ต้องการ always-on sensing → ต้องตื่นบ่อย → กับงบพลังงานชนกัน
- ต้องการ UI/กราฟิก + เซ็นเซอร์ + เครือข่ายพร้อมกัน → แย่งเวลา CPU กัน
ดังนั้น MCU ยุค Edge AI จึงออกแบบเป็น หลายโดเมน — แยกงานสมรรถนะสูง ออกจากงานพลังงานต่ำ และแยกตัวเร่ง Neural Network ออกจากคอร์ทั่วไป
หลักสูตรนี้ไม่ได้สอนแค่ “เขียน C ให้บอร์ดทำงาน” แต่สอนให้มอง สถาปัตยกรรมชิป + ชั้นซอฟต์แวร์ SDK เป็นระบบเดียวกัน
2. Course Platform: PSOC™ Edge E84
หัวข้อที่มีชื่อว่า “2. Course Platform: PSOC™ Edge E84”TESA Firmware SDK ในหลักสูตรนี้รองรับการพัฒนาบนตระกูล Infineon PSOC™ Edge โดยใช้ PSOC™ Edge E84 เป็นกรณีศึกษาหลัก
อ่านสรุปสถาปัตยกรรมได้จาก Product Brief (PDF) และ เอกสารตระกูลบน Infineon documentation
2.1 Why This Family Fits Edge AI Learning
หัวข้อที่มีชื่อว่า “2.1 Why This Family Fits Edge AI Learning”ตามเอกสารผลิตภัณฑ์ของ Infineon ตระกูล E84 ถูกวางเป็น MCU ที่รวม:
- สมรรถนะสูงสำหรับแอปและ ML ขั้นสูง — Arm® Cortex®-M55 + Ethos™-U55
- โดเมนพลังงานต่ำสำหรับ always-on — Arm® Cortex®-M33 + Infineon NNLite
- อินเทอร์เฟซ HMI (กราฟิก / เสียง) ในระดับชิป
- ความปลอดภัยระดับอุตสาหกรรม (เช่น Edge Protect / PSA ตามระดับที่ชิปรองรับ)
- ระบบนิเวศเครื่องมือ ModusToolbox™ และโซลูชัน ML อย่าง DEEPCRAFT™
จุดนี้สำคัญต่อหลักสูตร: คุณจะได้ฝึกทั้งการควบคุม I/O แบบเฟิร์มแวร์คลาสสิก และการเตรียมทางไปยังงาน Edge AI / connectivity ในบทหลัง โดยไม่ต้องเปลี่ยนแพลตฟอร์มกลางคัน
ชุดประเมินผลอ้างอิง: KIT_PSE84_EVAL (ใช้ตามบอร์ดที่มี)
2.2 What to Focus on in M01 (and What to Skip for Now)
หัวข้อที่มีชื่อว่า “2.2 What to Focus on in M01 (and What to Skip for Now)”| โฟกัสใน M01 | ยังไม่จำเป็นใน M01 |
|---|---|
| มีโดเมนอะไรบ้าง และเหมาะกับงานแบบใด | จำ register map ทั้งชิป |
| ซอฟต์แวร์คุยกับฮาร์ดแวร์ผ่านชั้นไหน | ตั้งค่า Device Configurator ครบทุกหน้าจอ |
| ความสัมพันธ์ระหว่าง SDK กับ IDE | Flash Hello World (อยู่ใน M02) |
| ภาพรวมหน่วยความจำ / ความปลอดภัย / HMI | เขียนโมเดล ML เองทั้งหมด |
จำประโยคนี้ไว้
ใน M01 คุณไม่ต้องท่อง datasheet ทั้งเล่ม
ให้ตอบได้ว่า “งานนี้ควรอยู่โดเมนไหน” และ “โค้ดนี้ควรอยู่ชั้นซอฟต์แวร์ไหน”
3. PSOC™ Edge Multi-Domain Architecture
หัวข้อที่มีชื่อว่า “3. PSOC™ Edge Multi-Domain Architecture”Infineon อธิบาย PSOC™ Edge ว่าเป็นสถาปัตยกรรม multi-domain เพื่อสมดุลระหว่างสมรรถนะสูงกับการใช้พลังงานแบบละเอียด (fine-grained power optimization) — ดูสรุปได้จาก E84 product page และ Product Brief (PDF)
ในภาพรวมมีอย่างน้อยสองโดเมนหลักที่ผู้เรียนเฟิร์มแวร์ต้องรู้จัก:
3.1 High-Performance Domain
หัวข้อที่มีชื่อว่า “3.1 High-Performance Domain”| องค์ประกอบ | บทบาทโดยสรุป | อ่านเพิ่ม |
|---|---|---|
| Arm® Cortex®-M55 | คอร์แอปหลัก ความถี่สูงสุดราว 400 MHz มี Helium™ DSP และ FPU | Cortex-M55 · Helium |
| Arm® Ethos™-U55 NPU | ตัวเร่ง Neural Network สำหรับงาน ML ขั้นสูง ความถี่สูงสุดราว 400 MHz (เอกสารระบุราว 128 MAC/cycle) | Ethos-U55 |
เหมาะกับงานเช่น:
- ตรรกะผลิตภัณฑ์หลัก / control loop
- preprocessing สัญญาณ (DSP)
- inference ที่ต้องการสมรรถนะสูง
- ประสานงานกับกราฟิก / connectivity ในโหมดแอ็กทีฟ
3.2 Low-Power Domain
หัวข้อที่มีชื่อว่า “3.2 Low-Power Domain”| องค์ประกอบ | บทบาทโดยสรุป | อ่านเพิ่ม |
|---|---|---|
| Arm® Cortex®-M33 | คอร์พลังงานต่ำ ความถี่สูงสุดราว 200 MHz | Cortex-M33 |
| Infineon NNLite | ตัวเร่ง Neural Network แบบใช้พลังงานต่ำสำหรับ Always-On AI/ML | E84 product overview |
เหมาะกับงานเช่น:
- always-on sensing / wake word / acoustic activity detection
- งานที่ต้องทำงานต่อเนื่องโดยประหยัดพลังงาน
- เฝ้าระวังเงื่อนไขแล้วค่อย “ปลุก” โดเมนสมรรถนะสูงเมื่อจำเป็น
3.3 Simple Data-Flow View
หัวข้อที่มีชื่อว่า “3.3 Simple Data-Flow View”เซ็นเซอร์ / ไมโครโฟน / ปุ่ม │ ├──────────────► Low-Power Domain │ Cortex-M33 + NNLite │ (always-on / wake / low-power ML) │ │ │ │ ปลุก / ส่งเหตุการณ์ │ ▼ └──────────────► High-Performance Domain Cortex-M55 (+ Helium DSP) │ ├──────────────► Ethos-U55 NPU (advanced inference) │ ├──────────────► HMI (กราฟิก / เสียง) ตามงาน │ └──────────────► Connectivity (เช่น Wi-Fi / MQTT ในบทหลัง)Key phrase
อย่าท่องแค่ชื่อคอร์ — ให้ตอบได้ว่า งานนี้ควรอยู่โดเมนไหน และทำไม
3.4 Task-to-Domain Mapping (Design Time)
หัวข้อที่มีชื่อว่า “3.4 Task-to-Domain Mapping (Design Time)”| ประเภทงาน | โดเมนที่มักเหมาะสม | เหตุผลสั้น ๆ |
|---|---|---|
| UI / เมนู / ควบคุม LED จากสถานะแอป | High-Performance (M55) | เป็นตรรกะผลิตภัณฑ์หลัก |
| รอฟังเสียงเบา ๆ ทั้งคืน | Low-Power (M33 ± NNLite) | งบพลังงานสำคัญกว่า throughput |
| โมเดล gesture / vision ขั้นสูงบนอุปกรณ์ | Ethos-U55 (+ แอปบน M55 ประสาน) | ต้องการเร่ง ML |
| จัด JSON แล้ว publish MQTT | แอปบนคอร์หลัก (มัก M55) | เป็นโปรโตคอล/นโยบาย ไม่ใช่หน้าที่ NPU |
| กรองสัญญาณเบา ๆ ก่อนส่งเข้าโมเดล | M55 (DSP/Helium) หรือ utility บนแอป | preprocessing ไม่เท่ากับ inference |
3.5 Common Misconceptions
หัวข้อที่มีชื่อว่า “3.5 Common Misconceptions”| ความเข้าใจผิด | ความจริง |
|---|---|
| มี NPU แล้วไม่ต้องเขียนเฟิร์มแวร์ควบคุม I/O | NPU เร่ง inference — การอ่านเซ็นเซอร์และสั่ง actuator ยังเป็นงานของแอป + driver |
| ทุกอย่างควรรันบน Cortex-M55 | งาน always-on ควรพิจารณาโดเมนพลังงานต่ำ |
| Edge AI = ส่งข้อมูลดิบขึ้นคลาวด์ตลอด | ตรงข้าม — มุ่งประมวลผลที่ขอบก่อน |
| NNLite กับ Ethos-U55 ใช้แทนกันได้ทุกงาน | คนละจุดประสงค์: always-on ประหยัดพลังงาน vs ML สมรรถนะสูง |
| ต้องเลือกโดเมนให้ถูกตั้งแต่บรรทัดแรกของ Hello World | M01 สอนแผนที่ — การมอบหมาย task จริงจะชัดขึ้นใน M04–M05 |
3.6 Think Before the Lab
หัวข้อที่มีชื่อว่า “3.6 Think Before the Lab”เลือกโดเมนที่เหมาะสมที่สุดสำหรับแต่ละงาน:
- กระพริบ LED ตามสถานะเมนูบนจอ
- ฟังคำปลุก (wake-word) แบบใช้พลังงานต่ำตลอดคืน
- รันโมเดลรู้จำท่าทางบนอุปกรณ์
- จัด JSON แล้ว publish ขึ้น broker
แนวทาง: (1) M55 · (2) M33 / NNLite · (3) Ethos-U55 (+ M55 ประสาน) · (4) แอปบนคอร์หลัก
รายละเอียดอยู่ใน แล็บ
4. SoC Memory and On-Chip Connectivity (Developer Overview)
หัวข้อที่มีชื่อว่า “4. SoC Memory and On-Chip Connectivity (Developer Overview)”ผู้เรียนเฟิร์มแวร์ไม่จำเป็นต้องท่องทุกช่วงแอดเดรส แต่ควรรู้ว่า “ความจำมีหลายชั้น” และแต่ละชั้นมีผลต่อ latency / พลังงาน / ขนาดโมเดล
4.1 Memory Overview from E8x Family Documents
หัวข้อที่มีชื่อว่า “4.1 Memory Overview from E8x Family Documents”เอกสารผลิตภัณฑ์ของตระกูลระบุแนวประมาณดังนี้ (ขึ้นกับรุ่นย่อย — ตรวจใน Product Brief):
| ทรัพยากร | บทบาทในมุมนักพัฒนา |
|---|---|
| System SRAM (รวมแล้วสูงสุดราวหลาย MB; เอกสาร E84 มักพูดถึงราว 6 MB รวมโดเมน) | ที่เก็บโค้ด/ข้อมูล/บัฟเฟอร์กราฟิกหรือ ML ในโหมดแอ็กทีฟ |
| SRAM ในโดเมน Low-Power (เอกสารระบุราว 1 MB ในบางสรุปสถาปัตยกรรม) | รองรับงาน always-on โดยไม่ต้องเปิดทรัพยากรทั้งหมด |
| TCM / cache ของ Cortex-M55 | ลด wait-state สำหรับโค้ดและข้อมูลวิกฤต |
| RRAM (เอกสารระบุราว 512 KB ในหลายรุ่น) | หน่วยไม่ลบเลือนใช้พลังงานต่ำ สำหรับเก็บข้อมูล/เฟิร์มแวร์บางส่วนตามการออกแบบระบบ |
| Boot ROM | โค้ดบูตของชิป |
| หน่วยความจำภายนอกผ่าน SMIF / Octal / QSPI (บนชุดประเมินผล) | ขยายโค้ด/โมเดล/แอสเซ็ตเมื่อ SRAM ในชิปไม่พอ |
4.2 Why Memory Matters for Edge AI
หัวข้อที่มีชื่อว่า “4.2 Why Memory Matters for Edge AI”- โมเดล ML และบัฟเฟอร์เซ็นเซอร์แย่ง SRAM กัน
- กราฟิก HMI กินหน่วยความจำและแบนด์วิดท์บัส
- การเลือกเก็บน้ำหนักโมเดลใน RRAM / flash ภายนอกมีผลต่อเวลาบูตและพลังงาน
ในหลักสูตรนี้ คุณจะสัมผัสผลจริงเมื่อจัด buffer ใน M05 และเมื่อเชื่อม UI/telemetry ในบทหลัง — M01 แค่ปูแผนที่
4.3 Peripherals and Interfaces Common in Edge / IoT Work
หัวข้อที่มีชื่อว่า “4.3 Peripherals and Interfaces Common in Edge / IoT Work”เอกสารตระกูลระบุชุดเพริเฟอรัลที่หลากหลาย ซึ่งในหลักสูตรจะค่อยฝึกทีละกลุ่ม:
| กลุ่ม | ตัวอย่าง | จะเน้นในบท |
|---|---|---|
| GPIO / Timer / PWM / ADC | ปุ่ม ไฟ มอเตอร์ อ่านอนาล็อก | M03 |
| UART / I²C / SPI / I3C | ดีบักคอนโซล เซ็นเซอร์ บัสความเร็วสูง | M03, M05 |
| USB / SD / Ethernet / CAN (ตามรุ่น) | เชื่อมต่อระบบ | เสริมตามความสนใจ |
| เสียง (PDM/I2S/TDM), กราฟิก (2.5D GPU, MIPI-DSI/DBI) | HMI | ภาพรวมใน M01; ลงมือตามชุดบอร์ด |
| วิทยุภายนอกบนคิต (เช่น Wi-Fi/Bluetooth บน Evaluation Kit) | Cloud / local radio | M06 MQTT · M07 BLE |
5. HMI, Audio, Graphics, and Security (Overview)
หัวข้อที่มีชื่อว่า “5. HMI, Audio, Graphics, and Security (Overview)”5.1 Human–Machine Interface (HMI)
หัวข้อที่มีชื่อว่า “5.1 Human–Machine Interface (HMI)”PSOC™ Edge E84 ถูกวางให้รองรับ HMI ที่ซับซ้อนขึ้นกว่า MCU ทั่วไป เช่น (สรุปจาก Product Brief):
- กราฟิกความละเอียดสูงในระดับที่เอกสารระบุ (เช่น เส้นทาง display ถึงราว 1024×768)
- 2.5D GPU และอินเทอร์เฟซจอ (MIPI-DSI / DBI ตามรุ่น)
- อินเทอร์เฟซไมโครโฟนหลายช่องและฟีเจอร์อย่าง Acoustic Activity Detection / wake-word ในบริบทพลังงานต่ำ
อ่านลึกเมื่อพร้อม (ไม่บังคับใน M01): รายการ application notes บน PSOC™ Edge application notes เช่น AN239191 (graphics) และ AN237939 (high-performance graphics / low power)
สำหรับหลักสูตรเฟิร์มแวร์: ให้เข้าใจว่า HMI ไม่ได้อยู่นอกชิปเสมอไป — บางส่วนเป็นบล็อกใน SoC ที่แอปต้องจัดทรัพยากรและพลังงานให้สอดคล้องกับโดเมนประมวลผล
5.2 Security at the Architecture Level
หัวข้อที่มีชื่อว่า “5.2 Security at the Architecture Level”เอกสาร Infineon ระบุทิศทางความปลอดภัยระดับสูง เช่น
- Secure Enclave / lockstep ในโดเมนพลังงานต่ำ (ตามรุ่น)
- Secure Boot และที่เก็บคีย์
- แนวทาง Infineon Edge Protect / ระดับ PSA ตาม SKU
- ไลบรารีและบริการเข้ารหัสใน ecosystem (รวมแนวทาง Trusted Firmware-M ในบางเอกสาร)
จุดเริ่มค้นคว้า: AN237849 — Getting started with PSOC™ Edge security (ดูรายการ application notes) และสรุป security ใน Product Brief
ในหลักสูตรนี้:
| บท | สิ่งที่คาดหวัง |
|---|---|
| M01 | รู้ว่าความปลอดภัยเป็นส่วนหนึ่งของสถาปัตยกรรมชิป ไม่ใช่ของแถม |
| M06 | ลงรายละเอียด MQTT over TLS, ใบรับรอง และการยืนยันตัวตนในทางปฏิบัติ |
6. Evaluation Kits
หัวข้อที่มีชื่อว่า “6. Evaluation Kits”Infineon มีคิตอย่างน้อยสองแนวทางที่พบบ่อยในการเริ่มต้นกับ E84:
| คิต | จุดประสงค์โดยสรุป | ลิงก์ |
|---|---|---|
| KIT_PSE84_EVAL (PSOC™ Edge E84 Evaluation Kit) | แพลตฟอร์มประเมินผลทั่วไป เข้าถึงอินเทอร์เฟซได้กว้าง เหมาะกับ rapid prototyping | KIT_PSE84_EVAL · Kit guide |
| KIT_PSEA84 (PSOC™ Edge E84 AI Kit) | แนวทางต้นทุนต่ำกว่าสำหรับงาน Edge AI ตามที่ Infineon นำเสนอ | ดูบน E84 product page |
6.1 Typical Evaluation Kit Features (Overview)
หัวข้อที่มีชื่อว่า “6.1 Typical Evaluation Kit Features (Overview)”จากหน้าผลิตภัณฑ์คิต (รายละเอียดขึ้นกับรุ่นฮาร์ดแวร์ที่ถือ):
- ชิป PSOC™ Edge E84
- โปรแกรมเมอร์/ดีบักเกอร์บนบอร์ด (เช่น KitProg)
- หน่วยความจำภายนอก (QSPI / Octal flash / RAM ตามคิต)
- ไมโครโฟน / ลำโพง / จอ / กล้อง (บนคิตที่เน้น HMI)
- โมดูลไร้สาย เช่น AIROC™ Wi-Fi & Bluetooth® บนบางคิต
- หัวต่อขยาย (Arduino / mikroBUS / อื่น ๆ ตามคิต)
6.2 Product Directions That Match This Course
หัวข้อที่มีชื่อว่า “6.2 Product Directions That Match This Course”- บ้านอัจฉริยะ — เสียง / ท่าทาง / เทอร์โมสตัท
- สวมใส่ได้ — always-on sensing ใช้พลังงานต่ำ
- หุ่นยนต์ขนาดเล็ก — รับรู้บริบทในขอบเขตจำกัด
- ล็อก / ความปลอดภัย — ยืนยันตัวตนระดับอุปกรณ์
- Industrial HMI — จอและอินพุตท้องถิ่น
7. Software Ecosystem: From ModusToolbox™ to TESA Firmware SDK
หัวข้อที่มีชื่อว่า “7. Software Ecosystem: From ModusToolbox™ to TESA Firmware SDK”ก่อนเข้าสู่ “HAL / Driver API / Utility” ในภาษาของหลักสูตร ควรเห็นภาพสแต็กจริงของ Infineon ที่ SDK และโปรเจกต์ตัวอย่างยืนอยู่บนนั้น
อ่านคู่กับ AN241775 (HAL on PSOC™ Edge) และ mtb-dsl-pse8xxgp
7.1 Software Layers in ModusToolbox™ (from Infineon Docs)
หัวข้อที่มีชื่อว่า “7.1 Software Layers in ModusToolbox™ (from Infineon Docs)”เอกสารอย่าง AN241775 และคู่มือ ModusToolbox™ วางภาพคร่าว ๆ ดังนี้:
Applications / Code Examples / Reference Designs │ ▼Middleware libraries(Graphics, ML, Wi-Fi/Bluetooth, CAPSENSE, Voice, Security, …) │ ▼Board Support Packages (BSP) │ ▼Device Support Library ├── Peripheral Driver Library (PDL) ├── Hardware Abstraction Layer (HAL) ├── Device Utilities └── Device Information │ ▼Hardware (PSOC™ Edge)ความหมายสั้น ๆ:
| ชิ้นส่วน | ทำอะไร |
|---|---|
| BSP | โค้ดและคอนฟิกเฉพาะบอร์ด — init บอร์ด, แมปขา, ไลบรารีที่บอร์ดต้องการ |
| PDL | API ระดับต่ำของเพริเฟอรัล + header/startup ของชิป — ใกล้ฮาร์ดแวร์ |
| HAL | ชั้นพกพาที่ห่อ PDL; บน PSOC™ Edge รุ่นใหม่ Infineon เน้นให้ HAL รองรับ middleware และให้การตั้งค่าเพริเฟอรัลชัดขึ้นผ่าน Device Configurator + PDL |
| Middleware | สแต็กสำเร็จรูป (RTOS abstraction, connectivity, ML, กราฟิก ฯลฯ) |
| Application | โค้ดผลิตภัณฑ์ของคุณ |
สำหรับ PSOC™ Edge: ลำดับที่เอกสารแนะนำบ่อยคือ
ตั้งค่า/init เพริเฟอรัลด้วย PDL (และคอนฟิกิวเรเตอร์) → ผูกวัตถุ HAL เมื่อ middleware ต้องการ → middleware/แอปใช้งานต่อ
7.2 Where TESA Firmware SDK Fits
หัวข้อที่มีชื่อว่า “7.2 Where TESA Firmware SDK Fits”TESA Firmware SDK ในหลักสูตรนี้คือชุดความรู้และ API ที่จัดให้ผู้เรียนพัฒนาผลิตภัณฑ์ TESAIoT / Edge AI บนแพลตฟอร์มข้างต้นอย่างเป็นระบบ
ในภาษาของบทเรียน เราจัดกลุ่มเป็นสามแกนที่ผู้เรียนต้องเข้าใจชัดก่อนลงมือเขียนโค้ด:
| ศัพท์ในหลักสูตร | สิ่งที่มักสัมพันธ์ในสแต็กจริง | ผู้เรียนทำอะไร |
|---|---|---|
| HAL / BSP | BSP + การ bring-up / นามธรรมบอร์ด (+ บริบท HAL ของแพลตฟอร์ม) | เลือกบอร์ด เรียก init ตามคู่มือโปรเจกต์ |
| Driver API | ทางเข้าควบคุมเพริเฟอรัลที่หลักสูตรให้ใช้เป็นมาตรฐาน (อยู่บน PDL/HAL/ไดรเวอร์ของ SDK ตามเวอร์ชันที่ใช้) | อ่าน/เขียน GPIO, UART, I2C, SPI, PWM, ADC |
| Utility Modules | โมดูลช่วยที่ใช้ซ้ำในโปรเจกต์ตัวอย่าง/ผลิตภัณฑ์ | buffer, filter เบา ๆ, logging helper |
และชั้นที่สี่ที่คุณเขียนเองเสมอ:
| ชั้น | ความหมาย |
|---|---|
| Application | นโยบายผลิตภัณฑ์, task, การตัดสินใจ, การเรียกใช้ชั้นด้านล่าง |
7.3 SDK Is Not the IDE
หัวข้อที่มีชื่อว่า “7.3 SDK Is Not the IDE”| คำ | คืออะไร | อ่านเพิ่ม |
|---|---|---|
| ModusToolbox™ / VS Code | เครื่องมือพัฒนา (สร้างโปรเจกต์, จัดการไลบรารี, เขียนโค้ด, build, debug) | M02 · ModusToolbox™ |
| TESA Firmware SDK | ชุดซอฟต์แวร์/API และแนวทางที่โค้ดของคุณเรียกใช้ในหลักสูตร | หมวด 8 ในบทนี้ |
| Device Support Library | แพ็กเกจรองรับชิปจาก Infineon (PDL/HAL/utilities) | mtb-dsl-pse8xxgp |
| DEEPCRAFT™ | เวิร์กโฟลว์โมเดล ML สำหรับ Edge (ภาพรวมใน M01; ลงรายละเอียดในบท Sensor/AI) | DEEPCRAFT™ |
| Digital Twin | มุมมองจำลอง / 3D บนโฮสต์ (หลักสูตร Digital Twin เต็มรูปแบบอยู่คนละคอร์ส) — เครื่องมือโฮสต์ที่ใช้ร่วมกับเฟิร์มแวร์คือ Bitstream Studio | Marketplace |
จำให้ขึ้นใจ: ติดตั้ง IDE ได้ ≠ เข้าใจ SDK แล้ว
8. Core SDK Building Blocks: HAL/BSP, Driver API, Utility
หัวข้อที่มีชื่อว่า “8. Core SDK Building Blocks: HAL/BSP, Driver API, Utility”8.1 Bottom-Up Software Layers (Course Teaching Model)
หัวข้อที่มีชื่อว่า “8.1 Bottom-Up Software Layers (Course Teaching Model)”+--------------------------------------------------+| Application / Product Logic || (นโยบายผลิตภัณฑ์, task, การตัดสินใจ) |+--------------------------------------------------+| Utility Modules || (buffer, helper, logging, งานช่วยที่ใช้ซ้ำ) |+--------------------------------------------------+| Driver API || (GPIO, UART, I2C, SPI, PWM, ADC, …) |+--------------------------------------------------+| HAL / BSP || (board bring-up, clocks, pin mux, นามธรรมบอร์ด) |+--------------------------------------------------+| Hardware || (PSOC™ Edge E84 + อุปกรณ์บนชุดประเมินผล) |+--------------------------------------------------+8.2 BSP / HAL — Prepare the Stage
หัวข้อที่มีชื่อว่า “8.2 BSP / HAL — Prepare the Stage”Board Support Package (BSP) ทำให้โปรเจกตรู้ว่ากำลังรันบนบอร์ดใด ขาใดต่ออะไร และต้องดึงไลบรารีใด
Hardware Abstraction Layer (HAL) ในระบบนิเวศ Infineon ช่วยให้ชั้นบนพูดภาษาที่พกพากว่าการแตะ register ตรง ๆ
บน PSOC™ Edge รุ่นใหม่ เอกสารเน้นว่าการตั้งค่าและ init เพริเฟอรัลจำนวนมากทำผ่าน configurator + PDL ส่วน HAL ถูกใช้ร่วมกับ middleware อย่างมีเป้าหมาย
ในหลักสูตรนี้ คุณมักจะ:
- สร้าง/เปิดโปรเจกต์จาก BSP ของคิต
- เรียก init ตามตัวอย่างของโปรเจกต์ หรือตัวอย่างบน TESAIoT Developer Hub
- ไม่เริ่มจาก “เขียน register ทีละบิต” ในแบบฝึกมาตรฐาน
8.3 Driver API — Talk to Hardware
หัวข้อที่มีชื่อว่า “8.3 Driver API — Talk to Hardware”Driver API คือทางเข้าหลักสำหรับควบคุมอุปกรณ์ต่อพ่วงในแนวทางของหลักสูตร
ตัวอย่างงาน:
- GPIO — LED / ปุ่ม / สัญญาณควบคุม
- UART — log และโปรโตคอลข้อความ
- I²C / SPI — เซ็นเซอร์และหน่วยความจำภายนอก
- PWM / ADC — ขับสัญญาณและอ่านอนาล็อก
- Timer — จังหวะเวลา
กฎของหลักสูตร: เรียก Driver API ของ SDK ตามเวอร์ชันที่ใช้ ไม่ข้ามไปเขียน register โดยตรง เว้นแต่บทนั้นระบุชัด
ชื่อฟังก์ชันจริงขึ้นกับเวอร์ชันที่ล็อกในโปรเจกต์ของคุณ — M01 โฟกัสบทบาทของชั้น ส่วนรายละเอียดเรียกใช้พร้อม snippet จริงจะฝึกใน M03 (เช่น led_controller_*, cm55_button_*, sensor_*, cm55_adc_*) และ RTOS ใน M04 (xTaskCreate, vTaskDelay, …)
8.4 Utility Modules — Helpers
หัวข้อที่มีชื่อว่า “8.4 Utility Modules — Helpers”Utility Modules ไม่แทน Driver แต่ช่วยงานซ้ำ ๆ เช่น
- ring buffer / queue เบา ๆ ในระดับแอป
- filter / smoothing เบื้องต้น
- logging helper
- ฟังก์ชันจัดรูปข้อมูลที่ใช้ร่วมหลายโมดูล
กฎง่าย ๆ: Utility จัดของ — Driver คุยกับฮาร์ดแวร์ — Application ตัดสินใจ
8.5 Application — Product Policy
หัวข้อที่มีชื่อว่า “8.5 Application — Product Policy”ชั้นแอปคือที่ที่คุณเขียน เช่น
- เมื่อค่าเซ็นเซอร์เกินเกณฑ์ให้กระพริบไฟ
- เมื่อได้ผล inference แล้วเปลี่ยนโหมด
- เมื่อไรจะ publish ขึ้นคลาวด์ (รายละเอียดใน M06)
- จะปลุกโดเมนสมรรถนะสูงเมื่อใดหลังเหตุการณ์จากโดเมนพลังงานต่ำ
8.6 Quick Decision Table
หัวข้อที่มีชื่อว่า “8.6 Quick Decision Table”| คำถามที่คุณถามตัวเอง | ชั้นที่น่าจะเกี่ยวข้อง |
|---|---|
| บอร์ดพร้อมรันหรือยัง นาฬิกาและขาตั้งแล้วหรือยัง | HAL / BSP |
| จะคุยกับ peripheral ชิ้นไหน | Driver API |
| มีงานช่วยที่ใช้ซ้ำหลายที่ไหม | Utility |
| นโยบายผลิตภัณฑ์คืออะไร ใครตัดสินใจ | Application |
| ต้องการสแต็กสำเร็จรูป (เช่น RTOS abstraction, Wi-Fi) | Middleware (ผ่านเครื่องมือ/ไลบรารีใน M02 เป็นต้นไป) |
แผ่นสรุปหนึ่งหน้า: sdk-layer-cheatsheet.md
8.7 Worked Scenarios
หัวข้อที่มีชื่อว่า “8.7 Worked Scenarios”Scenario A — Temperature Threshold
หัวข้อที่มีชื่อว่า “Scenario A — Temperature Threshold”โจทย์: อ่านอุณหภูมิผ่าน I²C ทุก 1 วินาที ถ้าเกินเกณฑ์ให้เปิด LED และพิมพ์ข้อความทาง UART
| ขั้นตอน | ชั้น |
|---|---|
| เริ่มต้นบอร์ดและขา I²C / LED / UART | HAL / BSP |
| อ่าน I²C, เขียน GPIO, ส่ง UART | Driver API |
| เก็บตัวอย่างล่าสุด N ค่า / ค่าเฉลี่ยเคลื่อนที่ | Utility |
| เปรียบเทียบเกณฑ์ เปลี่ยนสถานะผลิตภัณฑ์ | Application |
Scenario B — Always-On Then Heavy Inference
หัวข้อที่มีชื่อว่า “Scenario B — Always-On Then Heavy Inference”โจทย์: รอจับ Acoustic Activity บนโดเมนพลังงานต่ำ เมื่อมีเหตุการณ์ค่อยปลุกโดเมนสมรรถนะสูงเพื่อรันโมเดลบน Ethos-U55 แล้วอัปเดต UI
| ขั้นตอน | โดเมน / ชั้น |
|---|---|
| รอฟัง / ตรวจกิจกรรมเสียง | Low-Power Domain (M33 ± NNLite) |
| ปลุกและส่งเหตุการณ์ | Application policy + inter-domain path ตามดีไซน์ระบบ |
| preprocessing / จัดหน้าต่างข้อมูล | Utility + แอปบน M55 |
| inference หนัก | Ethos-U55 |
| อัปเดตจอ / LED / ส่งสรุปขึ้นคลาวด์ | Application (+ connectivity ใน M06) |
9. Development Tools and ML Workflow (Preview)
หัวข้อที่มีชื่อว่า “9. Development Tools and ML Workflow (Preview)”9.1 Tools You Will Use in M02
หัวข้อที่มีชื่อว่า “9.1 Tools You Will Use in M02”| เครื่องมือ | บทบาท | อ่านเพิ่ม |
|---|---|---|
| ModusToolbox™ | สร้างโปรเจกต์ จัดการ BSP/library, configurator | ModusToolbox™ · M02 |
| Visual Studio Code | เขียนโค้ด build และ debug (ร่วมกับส่วนขยาย/เวิร์กโฟลว์ที่เลือกใช้) | VS Code · VS Code for ModusToolbox™ |
| KitProg / SWD debugger | flash และไล่บั๊กบนฮาร์ดแวร์จริง | AN235935 (PDF) |
| Library Manager / Project Creator | เลือกและอัปเดตไลบรารีในโปรเจกต์ | Tools package user guide (PDF) |
เอกสารเริ่มต้นที่เป็นประโยชน์จาก Infineon (อ่านเสริมได้):
- AN235935 — Getting started with PSOC™ Edge on ModusToolbox™ (PDF)
- AN241775 — Getting started with HAL on PSOC™ Edge (PDF)
- PSOC™ Edge quick start guide
9.2 DEEPCRAFT™ (Overview)
หัวข้อที่มีชื่อว่า “9.2 DEEPCRAFT™ (Overview)”DEEPCRAFT™ เป็นโซลูชัน/สตูดิโอฝั่ง Infineon สำหรับเวิร์กโฟลว์โมเดล Edge AI ตั้งแต่การเตรียมข้อมูลไปจนถึงการนำโมเดลไปใช้บนอุปกรณ์
ในหลักสูตรนี้:
- M01: รู้ว่ามีเส้นทาง ML บนแพลตฟอร์ม และมันคนละชั้นกับ Driver GPIO
- M05: โฟกัสการเตรียมข้อมูลเซ็นเซอร์ / buffer / หน้าต่างข้อมูลให้พร้อมต่อ inference
การ flash Hello World สำเร็จเป็นเป้าหมายของ M02 ไม่ใช่ M01
10. Module Summary
หัวข้อที่มีชื่อว่า “10. Module Summary”- Edge AI ผลักให้ MCU ต้องรองรับทั้งสมรรถนะ พลังงาน HMI และความปลอดภัย — ไม่ใช่แค่ CPU เร็วขึ้น
- PSOC™ Edge E84 เป็นตัวอย่าง multi-domain: High-Performance (M55 + Ethos-U55) และ Low-Power (M33 + NNLite)
- หน่วยความจำ SoC มีหลายชั้น — มีผลต่อโมเดล กราฟิก และ always-on
- สแต็กจริงของ Infineon มี BSP / PDL / HAL / middleware — หลักสูตรอธิบายผ่าน HAL/BSP + Driver API + Utility + Application
- SDK ≠ IDE — เครื่องมืออยู่คนละชั้นกับไลบรารีที่โค้ดเรียกใช้
- M01 ไม่ flash บอร์ด — คุณพร้อมแล้วสำหรับติดตั้งเครื่องมือใน M02
Next Steps
หัวข้อที่มีชื่อว่า “Next Steps”- ทำแบบฝึกปฏิบัติ: Lab
- เก็บแผ่นสรุปไว้ข้างตัว: Cheatsheet
- เมื่อพร้อม ไปต่อ M02 — ModusToolbox and VS Code for Firmware Development (บทเรียน M02)
- หลัง M02 แล้ว ไปต่อ M03 — GPIO and Basic Peripherals (บทเรียน M03)
References and Further Reading
หัวข้อที่มีชื่อว่า “References and Further Reading”ใช้เป็นจุดเริ่มค้นคว้า — ตรวจเวอร์ชันล่าสุดบนเว็บ Infineon / Arm เสมอ
Platform and architecture
หัวข้อที่มีชื่อว่า “Platform and architecture”- PSOC™ Edge E84 — Infineon product page
- PSOC™ Edge E84 documentation hub
- PSOC™ Edge E84 Microcontrollers Product Brief (PDF)
- PSOC™ Edge family overview
- KIT_PSE84_EVAL — Evaluation Kit
CPU / NPU (Arm developer)
หัวข้อที่มีชื่อว่า “CPU / NPU (Arm developer)”Software stack and tools
หัวข้อที่มีชื่อว่า “Software stack and tools”- ModusToolbox™ software
- AN235935 — Getting started with PSOC™ Edge on ModusToolbox™ (PDF)
- AN241775 — Getting started with HAL on PSOC™ Edge (PDF)
- Infineon mtb-dsl-pse8xxgp (Device Support Library)
- PSOC™ Edge quick start guide
- DEEPCRAFT™ AI Suite
- Visual Studio Code — ใช้จริงใน M02
- PSOC™ Edge application notes index — รายการ AN ด้านกราฟิก ความปลอดภัย พลังงาน connectivity
- KIT_PSE84_EVAL kit guide
- TESAIoT Developer Hub — คลังตัวอย่างโค้ด, flowchart, API Reference สำหรับ PSoC Edge E84 (แหล่งอ้างอิงหลักของหลักสูตร)
- Bitstream Studio — Visual Studio Marketplace — VS Code extension (Sensor Telemetry, Sensor Studio, digital twin) สำหรับโฮสต์ที่เชื่อมต่อกับเฟิร์มแวร์ TESAIoT / PSoC Edge
- TESAIoT_Hackathon (GitHub) — แพ็กฝึกปฏิบัติ:
hex/(firmware),vsix/(Bitstream Studio),flasher/(TESAIoT Flasher),web-app/(telemetry demos)
เช็กความเข้าใจ
หัวข้อที่มีชื่อว่า “เช็กความเข้าใจ”คำถามสั้นสามข้อใน quiz.yaml ผูกกับเป้าหมายของบทเรียนนี้ข้อละหนึ่งคำถาม ลองตอบเองก่อน แล้วค่อยเทียบกับเฉลยและคำอธิบายในไฟล์
ลงมือต่อที่ แล็บ: จับคู่โดเมน MCU กับชั้นของ SDK
Lab · Cheatsheet · ← Table of Contents · M02 →
ตัวอย่างบน TESAIoT Developer Hub
หัวข้อที่มีชื่อว่า “ตัวอย่างบน TESAIoT Developer Hub”ลองของจริงบน TESAIoT Dev Kit: เปิดตัวอย่างบน Developer Hub เพื่ออ่านโค้ด ดาวน์โหลด หรือ flash เฟิร์มแวร์สำเร็จรูป
- บทเรียนที่เกี่ยวข้อง: TESAIoT Firmware Stack 1.1 · เครื่องมือ บอร์ด และ master template
คำถามทบทวน
ลองตอบเองก่อน แล้วค่อยเปิดดูเฉลย
-
งาน “ฟังคำปลุก (wake-word) แบบใช้พลังงานต่ำตลอดคืน” ควรอยู่โดเมนใดตามแนวทางของบทเรียน (เป้าหมายข้อ 1)
- Ethos-U55 NPU
- แอปบนคอร์หลักที่จัด JSON แล้ว publish
- Cortex-M55 + Helium DSP (โดเมนสมรรถนะสูง)
- Cortex-M33 ± NNLite (โดเมนพลังงานต่ำ)
ดูเฉลย
คำตอบ: D. Cortex-M33 ± NNLite (โดเมนพลังงานต่ำ)
หัวข้อ 3.4 และ 3.6: งาน always-on ที่งบพลังงานสำคัญกว่า throughput ควรอยู่โดเมนพลังงานต่ำ (M33 ± NNLite)
-
ใน Scenario A (อ่านอุณหภูมิทุก 1 วินาที) ขั้นตอน “เก็บตัวอย่างล่าสุด N ค่า / ค่าเฉลี่ยเคลื่อนที่” อยู่ชั้นใด (เป้าหมายข้อ 2)
- HAL / BSP
- Driver API
- Utility
- Application
ดูเฉลย
คำตอบ: C. Utility
ตารางใน 8.7: งานช่วยที่ใช้ซ้ำได้ เช่น buffer และค่าเฉลี่ยเคลื่อนที่ อยู่ชั้น Utility ส่วนการเปรียบเทียบเกณฑ์และเปลี่ยนสถานะเป็นของ Application
-
ข้อใดตรงกับประโยค “ติดตั้ง IDE ได้ ≠ เข้าใจ SDK แล้ว” มากที่สุด (เป้าหมายข้อ 3)
- ติดตั้ง VS Code แล้วจะได้ Driver API มาด้วยอัตโนมัติ
- SDK กับ IDE อยู่ชั้นเดียวกัน จึงเลือกใช้อย่างใดอย่างหนึ่งก็พอ
- ModusToolbox™ / VS Code เป็นเครื่องมือสร้าง build และ debug ส่วน SDK คือชุด API ที่โค้ดแอปเรียกใช้
- SDK คือโปรแกรมแก้ไขโค้ดที่มาแทน VS Code
ดูเฉลย
คำตอบ: C. ModusToolbox™ / VS Code เป็นเครื่องมือสร้าง build และ debug ส่วน SDK คือชุด API ที่โค้ดแอปเรียกใช้
หัวข้อ 7.3 SDK Is Not the IDE: เครื่องมือพัฒนาอยู่คนละชั้นกับไลบรารีที่โค้ดเรียกใช้
อ้างอิงบทเรียนนี้
ถ้านำบทเรียนนี้ไปสอน ทำสไลด์ หรือทำเอกสารต่อ ให้อ้างอิงด้วยข้อความนี้ ถ้าดัดแปลงเนื้อหา ให้เติม (ดัดแปลง)ต่อท้ายชื่อบทเรียน
"สถาปัตยกรรม MCU หลายโดเมนและชั้นของ Firmware SDK" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
ข้อความอ้างอิงภาษาอังกฤษ: "Multi-domain MCU Architecture and Firmware SDK Layers" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0
บทเรียนนี้ดัดแปลงจากต้นฉบับด้านล่าง เมื่ออ้างอิงให้คงเครดิตต้นฉบับไว้ด้วย
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C1/M01/README.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 1 (C1/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
เนื้อหาเผยแพร่ภายใต้ CC BY-NC 4.0 นำไปใช้ต่อในงานที่ไม่ใช่เพื่อการค้าได้ โปรดอ้างอิงสมาคมสมองกลฝังตัวไทย (TESA) ทุกครั้ง · วิธีอ้างอิง TESA