Tinygo,一個基於 LLVM 的 Go 編譯器

小哥

TinyGo:適用於小地方的 Go 編譯器

如果您使用微控制器並且是 Go 的愛好者, Tinygo 可能適合你, 從此 開發了一個 Go p 編譯器適用於需要緊湊表示結果代碼和低資源消耗的領域,例如嵌入式系統微控制器和 WebAssembly。

TinyGo 是一個編譯器 旨在將 Go 構建帶到各種目標平台 這是實施 使用 LLVM, 主要 Go 項目工具集中使用的庫用於支持該語言。

在Tinygo網站上,是這樣描述的:

您可以在超過 94 種不同的微控制器板上編譯和運行 TinyGo 程序,包括 BBC micro:bit 和 Arduino Uno。

TinyGo 還可以生成大小非常緊湊的 WebAssembly (WASM) 代碼。 您可以為 Web 瀏覽器以及支持 WebAssembly 系統接口 (WASI) 系列接口的服務器和邊緣計算環境構建程序。

創建TinyGO項目的原因是希望使用緊湊型設備中常見的Go語言-開發人員認為,如果有用於微控制器的Python版本,那麼為什麼不為Go語言創建類似的版本呢?

在TinyGo, 編譯後的程序可以直接在微控制器上運行,l或者它使使用 Go 作為編寫自動化腳本的語言成為可能。 TinyGo目前支持94款單片機型號,包括各種開發板,例如 Raspberry Pi Pico、Nordic、SiFive 等。

TinyGo 提供專用驅動程序 與連接的外部設備和傳感器接口,並支持 I2C、GPIO 和 SPI 等接口。 程序也可以編譯為 WebAssembly (wasm/wasi) 格式以在瀏覽器中運行並作為 Linux 二進製文件運行。

該項目的主要目標:

  • 在緊湊型設備上使用熟悉的 Go 語言子集的能力。 選擇 Go 而不是 Rust 是因為它更容易學習,為基於例程的並行化提供獨立於線程的支持,並提供廣泛的標準庫。
  • 生成非常緊湊的可執行文件。
  • 支持最常見的微控制器板型號。
  • 使用 WASI(WebAssembly
  • 系統接口)來處理操作系統提供的文件、套接字和其他功能。
  • 在調用 C 語言函數時以最小的開銷支持 CGo。
  • 與大多數標準包的兼容性以及編譯通用現有代碼而不更改它的能力。
  • 與類似的已棄用的 emgo 編譯器不同,Tinygo 通過垃圾收集器保留了 Go 原有的內存管理模型,並使用 LLVM 而不是編譯成 C 表示來生成高效的本機代碼。

值得一提的是,Tinygo 最近收到了一個新版本,即 0.28,在這個新版本中突出的是對反射的支持得到了顯著改進,並提供了自己的反射庫實現,這使得與許多標準庫的兼容成為可能之前有問題的包。

此外,新版本還增加了對“//go:wasmimport”指令的支持,用於從 WebAssembly 導入功能,以及對 Gopher Badges 等新卡片的支持。

終於 如果您有興趣了解更多信息, 您可以在中查看詳細信息 以下鏈接。

如何在 Linux 上安裝 Tinygo?

對於那些 有興趣能夠安裝 Tinygo, 在 Debian、Raspbian、Ubuntu 和衍生產品上。 他們應該打開一個終端,然後在其中執行以下命令:

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

對於用於ARM設備的系統的特殊情況 (Raspbian和Ubuntu版本)

我們將輸入以下內容:

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

對於那些使用 Arch Linux 及其衍生產品的用戶,他們必須執行以下命令:

sudo pacman -S tinygo

現在以 Fedora 用戶為例:

sudo dnf install tinygo

完成安裝後, 他們應該確保tinygo的路徑在其PATH中。

導出 PATH=$PATH:/usr/local/tinygo/bin

最後為 驗證安裝 我們將輸入以下命令:

tinygo版本

他必須扔給我們這樣的東西

tinygo 版本 0.28.1 linux/amd64

想要了解更多,可以諮詢 以下鏈接。 


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。