TinyGo คือคอมไพเลอร์ภาษา Go ที่มีจุดประสงค์เพื่อใช้ในด้านต่างๆ เช่น ไมโครคอนโทรลเลอร์, WASM และการพัฒนายูทิลิตีบรรทัดคำสั่ง
TinyGo ใช้ยูทิลิตี้และไลบรารีที่เขียนในโปรเจ็กต์ Go ในขณะเดียวกันก็มอบวิธีการอื่นในการคอมไพล์โปรแกรมตามงานของโปรเจ็กต์ LLVM
วัตถุประสงค์ของโครงการ:
- ตรวจสอบให้แน่ใจว่าไฟล์ปฏิบัติการมีขนาดขั้นต่ำ
- รองรับไมโครคอนโทรลเลอร์จำนวนมากที่สุด
- การสนับสนุน WebAssembly
- รองรับ CGo ที่ดี
- รองรับโค้ด Go ดั้งเดิมโดยไม่มีการเปลี่ยนแปลง
ตัวอย่างการใช้งานในการสลับ LED บนไมโครคอนโทรลเลอร์:
แพ็คเกจหลัก
นำเข้า (
"เครื่องจักร"
"เวลา"
)
ฟังก์ชั่นหลัก () {
นำ := เครื่อง LED
led.Configure (machine.PinConfig {โหมด: machine.PinOutput})
สำหรับ {
นำ.ต่ำ()
time.Sleep(เวลา.มิลลิวินาที * 1000)
นำ.สูง()
time.Sleep(เวลา.มิลลิวินาที * 1000)
}
}
เวอร์ชัน 0.6.0 มีการเปลี่ยนแปลงมากมาย ประเด็นหลักเกี่ยวข้องกับการปรับปรุงการรองรับ CGo, js.FuncOF (Go 1.12+) รวมถึงบอร์ดพัฒนาใหม่สองบอร์ด: Adafruit Feather M0 และ Adafruit Trinket M0
รายการการเปลี่ยนแปลงทั้งหมดสามารถดูได้ที่ หน้าโครงการ GitHub.
ที่มา: linux.org.ru