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

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

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

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


2、編譯執行查看結果:可以看到Ubuntu項目目錄下已經有編譯好的程序,以及運行結果。

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

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

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

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

3、可以看到測試結果正常。
現在就可以正式配置編譯到開發板啦。
1、新建配置,添加Go環境 GOOS=linux;GOARCH=arm;GOARM=7

2、運行配置,執行編譯。

3、上傳到開發板、修改可運行權限,這里直接配置為777,運行查看結果。


結果正確,程序正常運行!!
二、使用Gin框架編寫一個簡單的Web后端
繼續嘗試編寫一個簡單的Web后端服務,使用Gin Web Framework。
官網: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() { // 創建一個默認的路由引擎 r := gin.Default() // GET:請求方式;/hello:請求的路徑 // 當客戶端以GET方法請求/hello路徑時,會執行后面的匿名函數 r.GET("/hello", func(c *gin.Context) { // c.JSON:返回JSON格式的數據 c.JSON(200, gin.H{ "message": "Hello world!", }) }) // 啟動HTTP服務,默認在0.0.0.0:8080啟動服務 r.Run() }
3、在Windows中測試程序是否正確,首先啟動服務,使用ApiFox測試,可以看到程序正常。


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

3、運行服務,并測試:


可以看到,服務正常運行,請求回應也正常。
-
嵌入式
+關注
關注
5143文章
19572瀏覽量
315705 -
Linux
+關注
關注
87文章
11479瀏覽量
213030 -
學習開發板
+關注
關注
0文章
10瀏覽量
443
發布評論請先 登錄
如何將u-boot.2022.10版本移植到imx6ull開發板

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

ELF 1技術貼|在NXP源碼基礎上適配ELF 1開發板的LED功能

學習筆記分享|使用C庫函數控制ELF 1開發板的LED

ELF 1技術貼|如何將Python3.6.9移植到開發板上

ELF技術貼|如何在開發板上實現對Java的支持

ElfBoard技術貼|如何在ELF 1開發板上交叉移植Qt

評論