我想在 Arduino Yún 平台上运行一个 Go 程序。它具有在 32 位 MIPS 处理器 (Atheros AR9331) 上运行的嵌入式 Linux。
test.go 的内容:
package main
import "fmt"
func main() {
fmt.Println("Hello!")
}
我在 Linux (4.13.12-1-ARCH #1 SMP PREEMPT Wed Nov 8 11:54:06 CET 2017 x86_64 GNU/Linux) 上使用以下命令,Go (go1.9.2 linux/amd64) 编译二进制文件:
GOOS=linux GOARCH=mips go build test.go
我将二进制文件复制到设备(通过 SSH)并在那里执行。它不会崩溃。它不打印“你好!”。它似乎只是在等待标准输入。我该如何调试/修复这个?
设备上 /proc/cpuinfo 的内容:
system type : Atheros AR9330 rev 1
machine : Arduino Yun
processor : 0
cpu model : MIPS 24Kc V7.4
BogoMIPS : 265.42
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x0920, 0x04b8, 0x0180]
ASEs implemented : mips16
shadow register sets : 1
kscratch registers : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available
设备上 strace ./test 的输出:
execve("./test", ["./test"], [/* 11 vars */]) = 0
uname -r 在设备上的输出:
Linux B4218AF03376 3.3.8 #1 Sun Oct 4 02:29:26 CEST 2015 mips GNU/Linux