TinyGo یک کامپایلر زبان Go است که برای استفاده در زمینه هایی مانند میکروکنترلرها، WASM و توسعه ابزار خط فرمان در نظر گرفته شده است.
TinyGo از ابزارها و کتابخانه های نوشته شده در پروژه Go استفاده می کند، در حالی که یک روش جایگزین برای کامپایل برنامه ها بر اساس کار پروژه LLVM ارائه می دهد.
اهداف پروژه:
- از حداقل حجم فایل های اجرایی اطمینان حاصل کنید.
- از بیشترین تعداد میکروکنترلر پشتیبانی می کند.
- پشتیبانی از WebAssembly
- پشتیبانی خوب از CGo
- پشتیبانی از کد Go اصلی بدون تغییر.
مثال استفاده برای تعویض LED روی میکروکنترلر:
بسته اصلی
وارد كردن (
"دستگاه"
"زمان"
)
func main () {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
برای {
led.Low()
زمان. خواب (زمان. میلی ثانیه * 1000)
led.High()
زمان. خواب (زمان. میلی ثانیه * 1000)
}
}
نسخه 0.6.0 شامل تغییرات زیادی است. موارد اصلی مربوط به بهبود پشتیبانی از CGo، js.FuncOF (Go 1.12+)، و همچنین دو برد توسعه جدید است: Adafruit Feather M0 و Adafruit Trinket M0.
لیست کامل تغییرات در دسترس است صفحه پروژه GitHub.
منبع: linux.org.ru