Go Wiki:MIPS 上的 Go

簡介

Go 程式可以跨編譯,例如在 x86/x86_64 建置系統上編譯,以在 MIPS 目標機器上執行。

支援的架構

Go 支援下列 MIPS 架構系列。(還有更多嗎?)

架構 狀態 GOMIPS 值 GOARCH 值
大端序(例如 ar71xx) 支援 GOMIPS=softfloat GOARCH=mips
小端序 支援 不適用 GOARCH=mipsle

支援作業系統

已測試的 MIPS 系統執行 Go 的版本為 Go 1.13。

提示和訣竅

為 ar71xx OpenWrt 編譯

這會編譯 Go 程式,移除不需要的字串和符號以縮小其大小,並壓縮它以進一步縮小其大小

env GOOS=linux GOARCH=mips GOMIPS=softfloat  go build -trimpath -ldflags="-s -w" 'server.go'
upx -9 server

成功案例

MIPS 硬體有各式各樣的形狀和大小。如果您在 Arm 系統上編譯和執行 Go 的成功案例,請在此詳細說明您的結果。

架構:ar71xx

作業系統:OpenWrt

D-Link DIR-505 行動裝置伴侶配備 Atheros AR1311 處理器、8 MB 快閃記憶體和 64 MB RAM。此空間有限,但允許我們載入 Go 應用程式,例如從網路載入 /tmpfs 並從那裡執行它們。

有關裝置的更多資訊,請參閱 https://openwrt.org/toh/d-link/dir-505

Teltonika RUT955

架構:ar9344

作業系統:RutOS(基於 OpenWrt)

Teltonika RUT955 具有 Atheros Wasp MIPS 74Kc CPU,時脈為 550 MHz,配備 16 MB 快閃記憶體和 128 MB RAM。內建快閃記憶體對於大多數應用程式而言是不夠的,但可以新增 Micro SD 或 USB 隨身碟(直接從 SD 執行應用程式不可靠,但複製到 /tmpfs 並從那裡執行運作正常)。內建的 IO、GPS 等可透過 Modbus TCP 存取,而 RS232/RS485 連接埠運作正常。已使用 Go 1.14.6、1.15.3 和 1.21.1(GOARCH=mips,GOMIPS=softfloat)進行測試。

有關裝置的更多資訊,請參閱 https://teltonika-networks.com/product/rut955/

Teltonika RUT956

架構:MediaTek MT7628AN ver:1 eco:2

作業系統:RutOS(基於 OpenWrt)

Teltonika RUT956 搭載 Mediatek MIPS 24KEc 處理器,時脈為 580 MHz,配備 16 MB 閃存和 128 MB RAM。內建閃存對於大多數應用程式而言容量不足,但可以新增 USB 隨身碟。內建的 IO、GPS 等可透過 Modbus TCP 存取,而 RS232/RS485 連接埠也能正常運作。已使用 Go 1.21.1 進行測試(GOARCH=mipsle,GOMIPS=softfloat)。請注意,如果未設定 GOMIPS,將會輸出 illegal instruction

有關裝置的更多資訊,請參閱 https://teltonika-networks.com/product/rut956/

架構:ath79(與 ar71xx 相同的硬體,但具有原生核心支援)

作業系統:OpenWrt

TP-Link Archer A6 配備 Atheros QCA9563 MIPS 24K classic 處理器、16 MB 閃存和 128 MB RAM。閃存儲存空間有限,且沒有可用於儲存空間擴充的 USB 連接埠,因此程式會從網路載入至 /tmpfs 並執行。

有關裝置的更多資訊,請參閱 https://openwrt.org/toh/hwdata/tp-link/tp-link_archer_a6_us_tw

Belkin F7D7302 WiFi 路由器

架構:mipsel_74kc

作業系統:DD-WRT

Belkin F7D7302 配備 Broadcom BCM4716 小端序 MIPS 74K classic 處理器、8 MB 閃存和 64 MB RAM。閃存儲存空間非常有限,但有一個可用的 USB 連接埠,因此可以將程式載入隨身碟並執行。

有關裝置的更多資訊,請參閱 https://openwrt.org/toh/belkin/f7d3302

AVM FRITZ!Box 7362 SL

系統類型:xRX200 rev 1.2
CPU 型號:MIPS 34Kc V5.6

作業系統:OpenWrt 21

有關此裝置的更多資訊,請參閱 https://openwrt.org/toh/avm/avm_7362_sl


此內容是 Go Wiki 的一部分。