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

鸿蒙设备-开发板基础学习(BearPi-HM Micro)


theme: minimalism

每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序,我们可以对鸿蒙设备开发的整个流程有一个初步的体验。BearPi-HM Micro开发板为例:

BearPi-HM Micro是什么?

BearPi-HM_Micro_Small的意思是小熊派的“BearPi-HM Micro开发板 + OpenHarmony小型系统”。BearPi-HM Micro是一款使用STM32MP157处理器的鸿蒙开发板,目前提供使用LiteOS-A操作系统内核OpenHarmony 3.0发行版源码下载。

BearPi-HM Micro开发板原理图

1.Typec电路原理图

2.音频电路原理图

3.Wi-Fi电路原理图

4.屏幕显示电路原理图

5.E53电路原理图

6.S24电路原理图

环境搭建

1.硬件要求

  • Linux服务器
  • Windows工作台(主机电脑)
  • BearPi-HM_Micro开发板
  • USB Type-C线(Windows工作台通过USB与BearPi-HM_Micr开发板连接)

2.软件要求

3.Linux构建工具要求

4.Windows开发工具要求

5.工具下载地址

安装编译基础环境

1.安装Linux编译环境

将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

ls -l /bin/sh

如果为显示为/bin/sh -> bash则为正常,否则请按以下方式修改:

方法一:在终端运行如下命令,然后选择 no。

sudo dpkg-reconfigure dash

方法二:先删除sh,再创建软链接。

rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh

2.修改镜像源

打开/etc/apt路径下的sources.list文件

将原本的镜像源改为中科大镜像源,然后关闭文件并保存

deb Index of /ubuntu/ bionic main restricted universe multiverse
deb-src Index of /ubuntu/ bionic main restricted universe multiverse
deb Index of /ubuntu/ bionic-updates main restricted universe multiverse
deb-src Index of /ubuntu/ bionic-updates main restricted universe multiverse
deb Index of /ubuntu/ bionic-backports main restricted universe multiverse
deb-src Index of /ubuntu/ bionic-backports main restricted universe multiverse
deb Index of /ubuntu/ bionic-security main restricted universe multiverse
deb-src Index of /ubuntu/ bionic-security main restricted universe multiverse
deb Index of /ubuntu/ bionic-proposed main restricted universe multiverse
deb-src Index of /ubuntu/ bionic-proposed main restricted universe multiverse

更新镜像源

sudo apt-get update

3.安装必要的库和工具

使用如下apt-get命令安装编译所需的必要的库和工具:

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler net-tools openssh-server git vim openjdk-11-jre-headless

安装Python3

打开Linux编译服务器终端。

输入如下命令,查看python版本号,若为python3.7+可跳过安装Python3步骤:

python3 --version

如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。

运行如下命令,查看Ubuntu版本

cat /etc/issue

设置python和python3软链接为python3.8。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

安装并升级Python包管理工具(pip3)

apt install python3-pip

4.安装hb

运行如下命令安装hb

python3 -m pip install --user ohos-build==0.4.3

设置环境变量

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

执行如下命令更新环境变量。

source ~/.bashrc

执行"hb -h",有打印以下信息即表示安装成功:

5.安装mkimage.stm32

新建tools目录

mkdir ~/tools

下载mkimage.stm32工具,并复制到/home/bearpi/tools/目录下

执行以下命令修改mkimage.stm32工具权限

chmod 777 ~/tools/mkimage.stm32

设置环境变量

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/tools:$PATH

执行如下命令更新环境变量。

source ~/.bashrc

5.映射网络磁盘

打开RaiDrive软件,添加链接信息

三、获取源码

创建文件夹:mkdir project 打开文件夹:cd project 输入下列命令行:git clone https://gitee.com/bearpi/bearpi-hm_micro_small.git 等待源码下载。

四、源码编译

在MobaXterm中输入以下指令,进入源码根目录

cd /home/bearpi/project/bearpi-hm_micro_small/

在MobaXterm中输入:

hb set

再输入"."(点)

.

选择“bearpi-hm_micro”,然后回车

在MobaXterm中输入:

hb build -t notest --tee -f

然后回车,等待直到屏幕出现:build success字样,说明编译成功。

在project\bearpi-hm_micro_small\out\bearpi-hm_micro\bearpi-hm_micro路径下

找到以下三个文件:

OHOS_Image.stm32:系统镜像文件
rootfs_vfat.img:根文件系统
userfs_vfat.img:用户文件系统

输入以下命令:

cp out/bearpi_hm_micro/bearpi_hm_micro/OHOS_Image.stm32 applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/rootfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/userfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/

五、烧录镜像

将开发板的拨码开关上拨到“000”烧录模式,并按一下开发板的RESET按键

在Windows打开STM32CubeProgrammer工具,选择“USB”烧录方式,再点击刷新按钮,然后点击"Connect"。

点击STM32CubeProgrammer工具的“+”按钮,然后选择烧录配置的tvs文件。

点击Browse按钮,然后选择工程源码下的烧录镜像路径

点击Download按钮启动镜像烧录,并等待烧录完毕。

六、启动开发板进入终端

打开MobaXterm,

点击:Session、Serial按钮

设置Seral port为 第一-4 查看到的COM号

设置Speed为 115200

点击OK

将开发板的拨码开关拨至“010”emmc启动模式,并按一下开发板的“RESET”按钮复位开发板。

MobaXterm上打印出运行日志,等待启动日志运行结束,按键盘“回车”按键进入开发板shell终端,输入例如"ls"命令,可与开发板交互。

开发板屏幕出现桌面及预安装的"setting"应用

本文内容是鸿蒙开发中对开发板技术的简单运用,更多的鸿蒙开发技术可以前往我主页查询,下面分享鸿蒙开发4.0技术分布(略缩图):

高清完整版技术学习路线图如下寻找保存(附鸿蒙文档)

相关文章:

鸿蒙设备-开发板基础学习(BearPi-HM Micro)

theme: minimalism 每当学习一门新的编程语言或者上手一款新的开发板,在学习鸿蒙设备开发过程中,带大家写的第一个程序,通过这个程序,我们可以对鸿蒙设备开发的整个流程有一个初步的体验。BearPi-HM Micro开发板为例:…...

Oracle导入导出dump

创建目录: create directory *** as /bak; #***名称可以随便命名 需要手工创建/bak,并且此目录oracle用户有读取,目录地址空间要够用。 查看所有目录 select * from DBA_DIRECTORIES;---查询导入导出的目录 导入 impdp ****/**** direc…...

判断vector、string是否存在某个元素

1、string字符串中是否存在某个字符(char) string中find()返回值是字母在母串中的位置(下标索引),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数) …...

C语言--结构体详解

C语言--结构体详解 1.结构体产生原因2.结构体声明2.1 结构体的声明2.2 结构体的初始化2.3结构体自引用 3.结构体内存对齐3.1 对齐规则3.2 为什么存在内存对齐3.3 修改默认对⻬数 4. 结构体传参 1.结构体产生原因 C语言将数据类型分为了两种,一种是内置类型&#xf…...

外卖骑手与行人之间的非零和博弈

一、背景 自2013年成立以来,美团外卖一直保持着高速增长,通过提供便捷、高效的外卖服务,满足了大量消费者的需求。美团外卖的服务不仅限于基础的送餐服务,还涵盖了多种生活服务,如超市便利、药品配送等,满…...

[AutoSar]基础部分 RTE 06 对runnable的触发和SWC的影响

目录 关键词平台说明一、runnable二、RTE的event2.1Mode类型event2.2周期触发类型2.3 数据交互触发 三、internal runnable value四、专属运行区指定五、per_instance memory 关键词 嵌入式、C语言、autosar、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商T…...

网络层协议及IP编址与IP路由基础华为ICT网络赛道

目录 4.网络层协议及IP编址 4.1.网络层协议 4.2.IPv4地址介绍 4.3.子网划分 4.4.ICMP协议 4.5.IPv4地址配置及基本应用 5.IP路由基础 5.1.路由概述 5.2.静态路由 5.3.动态路由 5.4.路由高阶特性 4.网络层协议及IP编址 4.1.网络层协议 IPv4(Internet Protocol Versi…...

基于stm32f4的蓝牙控制小车

1. 引言 蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享成为常理,将手机变为遥…...

基于BP神经网络的租金预测

目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于BP神经网络的租金预测 代码下载:基于BP神经网络的租金预测(代码完整,数据齐全)资源-CS…...

C语言学习记录—进阶作业(通讯录文件版本)

通讯录 1. 添加一个函数&#xff0c;在退出通讯录的时候把信息到保存到文件中 2. 添加一个函数&#xff0c;在通讯录打开的时候&#xff0c;可以把文件中的信息加载到通讯录中 contact.h文件 #pragma once #include <string.h> #include <stdio.h> #include <…...

深度学习笔记(四)——TF2构建基础网络常用函数+简单ML分类网络实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解&#xff0c;如有遗漏或错误&#xff0c;欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换&#xff1a; a1 tf.constant([1,2,3], dtypetf.floa…...

GPT function calling v2

原文&#xff1a;GPT function calling v2 - 知乎 OpenAI在2023年11月10号举行了第一次开发者大会&#xff08;OpenAI DevDays&#xff09;&#xff0c;其中介绍了很多新奇有趣的新功能和新应用&#xff0c;而且更新了一波GPT的API&#xff0c;在1.0版本后的API调用与之前的0.…...

【Golang】IEEE754标准二进制字符串转为浮点类型

IEEE754介绍 IEEE 754是一种标准&#xff0c;用于表示和执行浮点数运算的方法。在这个标准中&#xff0c;单精度浮点数使用32位二进制表示&#xff0c;分为三个部分&#xff1a;符号位、指数位和尾数位。 符号位(s)用一个位来表示数的正负&#xff0c;0表示正数&#xff0c;1表…...

【开源项目】轻量元数据管理解决方案——Marquez

大家好&#xff0c;我是独孤风。 又到了本周的开源项目推荐。最近推荐的元数据管理项目很多&#xff0c;但是很多元数据管理平台的功能复杂难用。 那么有没有轻量一点的元数据管理项目呢&#xff1f; 今天为大家推荐的开源项目&#xff0c;就是一个轻量级的元数据管理工具。虽然…...

dirty file page

转自&#xff1a;https://www.cnblogs.com/zhiminyu/p/17330763.html 0.前言 Linux 内核Page Cache 和Buffer Cache 关系及演化历史 一文中讲过Linux 2.4之后将Page Cache和Buffer Cache 进行了融合&#xff0c;在buffer_head 中添加了b_page&#xff0c;很容易就能找到缓存的…...

HTAP(Hybrid Transactional/Analytical Processing)系统之统一存储的实时之道

文章目录 HTAP与时俱进LASER中的存储关键知识LSM&#xff08;Log-Structured Merge Tree&#xff09;SkipList&#xff08;跳表&#xff09;CDC&#xff08;Changed Data Capture&#xff09;SST&#xff08;Sorted Sequence Table&#xff09; 特性列组&#xff08;Column Gro…...

【linux】tcpdump 使用

tcpdump 是一个强大的网络分析工具&#xff0c;可以在 UNIX 和类 UNIX 系统上使用&#xff0c;用于捕获和分析网络流量。它允许用户截取和显示发送或接收过网络的 TCP/IP 和其他数据包。 一、安装 tcpdump 通常是默认安装在大多数 Linux 发行版中的。如果未安装&#xff0c;可…...

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码&#xff0c;并对代码进行了详细的注释。最后&#xff0c;对算法的效果进行了测试。相信通过这个专栏&#xff0c;你可以对这些算法的原理及实现有深入的理解&#xff01;   如有疑问&#xf…...

Pandas实战100例 | 案例 26: 检测异常值

案例 26: 检测异常值 知识点讲解 在数据分析中&#xff0c;检测和处理异常值&#xff08;或离群值&#xff09;是一个重要的步骤。异常值可能会影响数据的整体分析。一种常用的方法是使用四分位数和四分位数间距&#xff08;IQR&#xff09;来识别异常值。 四分位数和 IQR: …...

C语言学习NO.11-字符函数strlen,strlen函数的使用,与三种strlen函数的模拟实现

&#xff08;一&#xff09;strlen函数的使用 strlen函数的演示 #include <stdio.h> #include <string.h>int main() {char arr1[] "abcdef";char arr2[] "good";printf("arr1 %d,arr2 %d",strlen(arr1),strlen(arr2));return …...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...