• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2024/01/29
1815
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(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)行?。?/p>

二、使用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à)格 更多信息
AT24C02C-SSHM-T 1 Microchip Technology Inc IC EEPROM 2KBIT 1MHZ 8SOIC

ECAD模型

下載ECAD模型
$0.17 查看
530FC125M000DGR 1 Silicon Laboratories Inc LVDS Output Clock Oscillator, 10MHz Min, 945MHz Max, 125MHz Nom, ROHS COMPLIANT, SMD, 6 PIN
暫無數(shù)據(jù) 查看
TLP127(TPL,U,F) 1 Toshiba America Electronic Components PHOTOCOUPLER DARL-OUT 4-SMD

ECAD模型

下載ECAD模型
$1.04 查看

相關(guān)推薦