ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實(shí)踐的前沿陣地,我們有幸見(jiàn)證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實(shí)際行動(dòng)詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣將Go程序編譯并運(yùn)行在ELF 1開(kāi)發(fā)板上的。
一、在GoLand中配置
(一) 配置SSH連接Ubuntu虛擬機(jī)以及ELF 1開(kāi)發(fā)板
1、打開(kāi)GoLand的設(shè)置選項(xiàng)找到SSH,配置連接到Ubuntu虛擬機(jī)、并測(cè)試連接是否正常。

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

(二) 創(chuàng)建項(xiàng)目編寫(xiě)測(cè)試程序
1、從GoLand中創(chuàng)建項(xiàng)目編寫(xiě)測(cè)試程序如下:
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),打開(kāi)項(xiàng)目目錄,執(zhí)行程序,查看結(jié)果。

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

所以就需要Go的環(huán)境變量來(lái)使其編譯出目標(biāo)機(jī)可執(zhí)行的程序。先配置一下編譯到Ubuntu虛擬機(jī)測(cè)試一下。
1、先配置編譯到Linux平臺(tái)測(cè)試,打開(kāi)配置,新建一個(gè)配置。運(yùn)行于選本地機(jī)器,選擇輸出目錄到項(xiàng)目下,配置Go的環(huán)境GOOS=linux。

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

3、可以看到測(cè)試結(jié)果正常。
現(xiàn)在就可以正式配置編譯到開(kāi)發(fā)板啦。
1、新建配置,添加Go環(huán)境 GOOS=linux;GOARCH=arm;GOARM=7

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

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


結(jié)果正確,程序正常運(yùn)行!!
二、使用Gin框架編寫(xiě)一個(gè)簡(jiǎn)單的Web后端
繼續(xù)嘗試編寫(xiě)一個(gè)簡(jiǎn)單的Web后端服務(wù),使用Gin Web Framework。
官網(wǎng):gin-gonic.com/zh-cn/
文檔:gin-gonic.com/zh-cn/docs/
(一) 新建項(xiàng)目、編寫(xiě)程序
1、新建項(xiàng)目,安裝Gin。
go get -u github.com/gin-gonic/gin
2、編寫(xiě)簡(jiǎn)單示例:
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中測(cè)試程序是否正確,首先啟動(dòng)服務(wù),使用ApiFox測(cè)試,可以看到程序正常。


(二) 編譯到開(kāi)發(fā)板并測(cè)試
1、同樣新建配置,添加Go環(huán)境GOOS=linux;GOARCH=arm;GOARM=7
2、執(zhí)行編譯、拷貝到ELF 1開(kāi)發(fā)板、修改可執(zhí)行權(quán)限。

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


可以看到,服務(wù)正常運(yùn)行,請(qǐng)求回應(yīng)也正常。
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307653 -
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210387 -
學(xué)習(xí)開(kāi)發(fā)板
+關(guān)注
關(guān)注
0文章
10瀏覽量
303
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何將u-boot.2022.10版本移植到imx6ull開(kāi)發(fā)板

ELF 1技術(shù)貼|在NXP源碼基礎(chǔ)上適配開(kāi)發(fā)板的按鍵功能

嵌入式學(xué)習(xí)-ElfBoard ELF 1開(kāi)發(fā)板-共創(chuàng)官學(xué)習(xí)筆記分享|將Go程序編譯到ELF 1開(kāi)發(fā)板
飛凌ElfBoard ELF 1板卡-如何在ELF 1開(kāi)發(fā)板上實(shí)現(xiàn)對(duì)java的支持
飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之開(kāi)發(fā)板測(cè)試
飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動(dòng)追蹤之開(kāi)發(fā)板測(cè)試
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動(dòng)追蹤之開(kāi)發(fā)板測(cè)試
如何將STemWin移植到STM32F1xx開(kāi)發(fā)板中?及如何使用STemWin?
大咖教你如何編譯OpenHarmony并燒錄到開(kāi)發(fā)板

關(guān)于ELF1/ELF1S開(kāi)發(fā)板的音頻接口,你需要知道的都在這!

ELF 1技術(shù)貼|在NXP源碼基礎(chǔ)上適配ELF 1開(kāi)發(fā)板的LED功能

學(xué)習(xí)筆記分享|使用C庫(kù)函數(shù)控制ELF 1開(kāi)發(fā)板的LED

ELF 1技術(shù)貼|如何將Python3.6.9移植到開(kāi)發(fā)板上

ELF技術(shù)貼|如何在開(kāi)發(fā)板上實(shí)現(xiàn)對(duì)Java的支持

評(píng)論