(摘) Tinygo 基于LLVM,针对小型设备的Go编译器

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

TinyGo是一个用于微控制器的Go编译器,使用WebAssembly(WASM)和命令行工具。它重用了Go语言工具和LLVM一起使用的库,编译用Go编程语言编写的程序。

原示例:

package main

import (
    "machine"
    "time"
)

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

        led.High()
        time.Sleep(time.Millisecond * 1000)
    }
}

看起来眼熟却又有点乱。因为是golang结合单片机搞出来的。

老家在这里:https://tinygo.org

源码:https://github.com/tinygo-org/tinygo

已经支持的硬件

Adafruit Circuit Playground Express
Adafruit ItsyBitsy M0
Arduino Uno
BBC:Microbit
ST Micro STM32F103XX "Bluepill"
Digispark
Nordic Semiconductor PCA10031
Nordic Semiconductor PCA10040
Nordic Semiconductor PCA10056
Makerdiary nRF52840-MDK
Phytec reel board

Linux下安装

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.1/tinygo_0.7.1_amd64.deb sudo dpkg -i tinygo_0.7.1_amd64.deb

或者arm版本,例如Pi

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_armhf.deb sudo dpkg -i tinygo_0.7.0_armhf.deb

export PATH=$PATH:/usr/local/tinygo/bin

tinygo version

对于使用AVR(Arduino)还需要依赖: sudo apt-get install gcc-avr sudo apt-get install avr-libc sudo apt-get install avrdude

编译并烧录到arduino:tinygo flash -target=arduino examples/blinky1

接口 硬件支持 TinyGo支持
GPIO YES YES
UART YES YES
SPI YES Not yet
I2C YES YES
ADC YES YES
PWM YES YES

看起来暂时没支持I2C,它可以将Pi一起给完善了,不过那可能就搞“大”了(毕竟只是针对单片机)。

简单的看完官网,还是没明白能如何用它,或者语句是什么,或许还需要深入看看代码或者谷哥一下。

相关文章