บทเรียน 2.1 — ModusToolbox™ และ VS Code: สร้าง build flash debug

แยกบทบาทของ ModusToolbox™, VS Code, KitProg3 และ SDK ตั้ง environment ให้ครบ เลือก BSP ให้ตรงคิต และรู้วิธีไล่อาการเสียที่พบบ่อย

หลักสูตร TESA Firmware SDK สำหรับ Edge AI — โมดูล 2 · บทเรียน 1

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เป้าหมาย

เมื่อจบบทเรียนนี้ คุณจะ

  1. ระบุว่างานที่กำหนดให้ (สร้างโปรเจกต์, แก้โค้ด, flash/debug, เรียก API) เป็นหน้าที่ของ ModusToolbox™, VS Code, KitProg3/OpenOCD หรือ SDK
  2. ระบุองค์ประกอบ environment ที่ต้องมีก่อน build (tools, Arm GCC, VS Code, สิทธิ์ USB ของ KitProg) และเลือก BSP ให้ตรงกับคิตในมือ
  3. ใช้ตาราง troubleshooting เชื่อมอาการเสียกับสาเหตุที่น่าจะเป็นได้ถูกต้อง
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ก่อนเริ่ม

  • ผ่าน บทเรียน 1.2 — แล็บ M01 มาแล้ว
  • ต้องใช้บอร์ดจริง: TESAIoT Dev Kit หรือ Eva Kit (KIT_PSE84_EVAL) พร้อมสาย USB
  • บทเรียนเชิงปฏิบัติ ใช้เครื่องพัฒนา + บอร์ดจริง (ต่างจากโมดูล 1 ที่เป็นแนวคิดล้วน)

หมายเหตุเวอร์ชัน: ให้ยึดเวอร์ชันที่ชุดแล็บของคุณกำหนดเป็นหลัก — คู่มือ Infineon มักแนะนำ ModusToolbox™ tools 3.6 หรือใหม่กว่า

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ดูของจริงก่อน — สามเครื่องมือ สามบทบาท

จากบทเรียนที่แล้วเรารู้ว่า TESA Firmware SDK คือชุดไลบรารี/API ที่แอปเรียกใช้ ส่วนเครื่องมือพัฒนาเป็นอีกชั้นหนึ่ง

เครื่องมือ บทบาทหลักในหลักสูตรนี้
ModusToolbox™ ติดตั้ง toolchain, สร้างโปรเจกต์จาก BSP/template, จัดการ library, เปิด configurator
Visual Studio Code เขียนโค้ด, IntelliSense, build/debug ผ่านเวิร์กโฟลว์ที่ ModusToolbox™ รองรับ
KitProg3 / OpenOCD (บนคิต) Flash และ debug บนฮาร์ดแวร์จริง

Key phrase: ModusToolbox™ ใช้สร้างโปรเจกต์และจัดการ toolchain/library — VS Code ใช้เขียนโค้ดและ debug — SDK คือ API ที่แอปเรียกใช้

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แนวคิด (1) — ติดตั้งอะไรบ้างสำหรับ PSOC™ Edge

จาก PSOC™ Edge quick start guide ควรติดตั้งอย่างน้อย:

  1. ModusToolbox™ Setup ตามคู่มือติดตั้งของ OS
  2. Arm® GNU Toolchain (GCC)
  3. Base tools package เวอร์ชันที่รองรับ Edge (3.6+ ตาม quick start)
  4. IDE ตัวเลือก — หลักสูตรนี้เลือก VS Code
  5. Programming tools package ตามที่ Setup เสนอ

LLVM Embedded Toolchain for Arm ไม่รวมใน Setup มาตรฐาน — ติดตั้งเพิ่มเมื่อคู่มือของชุดที่ใช้ระบุ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แนวคิด (2) — สร้างโปรเจกต์ด้วย Project Creator

ลำดับมาตรฐาน:

  1. เปิด ModusToolbox™ Dashboard หรือเปิด Project Creator โดยตรง
  2. เลือก Kit / BSP ที่ตรงกับบอร์ดในมือ (เช่นตระกูล KIT_PSE84_EVAL)
  3. เลือก code example — แนะนำเปิดตัวอย่างจาก TESAIoT Developer Hub (กรอง Board/Domain ตามคิตในมือ)
  4. ใน Target IDE เลือก Visual Studio Code
  5. ระบุโฟลเดอร์ปลายทาง แล้วให้เครื่องมือ clone BSP/template และดึงไลบรารีจาก manifest

ผลลัพธ์ที่คาดหวัง: โครงสร้างโปรเจกต์พร้อม make · ไลบรารี/BSP ที่ดึงมาแล้ว · ไฟล์ *.code-workspace

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แนวคิด (3) — เปิดโปรเจกต์ให้ถูกวิธีใน VS Code

  1. สร้างโปรเจกต์ด้วย Project Creator โดยเลือก target เป็น VS Code
  2. เปิด VS Code ด้วยมือ
  3. เปิดไฟล์ {project-name}.code-workspace ในโฟลเดอร์โปรเจกต์

อย่าเปิดแค่โฟลเดอร์ย่อยแบบสุ่มจน task/launch configuration หาย — ให้เปิดไฟล์ workspace ที่เครื่องมือสร้างให้

Build = เรียก ระบบ make ของโปรเจกต์ ที่ ModusToolbox™ สร้างไว้ (ไม่ว่าจะกดปุ่มใน VS Code หรือใช้เทอร์มินัล)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แนวคิด (4) — BSP ต้องตรงคิตเสมอ

BSP (Board Support Package) บอกโปรเจกต์ว่าใช้ชิป/บอร์ดใด ขาและอุปกรณ์บนบอร์ดแมปอย่างไร และต้องดึงไลบรารีใดเป็นอย่างน้อย

การเลือก BSP ผิดตอนสร้างโปรเจกต์ = โค้ดอาจ build ได้แต่ ขา LED/UART ไม่ตรงของจริง

กฎง่าย ๆ: เลือก BSP ให้ตรงกับคิตที่เสียบอยู่

Program vs Debug

การกระทำ ความหมาย
Program / Flash เขียนเฟิร์มแวร์ลงหน่วยความจำของอุปกรณ์
Debug มักรวมการ program แล้วหยุดที่ breakpoint / step โค้ดผ่าน GDB + OpenOCD หรือ probe อื่น
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แนวคิด (5) — สแต็กเดียวกับที่เรียนในโมดูล 1

VS Code (edit / build / debug)
        │
ModusToolbox™ tools (create, libraries, configurators, OpenOCD)
        │
Application  →  Utility / Driver API (TESA Firmware SDK ในหลักสูตร)
        │
BSP / PDL / HAL (Device Support)
        │
PSOC™ Edge hardware

โมดูล 2 ทำให้คุณพร้อมสร้างและรันโปรเจกต์บนเครื่องมือจริง — โมดูล 3 จะให้คุณเรียก Driver API บนโปรเจกต์นี้อย่างตั้งใจ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ตัวอย่างสมบูรณ์ — เกณฑ์ผ่านขั้นต่ำของโมดูลนี้

เป้าหมายขั้นต่ำ (Hello World path):

  1. Build โปรเจกต์ตัวอย่างผ่าน หรือ flash HEX จากแพ็กแล็บสำเร็จ
  2. Program ลงบอร์ดสำเร็จ
  3. เห็นพฤติกรรมที่ยืนยันได้ เช่น LED กระพริบ และ/หรือข้อความบน serial terminal / telemetry ใน Bitstream Studio
  4. เปิด debug session ได้ อย่างน้อย halt ที่ main หรือ breakpoint ง่าย ๆ (เมื่อใช้เส้นทาง build จากซอร์ส)

เปิด Device Configurator จากโฟลเดอร์โปรเจกต์:

make device-configurator
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ตัวอย่างสมบูรณ์ — ไล่อาการเสียที่พบบ่อย

อาการ แนวทางตรวจ
บอร์ดไม่ปรากฏ / ไม่ program ได้ สาย USB, พอร์ต, KitProg3, ไดรเวอร์, ลองพอร์ตอื่น
Build หา toolchain ไม่เจอ ติดตั้ง GCC/tools ตาม Setup, เปิดเทอร์มินัลที่ถูกต้อง
Build ผ่านแต่ไม่มีอาการบนบอร์ด BSP ผิดคิต, ยังไม่ได้ program, ดูคนละ LED/UART
Debug ต่อไม่ได้ OpenOCD/KitProg, ปิดโปรแกรมที่ครองพอร์ต, ตรวจ launch config
Flash HEX แล้วไม่มี telemetry VSIX กับ HEX คนละเวอร์ชัน, baud ไม่ใช่ 921600, ยังไม่ Link ใน Bitstream Studio

ดูตารางเต็ม (6 แถว) ใน README.md หัวข้อ 6.5

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ฝึกเติม/แล็บ

แล็บ: สร้าง build flash และ debug โปรเจกต์เฟิร์มแวร์ — บทเรียนเชิงปฏิบัติ ~90–120 นาที รวมติดตั้ง

  • ติดตั้ง environment ให้ครบตามเช็กลิสต์
  • สร้างโปรเจกต์จาก BSP ที่ตรงกับคิตในมือ
  • Build → Program → เห็นผลลัพธ์บนบอร์ดจริง
  • เปิด debug session อย่างน้อยหนึ่งครั้ง
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

เช็กความเข้าใจ

  1. เครื่องมือใดทำหน้าที่ "สร้างโปรเจกต์จาก BSP/template และจัดการ toolchain / library"
  2. ข้อใดเป็นเงื่อนไขที่บทเรียนย้ำว่า "ต้องตรง" ก่อนคาดหวังผลบนบอร์ด
  3. Flash HEX แล้วแต่ไม่มี telemetry ใน Bitstream Studio ตารางในหัวข้อ 6.5 ชี้สาเหตุใด
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

ไปต่อ

  • Environment ที่ถูกต้อง = tools + GCC + VS Code + สิทธิ์เข้าถึง KitProg
  • เปิดโปรเจกต์ผ่าน .code-workspace แล้ว build/debug ตามเวิร์กโฟลว์ Infineon
  • BSP ต้องตรงคิต; ใช้ Device Configurator และ Library Manager เป็นทางหลัก
  • Flash + Debug บนบอร์ดจริง คือเกณฑ์ผ่านของโมดูลนี้ — พร้อมแล้วสำหรับ โมดูล 3 — GPIO และอุปกรณ์ต่อพ่วงพื้นฐาน

บทเรียนโมดูล 3 →

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0

แหล่งที่มา

"บทเรียน 2.1 — ModusToolbox™ และ VS Code: สร้าง build flash debug" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย
(Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program
สัญญาอนุญาต CC BY-NC 4.0

เนื้อหาต้นฉบับโดย ผศ.ดร.สันติ นุราช ภาควิชาวิศวกรรมระบบควบคุมและเครื่องมือวัด คณะวิศวกรรมศาสตร์
มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (KMUTT) (https://github.com/drsanti) ภายใต้การสนับสนุนของสมาคมสมองกลฝังตัวไทย (TESA)
นำเข้าจาก drsanti/TESAIoT-Courses — C1 (commit 287c218) ภายใต้สัญญาอนุญาต CC BY 4.0

ไม่มีภาพจากบุคคลที่สามในสไลด์ชุดนี้

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · ดัดแปลงจากงานของ ผศ.ดร.สันติ นุราช (KMUTT) · CC BY-NC 4.0