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 具有以 550 MHz 运行的 Atheros Wasp MIPS 74Kc CPU,配备 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 具有以 580 MHz 运行的 Mediatek MIPS 24KEc CPU,配备 16 MB 闪存和 128 MB RAM。内置闪存不足以满足大多数应用程序,但可以添加 USB 存储器。内置 IO、GPS 等可以通过 Modbus TCP 访问,RS232/RS485 端口可以正常工作。使用 Go 1.21.1(GOARCH=mipsle,GOMIPS=softfloat)进行了测试。请注意,如果未设置 GOMIPS,则会输出 非法指令

有关设备的更多信息,请访问 https://teltonika-networks.com/product/rut956/

架构:ath79(与 ar71xx 相同的硬件,但具有本机内核支持)

操作系统:OpenWrt

TP-Link Archer A6 配备 Atheros QCA9563 MIPS 24K 经典处理器、16 MB 闪存和 128 MB RAM。闪存存储有限,并且没有 USB 端口可用于存储扩展,因此程序从网络加载到 /tmpfs 并执行。

有关该设备的更多信息,请访问 https://openwrt.org/toh/hwdata/tp-link/tp-link_archer_a6_us_tw

贝尔金 F7D7302 WiFi 路由器

架构:mipsel_74kc

操作系统:DD-WRT

贝尔金 F7D7302 配备了 Broadcom BCM4716 小端 MIPS 74K 经典处理器、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 的一部分。