0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

ElfBoard ? 2024-01-29 10:42 ? 次閱讀

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

一、在GoLand中配置

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

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

wKgZomW3BDmAMhIzAADWwLoEOs4762.png

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

wKgaomW3BL6AB-hjAADNaXEeBSQ864.png

(二) 創(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下輸出正常。

wKgZomW3BVeAYIuqAABMeu2Yecg652.png

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

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

wKgaomW3Ba-APfcqAADwHXONzIY129.pngwKgZomW3BkyABHbsAADUe3RwIZo189.png

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

wKgZomW3CB2AF79hAAB0V1R_vZA517.png

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

wKgaomW3CHWAXWz4AACCwhFTXMI157.png

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

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

wKgaomW3CPmAEgt4AAAn20I6gJo621.png

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

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

wKgaomW3CXyAGTFOAAGAIbTMcG8149.png

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

wKgaomW3CkqAP8whAACFFv3MQn0891.png

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

現(xiàn)在就可以正式配置編譯到開發(fā)板啦。

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

wKgZomW3CpqASaTCAAF7qD-6Uhk190.png

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

wKgaomW3DBqAbSMjAAAhThORc7w743.png

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

wKgaomW3Dd2AKMFtAAFVnliXyzs458.png

wKgaomW3DjiANvlnAAEmBkh-Ocs916.png

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


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

繼續(xù)嘗試編寫一個簡單的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)建一個默認(rèn)的路由引擎 r := gin.Default() // GET:請求方式;/hello:請求的路徑 // 當(dāng)客戶端以GET方法請求/hello路徑時(shí),會執(zhí)行后面的匿名函數(shù) r.GET("/hello", func(c *gin.Context) { // c.JSON:返回JSON格式的數(shù)據(jù) c.JSON(200, gin.H{ "message": "Hello world!", }) }) // 啟動HTTP服務(wù),默認(rèn)在0.0.0.0:8080啟動服務(wù) r.Run() }

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

wKgaomW3DuGAFZLiAADo6M5upJ4733.pngwKgZomW3DzGARBV6AAE3YCvlmUU520.png

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

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

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

wKgaomW3D3GAfkbsAAD5oQf5ULU548.png

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

wKgaomW3D9iAbLbTAADw36lSM-Q605.pngwKgZomW3EB-ABRQbAAMT2Hwz8o4370.png

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5123

    文章

    19430

    瀏覽量

    312893
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11416

    瀏覽量

    212268
  • 學(xué)習(xí)開發(fā)板

    關(guān)注

    0

    文章

    10

    瀏覽量

    399
收藏 1人收藏

    評論

    相關(guān)推薦

    如何將u-boot.2022.10版本移植imx6ull開發(fā)板

    今天給大家講一講如何將u-boot.2022.10版本移植imx6ull開發(fā)板上。
    發(fā)表于 07-12 14:57 ?1855次閱讀
    <b class='flag-5'>如何將</b>u-boot.2022.10版本移植<b class='flag-5'>到</b>imx6ull<b class='flag-5'>開發(fā)板</b>

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

    ELF1開發(fā)板。接下來,我們詳細(xì)闡述適配過程中關(guān)于按鍵功能實(shí)現(xiàn)的完整步驟。值得一提的是,ELF1開發(fā)板上預(yù)置了標(biāo)識為K
    的頭像 發(fā)表于 03-08 16:58 ?1127次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技術(shù)貼|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>開發(fā)板</b>的按鍵功能

    嵌入式學(xué)習(xí)-ElfBoard ELF 1開發(fā)板-共創(chuàng)官學(xué)習(xí)筆記分享|Go程序編譯ELF 1開發(fā)板

    運(yùn)行結(jié)果。3、在Ubuntu中再次確認(rèn),打開項(xiàng)目目錄,執(zhí)行程序,查看結(jié)果。 (四) 編譯開發(fā)板運(yùn)從第三部分可以看到直接在GoLand中配置編譯
    發(fā)表于 02-21 10:22

    飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之開發(fā)板測試

    )輸入命令。 (四)編譯無錯誤將生成elf1_cmd_spi可執(zhí)行文件。(五)將可執(zhí)行文件拷貝開發(fā)板中,例如/home/root 路徑下。(六)為了方便測量,我們提供了一個專門測試S
    發(fā)表于 11-08 16:43

    飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動追蹤之開發(fā)板測試

    編譯elf1_cmd_icm20607程序(一)該虛擬機(jī)需要安裝對應(yīng)開發(fā)板的GCC編譯器(如果使用我們的
    發(fā)表于 12-04 10:22

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動追蹤之開發(fā)板測試

    編譯elf1_cmd_icm20607程序 (一)該虛擬機(jī)需要安裝對應(yīng)開發(fā)板的GCC編譯器(如果使用我們的
    發(fā)表于 12-05 10:31

    【觸覺智能 Purple Pi開發(fā)板試用】1編譯go語言程序并推送到開發(fā)板上運(yùn)行

    信息如下上傳到開發(fā)板并運(yùn)行在開發(fā)板上執(zhí)行ip addr命令,可以得到目前開發(fā)板的IP地址。然后使用scp命令編譯出來的main
    發(fā)表于 11-06 10:47

    如何將STemWin移植STM32F1xx開發(fā)板中?及如何使用STemWin?

    開發(fā)指南講解如何將 STemWin 移植普中 STM32F1xx 開發(fā)板,以及如何使用 STemWin 中的各個控件,讓大家能夠設(shè)計(jì)出漂
    發(fā)表于 10-12 08:00 ?19次下載

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

    音樂可以平凡的畫面賦予深厚的意義,那么音頻接口就是這個支點(diǎn);今天就來給大家詳細(xì)介紹一下ELF1/ELF1S開發(fā)板的音頻接口。ELF1/
    的頭像 發(fā)表于 10-31 14:10 ?896次閱讀
    關(guān)于<b class='flag-5'>ELF1</b>/<b class='flag-5'>ELF1</b>S<b class='flag-5'>開發(fā)板</b>的音頻接口,你需要知道的都在這!

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

    本次源碼適配工作是在NXPi.MX6ULLEVK評估的Linux內(nèi)核源碼(特定版本:Linux-imx_4.1.15)基礎(chǔ)上進(jìn)行的。主要目標(biāo)是調(diào)整功能接口引腳配置,以適應(yīng)ELF1開發(fā)板。下面以
    的頭像 發(fā)表于 12-29 10:04 ?1058次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技術(shù)貼|在NXP源碼基礎(chǔ)上適配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>的LED功能

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

    ELF1/ELF1S開發(fā)板及顯示屏)在嵌入式Linux系統(tǒng)開發(fā)中,通過編程控制硬件資源是至關(guān)重要的技能之一,今天跟各位小伙伴分享一篇專注于介紹如何使用C庫函數(shù)控制
    的頭像 發(fā)表于 01-19 11:12 ?737次閱讀
    學(xué)習(xí)筆記分享|使用C庫函數(shù)控制<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>的LED

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

    如何進(jìn)行交叉編譯并移植ELF1開發(fā)板上。在網(wǎng)址:https://www.python.org/ftp/python/下載Python-3.6.9.tar.xz壓縮
    的頭像 發(fā)表于 02-22 14:06 ?593次閱讀
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技術(shù)貼|<b class='flag-5'>如何將</b>Python3.6.9移植<b class='flag-5'>到</b><b class='flag-5'>開發(fā)板</b>上

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

    Java作為一種功能強(qiáng)大且廣泛應(yīng)用的編程語言,具有廣泛的適應(yīng)性和實(shí)用性。在ELF1開發(fā)板上集成Java支持,無疑賦予嵌入式開發(fā)者更廣闊的選擇空間,今天就為各位小伙伴詳細(xì)解析如何在
    的頭像 發(fā)表于 03-13 16:47 ?636次閱讀
    <b class='flag-5'>ELF</b>技術(shù)貼|如何在<b class='flag-5'>開發(fā)板</b>上實(shí)現(xiàn)對Java的支持

    linux開發(fā)板如何編譯curl

    在Linux開發(fā)板編譯 curl 庫通常涉及幾個步驟,包括準(zhǔn)備開發(fā)環(huán)境、下載源代碼、配置編譯選項(xiàng)以及執(zhí)行
    的頭像 發(fā)表于 08-30 15:33 ?1099次閱讀

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

    在嵌入式系統(tǒng)開發(fā)領(lǐng)域,針對特定硬件平臺進(jìn)行Qt框架的移植與適配是一項(xiàng)關(guān)鍵技術(shù)任務(wù)。作為業(yè)界主流的跨平臺應(yīng)用開發(fā)框架,Qt憑借其完善的圖形界面支持能力,在嵌入式開發(fā)圖形界面應(yīng)用程序中占據(jù)
    的頭像 發(fā)表于 02-24 16:18 ?422次閱讀
    ElfBoard技術(shù)貼|如何在<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>開發(fā)板</b>上交叉移植Qt

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品