Go语言编译器TinyGo,基于LLVM,在微控制器和小系统上编译和运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言编译器TinyGo,基于LLVM,在微控制器和小系统上编译和运行相关的知识,希望对你有一定的参考价值。
参考技术ATinyGo是一个为微控制器、WebAssembly(Wasm)和命令行工具等小型场景设计的Go语言编译器。TinyGo重用了Go语言工具和LLVM使用的库,以编译用Go语言编写的程序。目前,该项目在GitHub上已经积累了10.1k的Star。
如下为一个示例程序,当运行在任何支持的带板载LED的主板上时,则会点亮内置LED。
上述程序可以在单片机、Adafruit ItsyBitsy M0微控制器或任何支持的带内置LED的板上进行编译和不需要修改的运行,只要设置正确的TinyGo编译器目标即可。例如,设置如下目标可以编译和点亮 单片机。
项目概述
TinyGo项目旨在将Go语言引入到具有单进程或核心的微控制器和小系统。TinyGo类似于emgo,但主要的区别在于作者想要保留Go内存模型。另一个区别在于TinyGo在内部使用LLVM,因而可以获得更小更高效的代码以及更高的灵活性。
创建TinyGo项目的初衷是,如果Python可以在微控制器上运行,Go语言当然也应该能够在更低级微设备上运行。
支持设备
你可以为微控制器、WebAssembly和Linux编译TinyGo程序。目前,TinyGo支持以下85种微处理器板。
更多技术细节请参阅原项目。
以上是关于Go语言编译器TinyGo,基于LLVM,在微控制器和小系统上编译和运行的主要内容,如果未能解决你的问题,请参考以下文章
Rust 语言 1.25 版本发布,编译器升级至 LLVM 6