TinyGo-0.39.0 windows/amd64在 Go 1.25下简单演示

 

 

TinyGoGo 1.25 环境下的核心优势

  1. 跨平台编译增强
    得益于 Go 1.25 的容器感知调度和 DWARF v5 调试支持,TinyGo 在嵌入式场景的调试效率提升约30%。通过 tinygo build -target=wasm 生成的 WebAssembly 模块可无缝对接支持 Go 1.25 的运行时环境。
  2. 硬件交互标准化
    新版本支持 GOOS=none 提案的预备接口,开发者可为裸金属设备定制板级支持包(BSP)。例如实现 runtime.hwinit1 函数初始化硬件,代码体积较传统方案减少60%。
  3. 性能优化组合
    TinyGo 0.30+ 适配 Go 1.25 实验性垃圾回收器(greenteagc),在微控制器上实现:

步骤 1:用 TinyGo 编译生成二进制文件

先通过 TinyGo 编译出 .bin 格式的固件(无需自动烧录,仅生成文件):

bash

#呼吸灯
package main

import (
    "machine"
    "time"
)

func main() {
    led := machine.LED
    led.Configure(machine.PinConfig{Mode: machine.PinOutput})
    for {
       led.High()
       time.Sleep(time.Second / 2)

       led.Low()
       time.Sleep(time.Second / 2)
    }
}

# 生成二进制文件(输出到当前目录的 firmware.bin)
tinygo build -target=nodemcu -o firmware.bin main.go

步骤 2:使用 esptool.py 手动烧录

ESP8266 芯片需要将固件写入特定地址(通常从 0x00000 开始),执行以下命令:

bash
# 替换 COMx 为你的 NodeMCU 实际串口(如 COM3、COM5)
esptool.py --port COMx --baud 115200 write_flash 0x00000 firmware.bin
我是COM7
esptool --port COM7 --baud 115200 write_flash 0x00000 firmware.bin
命令参数说明:
--port COMx:指定 NodeMCU 连接的串口(Windows 通常为 COMx,Linux 为 /dev/ttyUSBx,macOS 为 /dev/tty.usbserial-*)。
--baud 115200:烧录波特率(ESP8266 推荐 115200)。
write_flash 0x00000:指定烧录起始地址(ESP8266 固件通常从 0x00000 开始)。
firmware.bin:TinyGo 编译生成的二进制文件路径。

验证烧录成功
烧录完成后,按下 NodeMCU 的 RST 复位键,程序会自动运行。若需查看输出,可通过串口工具(如 PuTTY、minicom)连接对应串口(波特率通常为 115200)查看日志。

注意事项:
确保 firmware.bin 是针对 nodemcu(ESP8266)编译的,TinyGo 针对不同芯片的二进制文件不通用。
若烧录后程序无法运行,检查编译命令是否正确(必须包含 -target=nodemcu)。
部分 NodeMCU 可能需要降低波特率(如 --baud 9600)以解决烧录失败问题。
通过以上步骤,即可手动完成 TinyGo 程序的烧录过程。

下载地址:

http://pan.webm.cc:90/s/lCEiiLQUjUva?pwd=UYKe

版权声明:
作者:漏网的鱼
链接:https://www.csev.cn/share/jiqiao/20250820737.html
来源:彩色动力-测试分享
版权声明:本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。
THE END
根据我国《计算机软件保护条例》第十七条规定:“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享
二维码
打赏
< <上一篇
下一篇>>
微信扫一扫关注蓝威网官方公众号

微信扫一扫关注蓝威网官方公众号