CodeBlanks Logo Icon CodeBlanks

TinyGo

TinyGo alternatif derleyicisini öğrenirsin.

TinyGo

TinyGo, LLVM tabanlı alternatif bir Go derleyicisidir. Mikrodenetleyiciler (Arduino, ESP32, Raspberry Pi Pico) ve küçük WASM modülleri için tasarlanmıştır; standart Go'nun MB'lık ikilisi yerine KB'lık çıktılar üretir.

tinygo flash -target=pico ./blink
tinygo build -o app.wasm -target=wasm ./web

Bedeli: standart kütüphanenin bir kısmı ve reflect desteği sınırlıdır; GC daha basittir.

machine paketi

TinyGo'nun machine paketi pinlere doğrudan erişir. Klasik "LED yak-söndür" örneği:

led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
    led.High()
    time.Sleep(500 * time.Millisecond)
    led.Low()
    time.Sleep(500 * time.Millisecond)
}

Kısıtlı RAM'de (ör. 264 KB) heap ayırmayı en aza indirmek ve sabit boyutlu diziler kullanmak önemlidir.

Uygulama Yanıp sönme deseni

Donanım olmadan blink mantığını yaz: type Pin struct{ acik bool } ve func (p *Pin) Toggle() durumu tersine çevirsin. Bir pini 3 kez Toggle et ve her adımda durumu yazdır.

Başlangıç kodu

main.go
package main

import "fmt"

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
package main

import "fmt"

type Pin struct{ acik bool }

func (p *Pin) Toggle() { p.acik = !p.acik }

func main() {
    led := &Pin{}
    for i := 0; i < 3; i++ {
        led.Toggle()
        fmt.Println(led.acik)
    }
}

Beklenen çıktı

true
false
true

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İşletim sistemi olmayan bir mikrodenetleyici için hangisi uygundur?

  • GOOS=linux go build
  • GOOS=js go build
  • cgo
  • TinyGo Doğru cevap

Açıklama: Standart Go bir işletim sistemi bekler; TinyGo doğrudan donanım (bare metal) hedeflerini destekler.

2 Karta yükle

Soru
tinygo ____ -target=pico ./blink
Cevap
tinygo flash -target=pico ./blink

Açıklama: tinygo flash derleyip programı doğrudan karta yazar.

3 Derleyici ve hedef

Kavram Anlamı
go build Sunucu, masaüstü
tinygo flash Mikrodenetleyici
tinygo -target=wasm Küçük WASM
machine.LED Kart üstü LED

Uzman bölümündeki tüm dersler