0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将Go程序编译到ELF 1开发板

ElfBoard 2024-01-29 10:42 次阅读

ElfBoard组建的共创社是嵌入式科技创新与学习实践的前沿阵地,我们有幸见证着每一位共创官积极投身于嵌入式技术的热潮中,用实际行动诠释着探索精神。今天就跟各位小伙伴分享一下共创官是怎样将Go程序编译并运行在ELF 1开发板上的。

一、在GoLand中配置

(一) 配置SSH连接Ubuntu虚拟机以及ELF 1开发板

1、打开GoLand的设置选项找到SSH,配置连接到Ubuntu虚拟机、并测试连接是否正常。

wKgZomW3BDmAMhIzAADWwLoEOs4762.png

2、同样配置连接到ELF 1开发板并测试是否连接正常。

wKgaomW3BL6AB-hjAADNaXEeBSQ864.png

(二) 创建项目编写测试程序

1、从GoLand中创建项目编写测试程序如下:

package main import "fmt" func main() { fmt.Println("Hello ELF1 !") }

2、执行默认配置、查看Windows下输出正常。

wKgZomW3BVeAYIuqAABMeu2Yecg652.png

(三) 编译到Ubuntu虚拟机运行

1、在配置选项卡中创建新配置、选择运行于第一步配置好的Ubuntu虚拟机并且在管理目标中配置好虚拟机中的项目存放路径。

wKgaomW3Ba-APfcqAADwHXONzIY129.pngwKgZomW3BkyABHbsAADUe3RwIZo189.png

2、编译执行查看结果:可以看到Ubuntu项目目录下已经有编译好的程序,以及运行结果。

wKgZomW3CB2AF79hAAB0V1R_vZA517.png

3、在Ubuntu中再次确认,打开项目目录,执行程序,查看结果。

wKgaomW3CHWAXWz4AACCwhFTXMI157.png

(四) 编译到开发板运行

从第三部分可以看到直接在GoLand中配置编译到远程目标机是非常简单的,但是很可惜在ELF 1开发板上不能直接这样做。因为参考快速启动手册开发板默认配置是没有sftp的,只有ftp,而GoLand依赖于sftp,所以不能直接这样配置。

wKgaomW3CPmAEgt4AAAn20I6gJo621.png

所以就需要Go的环境变量来使其编译出目标机可执行的程序。先配置一下编译到Ubuntu虚拟机测试一下。

1、先配置编译到Linux平台测试,打开配置,新建一个配置。运行于选本地机器,选择输出目录到项目下,配置Go的环境GOOS=linux

wKgaomW3CXyAGTFOAAGAIbTMcG8149.png

2、编译可以看到target目录下生成的Linux程序,上传到Ubuntu虚拟机中测试。

wKgaomW3CkqAP8whAACFFv3MQn0891.png

3、可以看到测试结果正常。

现在就可以正式配置编译到开发板啦。

1、新建配置,添加Go环境 GOOS=linux;GOARCH=arm;GOARM=7

wKgZomW3CpqASaTCAAF7qD-6Uhk190.png

2、运行配置,执行编译。

wKgaomW3DBqAbSMjAAAhThORc7w743.png

3、上传到开发板、修改可运行权限,这里直接配置为777,运行查看结果。

wKgaomW3Dd2AKMFtAAFVnliXyzs458.png

wKgaomW3DjiANvlnAAEmBkh-Ocs916.png

结果正确,程序正常运行!!


二、使用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测试,可以看到程序正常。

wKgaomW3DuGAFZLiAADo6M5upJ4733.pngwKgZomW3DzGARBV6AAE3YCvlmUU520.png

(二) 编译到开发板并测试

1、同样新建配置,添加Go环境GOOS=linux;GOARCH=arm;GOARM=7

2、执行编译、拷贝到ELF 1开发板、修改可执行权限。

wKgaomW3D3GAfkbsAAD5oQf5ULU548.png

3、运行服务,并测试:

wKgaomW3D9iAbLbTAADw36lSM-Q605.pngwKgZomW3EB-ABRQbAAMT2Hwz8o4370.png

可以看到,服务正常运行,请求回应也正常。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5087

    文章

    19148

    浏览量

    306180
  • Linux
    +关注

    关注

    87

    文章

    11322

    浏览量

    209864
  • 学习开发板
    +关注

    关注

    0

    文章

    10

    浏览量

    280
收藏 人收藏

    评论

    相关推荐

    如何将u-boot.2022.10版本移植imx6ull开发板

    今天给大家讲一讲如何将u-boot.2022.10版本移植imx6ull开发板上。
    发表于 07-12 14:57 1462次阅读
    <b class='flag-5'>如何将</b>u-boot.2022.10版本移植<b class='flag-5'>到</b>imx6ull<b class='flag-5'>开发板</b>

    ELF 1技术贴|在NXP源码基础上适配开发板的按键功能

    ELF1开发板。接下来,我们详细阐述适配过程中关于按键功能实现的完整步骤。值得一提的是,ELF1开发板上预置了标识为K
    的头像 发表于 03-08 16:58 981次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技术贴|在NXP源码基础上适配<b class='flag-5'>开发板</b>的按键功能

    嵌入式学习-ElfBoard ELF 1开发板-共创官学习笔记分享|Go程序编译ELF 1开发板

    运行结果。3、在Ubuntu中再次确认,打开项目目录,执行程序,查看结果。 (四) 编译开发板运从第三部分可以看到直接在GoLand中配置编译
    发表于 02-21 10:22

    飞凌ElfBoard ELF 1板卡-如何在ELF 1开发板上实现对java的支持

    Java作为一种功能强大且广泛应用的编程语言,具有广泛的适应性和实用性。在ELF 1开发板上集成Java支持,无疑赋予嵌入式开发者更广阔的
    发表于 03-20 09:51

    飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之开发板测试

    )输入命令。 (四)编译无错误将生成elf1_cmd_spi可执行文件。(五)将可执行文件拷贝开发板中,例如/home/root 路径下。(六)为了方便测量,我们提供了一个专门测试S
    发表于 11-08 16:43

    飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之开发板测试

    编译elf1_cmd_icm20607程序(一)该虚拟机需要安装对应开发板的GCC编译器(如果使用我们的
    发表于 12-04 10:22

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之开发板测试

    编译elf1_cmd_icm20607程序 (一)该虚拟机需要安装对应开发板的GCC编译器(如果使用我们的
    发表于 12-05 10:31

    如何将STemWin移植STM32F1xx开发板中?及如何使用STemWin?

    开发指南讲解如何将 STemWin 移植普中 STM32F1xx 开发板,以及如何使用 STemWin 中的各个控件,让大家能够设计出漂
    发表于 10-12 08:00 19次下载

    大咖教你如何编译OpenHarmony并烧录到开发板

    在上一篇【博流 BL-HWC-G1 开发板试用】开箱及编译烧录官方程序(BL602 IoT SDK)中,我们讲了这块开发板使用官方SDK进行
    的头像 发表于 12-01 16:56 3737次阅读
    大咖教你如何<b class='flag-5'>编译</b>OpenHarmony并烧录到<b class='flag-5'>开发板</b>

    关于ELF1/ELF1S开发板的音频接口,你需要知道的都在这!

    音乐可以平凡的画面赋予深厚的意义,那么音频接口就是这个支点;今天就来给大家详细介绍一下ELF1/ELF1S开发板的音频接口。ELF1/
    的头像 发表于 10-31 14:10 726次阅读
    关于<b class='flag-5'>ELF1</b>/<b class='flag-5'>ELF1</b>S<b class='flag-5'>开发板</b>的音频接口,你需要知道的都在这!

    ELF 1技术贴|在NXP源码基础上适配ELF 1开发板的LED功能

    本次源码适配工作是在NXPi.MX6ULLEVK评估的Linux内核源码(特定版本:Linux-imx_4.1.15)基础上进行的。主要目标是调整功能接口引脚配置,以适应ELF1开发板。下面以
    的头像 发表于 12-29 10:04 874次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技术贴|在NXP源码基础上适配<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的LED功能

    学习笔记分享|使用C库函数控制ELF 1开发板的LED

    ELF1/ELF1S开发板及显示屏)在嵌入式Linux系统开发中,通过编程控制硬件资源是至关重要的技能之一,今天跟各位小伙伴分享一篇专注于介绍如何使用C库函数控制
    的头像 发表于 01-19 11:12 589次阅读
    学习笔记分享|使用C库函数控制<b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的LED

    ELF 1技术贴|如何将Python3.6.9移植开发板

    如何进行交叉编译并移植ELF1开发板上。在网址:https://www.python.org/ftp/python/下载Python-3.6.9.tar.xz压缩
    的头像 发表于 02-22 14:06 447次阅读
    <b class='flag-5'>ELF</b> <b class='flag-5'>1</b>技术贴|<b class='flag-5'>如何将</b>Python3.6.9移植<b class='flag-5'>到</b><b class='flag-5'>开发板</b>上

    ELF技术贴|如何在开发板上实现对Java的支持

    Java作为一种功能强大且广泛应用的编程语言,具有广泛的适应性和实用性。在ELF1开发板上集成Java支持,无疑赋予嵌入式开发者更广阔的选择空间,今天就为各位小伙伴详细解析如何在
    的头像 发表于 03-13 16:47 523次阅读
    <b class='flag-5'>ELF</b>技术贴|如何在<b class='flag-5'>开发板</b>上实现对Java的支持

    linux开发板如何编译curl

    在Linux开发板编译 curl 库通常涉及几个步骤,包括准备开发环境、下载源代码、配置编译选项以及执行
    的头像 发表于 08-30 15:33 702次阅读