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

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

(二) 創(chuàng)建項目編寫測試程序
1、從GoLand中創(chuàng)建項目編寫測試程序如下:
package main import "fmt" func main() { fmt.Println("Hello ELF1 !") }
2、執(zhí)行默認配置、查看Windows下輸出正常。

(三) 編譯到Ubuntu虛擬機運行
1、在配置選項卡中創(chuàng)建新配置、選擇運行于第一步配置好的Ubuntu虛擬機并且在管理目標中配置好虛擬機中的項目存放路徑。


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

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

(四) 編譯到開發(fā)板運行
從第三部分可以看到直接在GoLand中配置編譯到遠程目標機是非常簡單的,但是很可惜在ELF 1開發(fā)板上不能直接這樣做。因為參考快速啟動手冊開發(fā)板默認配置是沒有sftp的,只有ftp,而GoLand依賴于sftp,所以不能直接這樣配置。

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

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

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

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

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


結(jié)果正確,程序正常運行!!
二、使用Gin框架編寫一個簡單的Web后端
繼續(xù)嘗試編寫一個簡單的Web后端服務(wù),使用Gin Web Framework。
官網(wǎng):gin-gonic.com/zh-cn/
文檔:gin-gonic.com/zh-cn/docs/
(一) 新建項目、編寫程序
1、新建項目,安裝Gin。
go get -u github.com/gin-gonic/gin
2、編寫簡單示例:
package main import ( "github.com/gin-gonic/gin" ) func main() { // 創(chuàng)建一個默認的路由引擎 r := gin.Default() // GET:請求方式;/hello:請求的路徑 // 當客戶端以GET方法請求/hello路徑時,會執(zhí)行后面的匿名函數(shù) r.GET("/hello", func(c *gin.Context) { // c.JSON:返回JSON格式的數(shù)據(jù) c.JSON(200, gin.H{ "message": "Hello world!", }) }) // 啟動HTTP服務(wù),默認在0.0.0.0:8080啟動服務(wù) r.Run() }
3、在Windows中測試程序是否正確,首先啟動服務(wù),使用ApiFox測試,可以看到程序正常。


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

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


可以看到,服務(wù)正常運行,請求回應(yīng)也正常。
-
嵌入式
+關(guān)注
關(guān)注
5148文章
19644瀏覽量
316981 -
Linux
+關(guān)注
關(guān)注
87文章
11508瀏覽量
213550 -
學習開發(fā)板
+關(guān)注
關(guān)注
0文章
10瀏覽量
478
發(fā)布評論請先 登錄
如何將u-boot.2022.10版本移植到imx6ull開發(fā)板

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

嵌入式學習-ElfBoard ELF 1開發(fā)板-共創(chuàng)官學習筆記分享|將Go程序編譯到ELF 1開發(fā)板
飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之開發(fā)板測試
飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之開發(fā)板測試
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之開發(fā)板測試
【觸覺智能 Purple Pi開發(fā)板試用】1、編譯go語言程序并推送到開發(fā)板上運行
如何將STemWin移植到STM32F1xx開發(fā)板中?及如何使用STemWin?
關(guān)于ELF1/ELF1S開發(fā)板的音頻接口,你需要知道的都在這!

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

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

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

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

linux開發(fā)板如何編譯curl
ElfBoard技術(shù)貼|如何在ELF 1開發(fā)板上交叉移植Qt

評論