人生似水岂无涯,浮云吹作雪,世味煮成茶...

ESP32上运行TinyGo

2022年05月08日 20:02    0 人评论    1523 人阅读

关于 TinyGo

TinyGo 基于LLVM,是针对小型设备的 Go 编译器,使得在 MCU 上运行 Go 语言,类似于 MicroPython。它目前支持很多 MCU 硬件设备,比如 AVR、STM32、ESP32、ESP8266等。其官方网站为 https://tinygo.org。

安装环境

下载 TinyGo 源码:

$ git clone --recursive https://github.com/tinygo-org/tinygo.git
$ cd tinygo

安装LLVM编译器:

echo 'deb http://apt.llvm.org/buster/ llvm-toolchain-buster-10 main' | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install clang-10 llvm-10-dev lld-10 libclang-10-dev

执行安装:

$ go install

导出环境变量:

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

查看 TinyGo 安装情况:

$ tinygo version
tinygo version 0.16.0 linux/amd64 (using go version go1.14.3 and LLVM version 10.0.1)

移植 TinyGo 到 ESP32

首先要安装 ESP32 工具链,具体操作可以参考以下链接:

https://docs.espressif.com/projects/esp-idf/en/release-v3.0/get-started/linux-setup.html#standard-setup-of-toolchain-for-linux

另外还需要安装 esptool 烧录工具,具体请参考下面链接:

https://github.com/espressif/esptool#easy-installation

以上准备都做好后,将ESP32开发板插入电脑,然后执行以下命令烧录examples/blinky1示例进行测试:

$ tinygo flash -target=esp32-coreboard-v2 -port=/dev/ttyUSB0 examples/blinky1 esptool.py v3.0-dev
Serial port /dev/ttyUSB0
Connecting........_
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, Coding Scheme None
Crystal is 40MHz
MAC: 24:0a:c4:10:d3:cc
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x032f
Compressed 912 bytes to 703...
Wrote 912 bytes (703 compressed) at 0x00001000 in 0.1 seconds (effective 107.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

可以看到ESP32开发板上的LED每隔1秒不停地闪烁。


如果文章对您有所帮助, 请随意打赏! 您的支持将鼓励我写出更好的文章!

发表评论 已发布 0