加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何將Go程序編譯到ELF 1開發(fā)板

2024/01/29
2255
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實(shí)踐的前沿陣地,我們有幸見證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實(shí)際行動(dòng)詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣將Go程序編譯并運(yùn)行在ELF 1開發(fā)板上的。

一、在GoLand中配置

(一) 配置SSH連接Ubuntu虛擬機(jī)以及ELF 1開發(fā)板

1、打開GoLand的設(shè)置選項(xiàng)找到SSH,配置連接到Ubuntu虛擬機(jī)、并測試連接是否正常。

2、同樣配置連接到ELF 1開發(fā)板并測試是否連接正常。

(二) 創(chuàng)建項(xiàng)目編寫測試程序

1、從GoLand中創(chuàng)建項(xiàng)目編寫測試程序如下:

package main
import "fmt"
func main() {
    fmt.Println("Hello ELF1 !")
}

2、執(zhí)行默認(rèn)配置、查看Windows下輸出正常。

(三) 編譯到Ubuntu虛擬機(jī)運(yùn)行

1、在配置選項(xiàng)卡中創(chuàng)建新配置、選擇運(yùn)行于第一步配置好的Ubuntu虛擬機(jī)并且在管理目標(biāo)中配置好虛擬機(jī)中的項(xiàng)目存放路徑。

2、編譯執(zhí)行查看結(jié)果:可以看到Ubuntu項(xiàng)目目錄下已經(jīng)有編譯好的程序,以及運(yùn)行結(jié)果。

3、在Ubuntu中再次確認(rèn),打開項(xiàng)目目錄,執(zhí)行程序,查看結(jié)果。

(四) 編譯到開發(fā)板運(yùn)行

從第三部分可以看到直接在GoLand中配置編譯到遠(yuǎn)程目標(biāo)機(jī)是非常簡單的,但是很可惜在ELF 1開發(fā)板上不能直接這樣做。因?yàn)閰⒖伎焖賳?dòng)手冊(cè)開發(fā)板默認(rèn)配置是沒有sftp的,只有ftp,而GoLand依賴于sftp,所以不能直接這樣配置。

所以就需要Go的環(huán)境變量來使其編譯出目標(biāo)機(jī)可執(zhí)行的程序。先配置一下編譯到Ubuntu虛擬機(jī)測試一下。

1、先配置編譯到Linux平臺(tái)測試,打開配置,新建一個(gè)配置。運(yùn)行于選本地機(jī)器,選擇輸出目錄到項(xiàng)目下,配置Go的環(huán)境?GOOS=linux。

2、編譯可以看到target目錄下生成的Linux程序,上傳到Ubuntu虛擬機(jī)中測試。

3、可以看到測試結(jié)果正常。

現(xiàn)在就可以正式配置編譯到開發(fā)板啦。1、新建配置,添加Go環(huán)境?GOOS=linux;GOARCH=arm;GOARM=7

2、運(yùn)行配置,執(zhí)行編譯。

3、上傳到開發(fā)板、修改可運(yùn)行權(quán)限,這里直接配置為777,運(yùn)行查看結(jié)果。

結(jié)果正確,程序正常運(yùn)行??!

二、使用Gin框架編寫一個(gè)簡單的Web后端

繼續(xù)嘗試編寫一個(gè)簡單的Web后端服務(wù),使用Gin Web Framework。

官網(wǎng):gin-gonic.com/zh-cn/

文檔:gin-gonic.com/zh-cn/docs/

(一) 新建項(xiàng)目、編寫程序

1、新建項(xiàng)目,安裝Gin。

go get -u github.com/gin-gonic/gin

2、編寫簡單示例:

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	// 創(chuàng)建一個(gè)默認(rèn)的路由引擎
	r := gin.Default()
	// GET:請(qǐng)求方式;/hello:請(qǐng)求的路徑
	// 當(dāng)客戶端以GET方法請(qǐng)求/hello路徑時(shí),會(huì)執(zhí)行后面的匿名函數(shù)
	r.GET("/hello", func(c *gin.Context) {
		// c.JSON:返回JSON格式的數(shù)據(jù)
		c.JSON(200, gin.H{
			"message": "Hello world!",
		})
	})
	// 啟動(dòng)HTTP服務(wù),默認(rèn)在0.0.0.0:8080啟動(dòng)服務(wù)
	r.Run()
}

3、在Windows中測試程序是否正確,首先啟動(dòng)服務(wù),使用ApiFox測試,可以看到程序正常。

(二) 編譯到開發(fā)板并測試

1、同樣新建配置,添加Go環(huán)境GOOS=linux;GOARCH=arm;GOARM=7

2、執(zhí)行編譯、拷貝到ELF 1開發(fā)板、修改可執(zhí)行權(quán)限。

3、運(yùn)行服務(wù),并測試:

可以看到,服務(wù)正常運(yùn)行,請(qǐng)求回應(yīng)也正常。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
HSMG-C190 1 Broadcom Limited Single Color LED, Green, Untinted Diffused, 1mm, 1.60 X 0.80 MM, 0.80 MM HEIGHT, LEAD FREE, PLASTIC PACKAGE-2

ECAD模型

下載ECAD模型
$0.27 查看
DP83848CVVX/NOPB 1 Texas Instruments Commercial temperature, 10/100-Mbps Ethernet PHY transceiver with SNI interface & JTAG support 48-LQFP 0 to 70

ECAD模型

下載ECAD模型
$4.35 查看
HFBR-1412TZ 1 Foxconn Transmitter, 792nm Min, 865nm Max, 5Mbps, ST Connector, DIP, Panel Mount, Through Hole Mount, ROHS COMPLIANT PACKAGE
$24 查看

相關(guān)推薦