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


【鸿蒙设备开发笔记】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文件就是要烧录到开发板的文件)

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

若有错误请大佬指教

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
鸿蒙Linux定制版项目文档是关于鸿蒙Linux系统的开发项目的文档,它提供了有关项目目标、需求、设计、实现、测试等方面的详细说明。该文档通常包括以下几个主要部分: 1. 引言:介绍鸿蒙Linux定制版项目的背景和目的,包括项目的意义和预期结果。 2. 需求分析:对项目需求进行详细分析和规划,包括功能需求、性能需求、安全需求等。 3. 系统设计:描述鸿蒙Linux定制版系统的整体设计和架构,包括系统的各个模块和组件的功能和关系。 4. 模块设计:详细描述系统中各个关键模块的设计和实现方法,包括模块的接口定义、数据结构、算法等。 5. 测试与验证:讨论系统开发过程中的测试策略和方法,并描述如何验证系统是否满足需求。 6. 上线部署:介绍鸿蒙Linux定制版系统的部署过程和方法,包括软硬件环境要求、安装步骤和注意事项。 鸿蒙Linux定制版项目的开发工具通常是指用于开发和调试定制版系统的软件和硬件工具。这些工具可包括编译器、调试器、开发板、仿真器等。 HarmonyOS系统源码是指鸿蒙操作系统的开源代码,开发者可以通过获取和阅读源代码来理解系统的实现原理和细节,并进行二次开发和定制。 在线开发地址是指提供在线开发环境和工具的网站或平台,开发者可以通过该地址进行基于鸿蒙Linux的定制版系统的开发工作,如代码编写、编译、调试等。 总之,鸿蒙Linux定制版项目文档、开发工具、HarmonyOS系统源码和在线开发地址都是鸿蒙Linux定制版系统开发的重要资源和支持,对于开发者来说,它们是进行开发、定制和部署工作的必备元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuanFuXinCSDN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值