OpenHarmony轻量系统开发【3】代码编译和烧录 原创 精华

连志安
发布于 2022-1-19 19:02
浏览
3收藏

春节不停更,此文正在参加「星光计划-春节更帖活动」https://harmonyos.51cto.com/posts/9923
摘要:本文简单介绍OpenHarmony最新版本代码目录简单解读、编译、烧录
适合群体:适用于Hi3861开发板

3.1源码目录

下载完代码后,大家可以进入代码目录:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
这里重点介绍几个比较重要的文件夹:

1 vendor文件夹

该文件夹存放的是厂商相关的配置,包括组件配置、HDF相关配置,代码目录如下:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
可以看到有hisilicon文件夹,下面有Hi3516DV300、hispark_aries等,其中hi3861开发板对应的是hispark_pegasus
里面有如下文件:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
其中比较重要的是 config.json配置文件,里面定义了内核类型,和使用了哪些子系统。具体我们后再做具体解读。

2 device文件夹

该文件夹存放的是具体开发板、芯片相关的源码。这里OpenHarmony又分为SoC和Board两大块。其中SoC里面是具体芯片相关的代码、包括该芯片相关的驱动; board是开发板相关的代码,具体跟开发板相关。
之所以这样设计,是为将SoC和board区分出来,实现soc相关代码可复用。因为后续可能存在一个soc多个board的情况。
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
其中,润和的WiFi IoT开发板对应的soc是 hi3861v100文件夹,对应的board是 hispark_pegasus

3 arch文件夹

该文件夹存放具体芯片架构的代码,文件夹路径:
kernel/liteos_m/arch
代码路径如下:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

于是OpenHarmony实现了ARCH(架构)、soc(芯片)、board(开发板)3层隔离,降低了代码的耦合性。设计比较合理。

4 applications文件夹

该文件夹存放应用相关代码,后续我们编写代码需要在该文件夹下添加。

3.2编译

轻量系统采用hb编译,在代码根目录下执行
hb set
首次输入可以会提示需要输入路径,直接输入 . (英文的点号)即可
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
这里我们选择 wifiiot_hispark_pegasus
之后输入:
hb build -f
开始编译
看到如下即表示编译成功:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

编译出来的固件位于:out/hispark_pegasus/wifiiot_hispark_pegasus/
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
其中,Hi3861_wifiiot_app_allinone.bin 是我们要烧录到开发板的。

3.3烧录

(1)基于vscode方式烧录

OpenHarmony可以基于vscode的方式进行烧录,但是该方式比较复杂,这里暂时不推荐。
如果读者感兴趣可以参考:
https://device.harmonyos.com/cn/docs/documentation/guide/quickstart-lite-steps-hi3861-burn-0000001190053075

(2)基于hiburn工具烧录

推荐读者采用此方式,比较简单便捷。
首先下载HiBurn工具,下载链接:
https://harmonyos.51cto.com/resource/29

使用USB线连接到3861开发板,如图:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

(1)打开HiBurn工具,

(2)点击select file 选择要下载的Hi3861_wifiiot_app_allinone.bin文件,

(3)勾选上 Auto burn选项

(4)单击 Connect按钮

OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

(5)此时按下开发板上面的 RST 复位按钮,即可看到程序已经开始下载:

OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

(6)注意下载后,我们点击disconnect按钮,不然我们再次复位会重新烧录。我们也可以关闭掉 HiBurn 程序。

3.4运行效果

烧录完后,我们可以打开串口工具,查看串口打印:
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区
这是因为默认打开了xts测试,开发板跑起来系统后会做xts测试。
看到如下提示,则表示xts测试通过
OpenHarmony轻量系统开发【3】代码编译和烧录-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-1-20 09:39:29修改
3
收藏 3
回复
举报
4条回复
按时间正序
/
按时间倒序
只为今朝
只为今朝

串口工具有推荐吗

 

回复
2022-4-28 23:53:08
wx6271058be08dc
wx6271058be08dc 回复了 只为今朝
串口工具有推荐吗

MobaXterm

回复
2022-5-9 17:16:32
wx60b87e2b1aa86
wx60b87e2b1aa86

我拉取的源码和你的源码还不太一样哎

回复
2022-5-16 17:51:35
wx625abd52cd44b
wx625abd52cd44b

[OHOS INFO] Traceback (most recent call last):
[OHOS INFO]   File "/home/azusa/OpenHarmony/code/master/master_0620/build/loader/load.py", line 21, in <module>
[OHOS INFO]     from loader import subsystem_info  # noqa: E402
[OHOS INFO]   File "/home/azusa/OpenHarmony/code/master/master_0620/build/loader/subsystem_info.py", line 20, in <module>
[OHOS INFO]     from loader import subsystem_scan  # noqa: E402
[OHOS INFO]   File "/home/azusa/OpenHarmony/code/master/master_0620/build/loader/subsystem_scan.py", line 22, in <module>
[OHOS INFO]     from scripts.util.file_utils import read_json_file, write_json_file  # noqa: E402 E501
[OHOS INFO] ModuleNotFoundError: No module named 'scripts.util'

 

编译时出现了这种错误,请问是什么原因呢

 

回复
2022-6-24 04:31:51
回复
    相关推荐