TinyGo - คอมไพเลอร์ Go ขนาดเล็กที่ใช้ LLVM
(github.com/tinygo-org)- ใช้งานได้กับไมโครคอนโทรลเลอร์, WebAssembly (WASM/WASI) และเครื่องมือ CLI เป็นต้น
- รองรับแพ็กเกจส่วนใหญ่ของไลบรารีมาตรฐาน และสามารถคอมไพล์โค้ด Go ได้โดยไม่ต้องแก้ไข
- ใช้ LLVM ภายในเพื่อสร้างโค้ดที่มีขนาดเล็กและมีประสิทธิภาพ
- รองรับ CGo ได้อย่างยอดเยี่ยม
4 ความคิดเห็น
ตอนที่ลองใช้ TinyGo กับบอร์ด Arduino Nano 33 (ที่ใช้ nrf52 หรือ Nano 33 IoT) ฟังก์ชันพื้นฐานต่าง ๆ ทำงานได้ค่อนข้างดีทีเดียว (มีปัญหาว่า BLE bonding ใช้งานไม่ได้...)
ผมเองก็คิดว่าน่าจะเอาไปใช้เชิงพาณิชย์ได้ยากเหมือนกัน แต่ก็ยังสนุกดีเพราะ
go channelทำงานได้จริงกว่าที่คิด เลยพอเหมาะสำหรับลองทำอะไรเล่น ๆถ้าเป็นเฟิร์มแวร์ยุคนี้ Zephyr RTOS (c/c++) ก็ดูน่าสนใจอยู่พอสมควร อย่างแรกคือได้รับการสนับสนุนจาก Linux Foundation และยังถูกใช้อย่างจริงจังเป็น RTOS หลักของ Nordic Semi ด้วย อีกทั้งยังมีจุดแข็งด้านการรองรับโปรโตคอลที่หลากหลายและเครื่องมือพัฒนาด้วย
ในกรณีของ Rust เคยได้ยินมาว่าหลายครั้งต้องทำแบบ
no_stdเลยไม่ง่ายนัก แต่ผมก็ยังไม่เคยลองนำไปใช้จริงเหมือนกัน เลยอยากรู้เหมือนกันครับ ฮ่า ๆไมโครคอนโทรลเลอร์ที่รองรับยังค่อนข้างจำกัด และการรองรับตระกูลผลิตภัณฑ์อย่าง STM, NXP, TI ที่ใช้งานกันแพร่หลายก็ดูจะยังไม่ค่อยดีนัก
สำหรับ Esp32 ก็ยังใช้ Wi‑Fi กับ Bluetooth ไม่ได้ และถ้าจะบอกว่าพร้อมสำหรับโปรดักชันแล้วก็ดูจะยังขาดอยู่อีกพอสมควร
ส่วนตัวแล้ว ในบรรดาโปรเจกต์นำภาษาโมเดิร์นมาใช้กับ MCU แบบนี้ ผมคาดหวังกับ Rust ในงาน embedded มากที่สุด
สวัสดีครับ/ค่ะ พอดีที่คุณพูดถึงระหว่างทางน่าสนใจมาก เลยขอถามหน่อยครับ/ค่ะ
เมื่อก่อนผม/ฉันเคยมีประสบการณ์เรียนและเขียน fw ด้วย C อยู่บ้าง (stm, ti) แต่รู้สึกว่าไม่ค่อยเหมาะกับตัวเองเลยเลิกไปแล้ว ตอนนี้เวลาผ่านมานานพอสมควร เลยอยากกลับไปศึกษาในสายนี้อีกครั้งในแบบที่โมเดิร์นขึ้นหน่อย(?)
สำหรับงานเฟิร์มแวร์ ตอนนี้ Rust ถือว่ายังใกล้กับเทรนด์มากกว่าอยู่ไหมครับ/คะ?
การนำ Rust ไปใช้ในงานเฟิร์มแวร์ยังพูดได้ไม่เต็มปากนักว่า production ready แน่นอน~~~ แต่ตอนนี้ก็กำลังขยายการรองรับอุปกรณ์ที่ใช้งานได้อย่างรวดเร็วมากครับ..
ข่าวที่น่าสนใจคือ ดูเหมือนว่าช่วงหลังมานี้จะมีการประชุมลักษณะคล้ายงานเตรียมการล่วงหน้าเพื่อใส่ Rust เข้าไปในมาตรฐาน AutoSAR ด้วย..
ฝั่งเฟิร์มแวร์นั้น ด้วยสภาพแวดล้อมการทำงานที่ค่อนข้างเฉพาะตัว ถ้าเกิดบั๊กที่เกี่ยวกับ unmanaged memory ขึ้นมา ก็อาจร้ายแรงถึงขั้นวิกฤตได้ครับ..
ในฝั่งเฟิร์มแวร์ MCU
software emulation in embedded,
perfect unit testing without boards
หัวข้อประมาณนี้ถูกนำเสนอในงานสัมมนาค่อนข้างบ่อยครับ..
ถ้าเป็นหัวข้อขั้นสูงหน่อย ก็คงประมาณ onnx in mcu ไหมครับ ??