当前位置: 首页 > news >正文

【XR806开发板使用】开发环境搭建、Hello工程以及开发事项

XR806开发板试用

很有幸能获得本次技术社区和全志组织的XR806开发板试用活动。之前开发的嵌入式应用都是在Windows平台上进行的,对于Linux下的开发并不熟悉,在社区里看到群友使用官方提供的docker环境进行开发,顺着群友的指导,找到了以下的帖子:
https://aijishu.com/a/1060000000322138
结合帖子中的内容,使用docker中配置好的开发环境入门XR806开发板的使用。

1.1 开发环境搭建

我使用的win10,在win10使用docker进行开发,入门的教程可以参考微软官方提供的docker开发教程;
这里进行简要的说明,首先安装wsl2,具体的教程可以参考微软的官方文档。在“打开或关闭Windows功能”中确定勾选了“Hyper-V”功能。
在这里插入图片描述

如过没有勾选,勾选后win10会自动更新该功能,重新启动系统后生效。在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。
通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v。官方推荐使用wsl2,不过使用wsl –install默认安装的便是wsl2。
接下来参考微软的官方手册安装Docker Desktop for Windows,首先下载Docker Desktop,安装过程使用默认配置即可。安装后,启动Docker Desktop,然然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。
在这里插入图片描述
在这里插入图片描述

确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。
在这里插入图片描述

完成上述步骤后,可以在Windows PowerShell中运行以下指令在本地创建一个集成了FreeRTOS的XR806开发环境的容器:
docker run -it verdureorange/ubuntu_xr806:v2 /bin/bash
在这里插入图片描述

该环境中没有集成vim,可以通过以下指令安装vim
apt install vim

当退出容器开发环境后,重新进入时,使用docker start和dcoker attach指令,指令的参数中需要指定容器的ID,查看容器的ID使用docker ps指令。具体的操作如下图所示
在这里插入图片描述

到这一步,使用docker开发XR806的开发环境就搭建完毕了。

1.2 hello_demo编译和烧写

在xr806_sdk的project中有很多官方提供的demo程序,可供用户学习如何开发。在命令行中输入下列指令进入到SDK的顶层文件夹,
cd /root/xr806_sdk
执行下列指令,打卡工程配置界面,根据工程的需要开启相应的功能模块
make menuconfig
在这里插入图片描述

修改完成后,保存并退出。
在这里插入图片描述

在命令行中输入下列指令进入hello_demo的gcc文件夹,并执行make指令,完成工程的编译。编译完成后,使用make image指令生成镜像文件,用于固件的烧录。
在这里插入图片描述

生成的镜像文件可以在xr806_sdk/out中找到,名称为xr_system.img。使用Docker Desktop查看Container中的文件可以将其中的镜像文件存储到win10的文件夹中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复制到win10的文件夹中后,使用xr806_sdk文件夹下的tool中的phoenixMC.exe将程序固件烧录到芯片当中。选择复制出来的xr_system.img。点击“升级固件”将固件烧录到芯片中。
在这里插入图片描述

使用串口调试助手连接到开发板,使用复位按键复位芯片后,可以在串口调试助手输出窗口中看到以下的输出信息。
在这里插入图片描述

1.3 总结

第一次使用docker环境开发嵌入式应用,在有社区大佬的帮助下,开发过程还是很顺利的,初步学会了如何使用docker编译和生成固件,以及将固件复制到win10中,使用全志提供的固件升级工具完成固件的烧写。

相关文章:

  • 基于OpenCV的图像缩放
  • 大数据相关软件的安装指南(超详细的图文教程)
  • 逻辑回归简单案例分析--鸢尾花数据集
  • 【动态规划】C++算法:115.不同的子序列
  • 【EI会议征稿通知】第三届智能电网与绿色能源国际学术会议(ICSGGE 2024)
  • Python使用subprocess模块执行shell命令且自动退出命令
  • x-cmd pkg | procs - ps 命令的现代化替代品
  • API 开放平台项目(已整理,已废弃)
  • uniapp获取日期
  • Vue中的双向数据绑定是如何实现的
  • 监控各大电商平台商品价格,库存信息,数据分析,京东SKU详情
  • redis服务迁移数据工具--RDM
  • 在vue3中使用Cesium保姆篇
  • 贪心算法day05
  • Docker学习笔记(一):Docker命令总结
  • __proto__ 和 prototype的关系
  • Android单元测试 - 几个重要问题
  • angular2开源库收集
  • gf框架之分页模块(五) - 自定义分页
  • JS字符串转数字方法总结
  • Odoo domain写法及运用
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vim Clutch | 面向脚踏板编程……
  • 搭建gitbook 和 访问权限认证
  • 多线程 start 和 run 方法到底有什么区别?
  • 关于Flux,Vuex,Redux的思考
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 提醒我喝水chrome插件开发指南
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • #ifdef 的技巧用法
  • ( 10 )MySQL中的外键
  • (09)Hive——CTE 公共表达式
  • (10)STL算法之搜索(二) 二分查找
  • (23)Linux的软硬连接
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (第一天)包装对象、作用域、创建对象
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (七)Java对象在Hibernate持久化层的状态
  • (三) diretfbrc详解
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .NET Micro Framework 4.2 beta 源码探析
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET导入Excel数据
  • .NET正则基础之——正则委托
  • @html.ActionLink的几种参数格式
  • [AIGC] 使用Curl进行网络请求的常见用法