03 基础篇-润和开发板连接过程

概述

在按照教程连接开发板的时候,不知道大家是否像我一样问题多多:

  1. 串口是什么?
  2. 为什么需要安装驱动?
  3. 到底虚拟机和开发板之间是如何建立连接的?

梳理

大致过程可以分成以下四步:

1. 驱动安装

首先我们明确串口的概念,即串行通信接口,它的特点是低速,便宜,比较适用于小数据量的场景。

在本项目中使用的Hi3861 芯片支持 UART(一种异步串行通信协议),并且内置了CH340 芯片(用于将串口数据转化为 USB 数据),详情见下图左侧部分。

而为了让操作系统可以接收并识别开发板的信息,以便于我们后续了解开发板的运行情况,我们需要安装 CH340 驱动,它的作用是将 USB 接口转化为串口形式,并在操作系统方面将其模拟为一个 "虚拟串口",并分配设备名(如 Windows 的COM3

所以在驱动安装阶段,我们的目的主要是要操作系统识别到我们的设备,所以,很多教程或者手册告诉我们,当发现在 Windows 的设备管理器上看到 COM3 就意味着驱动安装成功。

碎碎念:

或许读到这里,你和我一样困惑,为什么要这么麻烦的倒来倒去,既然操作系统也能识别串口,那直接用串口连接不就好啦,难道,是因为我们的电脑上没有串口的连接孔?
答:

对,没错,确实是因为硬件限制,所以才这么大费周折,大部分普通电脑都不支持串口,主要是因为串口的传输速度慢、接口类型过时,只要在少部分台式机和工业用途的电脑上还保留着。

2. 串口调试

理解了为什么要下载驱动,然后对操作系统有一定大致了解,

串口调试工具的作用,相信聪明的你就能理解的差不多啦。

当操作系统识别到"串口"设备之后,就会源源不断的把接收到的串口数据采集起来,然后串口调试工具通过调用操作系统提供的接口,并将接收到的二进制数据转化为我们可以看懂的格式,显示在屏幕上,方便开发者进行进一步开发。

3. 编译环境

在这一步,我们就要使用我们的虚拟机啦。

为什么使用虚拟机,而不直接使用我们日常的 Windows 呢?主要是因为操作系统的历史特性导致的,通过查阅资料总结,主要有如下三点:

  1. 现代主流的编译工具链(如 GCC、Clang)、构建系统(Make、CMake、Autotools)以及大量开源项目(如 Linux 内核、Apache、Docker 等),最初都是在类 Unix 系统(包括 Linux)中诞生和发展的。这些工具的设计逻辑、脚本语法(如 Shell 脚本)天然适配 Linux 的命令行环境,形成了成熟的 "开发-编译-部署" 闭环。
  2. 开源社区的核心资源(文档、补丁、工具链更新)大多以 Linux 为基准,对 Windows 的支持往往是 "次要适配",甚至部分项目直接声明 "优先支持 Linux,Windows 兼容性不保证"。
  3. 很多软件(尤其是服务器端、嵌入式、底层系统软件)的最终运行环境是 Linux 服务器或嵌入式 Linux 系统。在 Linux 环境下编译,可以直接使用系统原生的库(如 glibc)、系统调用接口,并且 Windows 的动态链接库(.dll)与 Linux 的共享库(.so)格式完全不同,依赖库的查找路径、权限管理逻辑也差异显著。在 Windows 上编译 Linux 目标程序时,需要手动配置交叉编译环境,复杂度远高于 Linux 原生编译。

所以,尽管计算机的历史相对比较短,但发展快速,在这过程中也形成了比较重的"历史包袱"。

配置好了虚拟机,我们需要下载 hb (HarmonyOS Build,本阶段最重要的工具),scons(用于 Hi3861 SDK的构建)以及上篇文章提到的 GN,ninja等一系列编译需要的工具。

然后根据操作手册上的说明,利用 hb 工具,通过命令行方式进行编译,并最终形成 bin 文件。

4.程序烧录

编译成二进制文件之后,我们可以在 Windows 下载 HiBurn 工具进行烧录。

注意在设置过程中,HiBurn 支持的波特率一般是 3 Mbp/s,但为了接受数据的稳定性,我们一般设置为 2Mbp/s。

对了,可是编译结束的之后,我们的文件在 Linux 系统上,怎么办?

主要有两种方法:

  1. 如果你安装Ubantu 的过程中没什么问题的话,是可以通过共享文件夹,或者拖拽工具,将文件拖到 Windows 上的(个人经验)
  2. 要是不行的,也可以参考教程上通过网络下载的方式,HiBurn 中允许通过输入虚拟机的 IP 地址,来登录 Unbantu 选择文件进行烧录。

最后,有一个好消息是,Hi3861 现在支持直接在 Windows进行编译和烧录啦。

只需要下载DevEco Device Tools插件,然后根据插件的说明一步一步来就好

和 HiBurn 的区别主要对比如下:

HiBurn DevEco Device Tools
波特率 3Mbp/s 0.9Mbp/s
保存 不保存历史记录 保存历史记录
编译 需要在 Unbantu 上 可以直接在 Windows 上

由此可以发现,虽然DevEco Device Tools的速度慢,但是胜在操作简单,功能丰富。

不过在配置过程中可能会出一些问题,在项目初期的时候,我和郭同学无论怎么配置,也没办法让DevEco Device Tools运行起来,最后没办法,只好在 Ubantu 上面配置环境了。

不过假期回家重新尝试的时候,发现竟然能用了,也算是运气吧~

相关推荐
程序员 _孜然2 小时前
Ubuntu/Debian修改网卡名字enP3p49s0为eth0
linux·运维·驱动开发·嵌入式硬件·ubuntu·debian
IDIOT___IDIOT2 小时前
Linux mount 命令
linux·运维·服务器
CTRA王大大3 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
小张程序人生4 小时前
《VMware 安装 CentOS 7.9 虚拟机详细教程(含图解步骤)》
linux·centos
分布式存储与RustFS5 小时前
RustFS的边缘计算优化方案在5G MEC场景下的实测数据如何?
人工智能·5g·开源·边缘计算·rustfs
泡沫冰@6 小时前
管理 SELinux 安全性
linux
LinXunFeng6 小时前
Flutter - 详情页初始锚点与优化
前端·flutter·开源
两张不够花7 小时前
Shell脚本源码安装Redis、MySQL、Mongodb、PostgreSQL(无报错版)
linux·数据库·redis·mysql·mongodb·postgresql·云计算
算家计算7 小时前
一句话,AI帮你P图!Qwen-Image-Edit本地部署教程:能转能改能加字
人工智能·开源·aigc