LabWired ซอฟต์แวร์จำลองบอร์ด MCU ทดสอบเฟิร์มแวร์ได้โดยไม่ต้องใช้ฮาร์ดแวร์จริง

LabWired พัฒนาโดย Andrii Shylenko เป็นซอฟต์แวร์จำลองการทำงานของเฟิร์มแวร์ MCU (MCU Firmware Simulation Core) ภายใต้สัญญาอนุญาต MIT สามารถรันเฟิร์มแวร์ที่คอมไพล์แล้วบน CPU และอุปกรณ์ต่อพ่วงจำลอง พร้อมบันทึกข้อมูล UART, การสื่อสารผ่านบัส, สถานะรีจิสเตอร์ และรองรับการทดสอบซ้ำในระบบ CI

ตัวจำลองรองรับคอร์ Arm Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33, สถาปัตยกรรม RISC-V และ Xtensa LX6 และ LX7 (รองรับ ESP32 บางรุ่น) จุดเด่นคือช่วยให้การทดสอบเฟิร์มแวร์รวดเร็วยิ่งขึ้น เพราะการทดสอบบนบอร์ดจริงต้องเตรียมฮาร์ดแวร์ แฟลชเฟิร์มแวร์ใหม่ทุกครั้ง และหากเกิดข้อผิดพลาด นักพัฒนามักเห็นเพียงไฟ LED ที่ไม่ติด โดยไม่มีข้อมูลสำหรับวิเคราะห์ปัญหา หากต้องรองรับหลายบอร์ดก็ยิ่งเพิ่มความยุ่งยาก

ตัวจำลองบอร์ด MCU ของ LabWired

โปรเจกต์นี้แตกต่างจาก CPU/MCU Emulator ทั่วไปใน 2 ด้านหลัก ได้แก่

  1. จำลองการทำงานของบอร์ดทั้งระบบ ไม่ใช่แค่ชิป โดยจำลองเซนเซอร์ จอแสดงผล และอุปกรณ์ผ่านบัสต่าง ๆ ทำให้สามารถตรวจสอบการสื่อสาร I2C, การส่งข้อมูล SPI หรือคำสั่งที่ส่งไปยังจอแสดงผลได้
  2. มีเอกสาร Fidelity Ledger ระบุข้อจำกัดของโมเดลอย่างชัดเจน รวมถึงส่วนที่ตัวจำลองใช้วิธีลัดแทนการทำงานของฮาร์ดแวร์จริง เพื่อให้นักพัฒนาทราบว่ามีการจำลองส่วนใดบ้างบนแพลตฟอร์มที่รองรับ เช่น STM32L476, RP2040, nRF52840 และ ESP32

labwired cli

LabWired ทำงานหลักผ่าน CLI โดย Andrii ได้แชร์ตัวอย่างการใช้ PlatformIO คอมไพล์ Unity Test Firmware สำหรับ nRF52840 จำลอง จากนั้นใช้ LabWired รันทดสอบโดยไม่ต้องใช้บอร์ดจริงหรือ J-Link ผ่านคำสั่งบน Linux


ผลการทดสอบทั้ง 3 รายการผ่านทั้งหมดภายในเวลาเพียง 1.18 วินาที ซึ่งเร็วกว่าการทดสอบบนฮาร์ดแวร์จริง โดยมีตัวอย่างและรายละเอียดการแก้ไขบันทึกไว้ใน issue บน GitHub

ถ้าเป็นแอปพลิเคชันบนเทอร์มินัล เหตุใดภาพด้านบนจึงเป็นเว็บแอปพลิเคชัน? นั่นเป็นเพราะมีบริการ “Browser Playground” ที่ให้ทดลองใช้งานบอร์ด NUCLEO-L476RG จำลอง ซึ่งเชื่อมต่อกับเซนเซอร์อัลตราโซนิก จอ Nokia และ Logic Analyzer

ซอร์สโค้ดภาษา Rust ของ LabWired Core เปิดให้ใช้งานบน GitHub สามารถเรียกใช้งานผ่านเทอร์มินัล ระบบ CI หรือ AI Coding Agent ได้ ภายในไดเรกทอรีตัวอย่างมีการกำหนดค่าบอร์ดมากกว่า 200 รูปแบบสำหรับการทดสอบ และสามารถดูดูรายการบอร์ดและอุปกรณ์ต่อพ่วงที่รองรับได้จาก Validation Matrix ทั้งนี้โปรเจกต์ใช้ Claude Code ในการพัฒนา แต่ดูเหมือนว่าจะเน้นการใช้งานร่วมกับ Model Context Protocol (MCP) เป็นหลัก

ซอร์สโค้ดบางส่วนเป็นโอเพนซอร์ส ขณะที่บางส่วนไม่ได้เปิดเผย โดย GitHub ระบุว่า

Repository นี้ครอบคลุมส่วน Core Simulator และเครื่องมือสำหรับตรวจสอบความถูกต้อง ได้แก่ CPU, Bus, Memory, Peripheral, External Device, CLI, Test Runner, Debug Adapter และ Snapshot/Trace Tools ส่วน Application UI, Hosted Playground และบริการอื่น ๆ ของผลิตภัณฑ์จะอยู่ภายนอกแพ็กเกจนี้

นอกจากนี้ยังมีหน้าราคาให้เลือกใช้งาน โดยผู้ใช้สามารถติดตั้งและเชื่อมต่อระบบด้วยตนเอง หรือเลือกซื้อแพ็กเกจที่มาพร้อม “LabWired AI Tokens” หากต้องการใช้โครงสร้างพื้นฐานของ LabWired สำหรับการทดสอบเฟิร์มแวร์ได้

ราคาของ LabWired

แปลจากบทความ : LabWired allows engineers to test compiled firmware on simulated MCU boards (CPU and peripherals)

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
โฆษณา