当前位置:   article > 正文

【鸿蒙设备开发笔记】OpenHarmony源码目录介绍+编译框架介绍_鸿蒙4源码目录

鸿蒙4源码目录


鸿蒙设备开发笔记】OpenHarmony源码目录介绍+编译框架介绍

源码目录

以小熊派为例子,其他开发板也不会差很多
小熊派的源码目录延续OpenHarmony官方目录结构,以下是源码目录的说明:

目录名描述
applicationsBearPi-HM_Nano应用程序样例
base基础软件服务子系统集&硬件服务子系统集
build组件化编译、构建和配置脚本
docs介绍、说明资料
domains增强软件服务子系统集
drivers驱动子系统
foundation系统基础能力子系统集
kernel内核子系统
prebuilts编译器及工具链子系统
test测试子系统
third_party开源第三方组件
utils常用的工具集
vendor厂商提供的软件
build.py编译脚本文件

如果使用hpm方式下载源码,而不是全量代码的话,bocs、domains、drivers可能是没有的,因为暂时没用到

可以对照鸿蒙技术架构图一起理解
鸿蒙

applications目录
在这目录之前可能不同开发板的文件可能有不同,直接往里面点就会看到

目录名内容
docs开发板原理图、相关课程PPT、环境搭建教程等资料
sample开发板案例代码及教程
README.md说明文件

base目录

有各种API相关文件

如外设的api文件路径\base\iot_hardware\interfaces\kits\wifiiot_lite

内有wifi,gpio,串口,i2c等相关的.h文件
在这里插入图片描述

domains目录

可对照技术架构图查看

内有智慧屏专有业务子系统、IOT专有业务子系统、等等多种子系统

可以根据项目需要进行使用,可以进行剪切,不需要的可以不要

kernel目录是内核子系统目录

鸿蒙支持的内核有Linux kernel 、LiteOS

Liteos 又有Liteos_a 、Liteos_m 小熊派开发板用的是Liteos_m

编译框架

鸿蒙采用gn和Ninja来控制代码的编译

GN是一种元构建系统,可以生成Ninja构建文件(Ninja build files)

在Unix或Linux下常使用Makefile来控制代码的编译,但是Makefile速度太慢,所以一套新的控制编译的工具Ninja就诞生了,Ninja相对于Makefile这套工具更注重于编译速度。

编译文件的大概逻辑为

Json文件

在路径 HarmonyOS \ build \ lite \ product下有一个.json文件

若有多个json文件,对应 “开发板名” 的拿个就是你要的

这个文件描述了各个编译模块的路径,如下

subsystem内为模块路径,
在这里插入图片描述

模块编译构造文件 .gn文件

去到刚刚 .json文件 内的模块路径 //applications/BearPi/BearPi-HM_Nano/sample内
有一个BUILD.gn,这个就是模块编译文件
这里其实又是指向了timer_example

⚫ A2_kernel_timer是相对路径,指向./applications/BearPi/BearPi-HM/sample/A2_kernel_timer/BUILD.gn。
⚫timer_example是目标,指向./applications/BearPi/BearPi-HM/sample/A2_kernel_timer/BUILD.gn中的static_library(“timer_example”)
在这里插入图片描述

业务编译构造文件 .gn文件

在 timer_example 下面又有一个BUILD.gn文件
⚫ static_library中指定业务模块的编译结果,为静态库文件libtimer_example.a,根据实际情况完成填写。
⚫ sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//“则表示绝对路径(此处为代码根路径),若不包含”//"
则表示相对路径。
⚫ include_dirs中指定source所需要依赖的.h文件路径。
在这里插入图片描述
(这里会将这个Timer_example.c,编译成libTimer_example.a文件,最终所有代码会编译为xxxx.bin文件,这个bin文件就是要烧录到开发板的文件)

三个文件下来,就指定编译了我们需要的业务代码

若有错误请大佬指教

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/273418
推荐阅读
相关标签
  

闽ICP备14008679号