[openharmony]liteos-a编译过程分析
最近搞一个sensor接入openharmony的事情,在分析源码中的加速度计驱动相关源码时,发现不紧有BUILD.gn文件,还有Makefile文件,并且里面都有记录源文件路径。所以很困惑,openharmony是通过gn+ninja编译的还是通过make编译的?
创新互联建站是一家专注于成都网站制作、成都网站设计与策划设计,富平网站建设哪家好?创新互联建站做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:富平等地区。富平做网站价格咨询:13518219792
为了搞清楚,所以针对liteos-a系统下的编译过程进行分析,在这里记录一下
通过官方文档看,liteos-a系统编译时用的是官方的hb命令 hb set 和 hb build 命令,所以入口肯定是hb工具
查看openharmony源码中build目录下有一个lite/hb目录(hb命令的源码目录,使用python脚本)
看鸿蒙研究站里面有一篇介绍hb命令的调试方法,通过vscode+python插件调试,参见 《v59.xx 鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程》
设置好之后就可以开始在vscode上调试
这个是整个编译的重点,通过调试可以看到最终是调用了gn/ninja/fs_make,如下分析
这个就是整体的编译过程了,先调用gn生成ninja文件,再通过ninja进行编译,最后通过fs_make制作镜像
因为内容太多,下面对这三个编译动作先做个整体的介绍,后续再对每一个进行详细分析
继续调试,会先进入 gn_build 接口,看实现就是调用了 gn gen 命令,如下
查看gn_cmd变量,详细命令为(比较多,经过了整理):
这个命令之后,就会将工程中所有用到的 BUILD.gn 文件转换成 module_name.ninja 文件(类似 makefile )供后面 ninja 命令(类似 make )调用并进行编译
再继续调试就会进入 ninja_build 接口,实现以及执行的详细的 ninja 命令如下
这个命令与 make 命令类似,但是注重速度(详细信息可以在网上搜索两者区别);此命令执行即是通过build.ninja/toolchain.ninja/各BUILD.gn转换的.ninja来进行编译,并生成.bin/.so/.a等文件
整个编译OK之后会输出如下图中成功信息
在out目录下就会生成烧录用到的镜像文件,如下图
华为的鸿蒙系统是是什么语言开发的?
根据华为公布的方舟编译器资料,可以得知鸿蒙系统是用C、C++语言编写。
鸿蒙系统和方舟编译器的思路是一样:直接使用机器语言编写app,取消安卓系统的ART虚拟机,直接编译为二进制机器码;
这样的好处是:不需要中转,执行速度快;劣势是:必须要有大量的静态方案、内存空间要求更高。
扩展资料
系统简介
鸿蒙微内核是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全,主要用于物联网,特点是低时延,甚至可到毫秒级乃至亚毫秒级。
鸿蒙OS实现模块化耦合,对应不同设备可弹性部署,鸿蒙OS有三层架构,第一层是内核,第二层是基础服务,第三层是程序框架 。
可用于手机、平板、PC、汽车等各种不同的设备上。还可以随时用在手机上,但暂时华为手机端依然优先使用安卓、华为电脑端依然优先使用windows和Linux。
参考资料来源:百度百科-华为鸿蒙系统
鸿蒙系统能安装vscode吗
鸿蒙系统能安装vscode的,vscode对电脑的配置要求不高,一般办公本就可以,但当然配置越高运行越流畅。
因为Visual Studio,它是一个非常强大的IDE。可支持C/C++、C#、Vb多种编程语言。但是如果你电脑内存小,只学习C语言的话,使用gcc、或者Dev-C++等编译器也是可以的。
Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
系统简介
分布式架构首次用于终端OS,实现跨终端无缝协同体验;确定时延引擎和高性能IPC技术实现系统天生流畅; 基于微内核架构重塑终端设备可信安全。
对于消费者而言,HarmonyOS通过分布式技术,让8+N设备具备智慧交互的能力。在不同场景下,8+N配合华为手机提供满足人们不同需求的解决方案。对于智能硬件开发者,HarmonyOS可以实现硬件创新,并融入华为全场景的大生态。
对于应用开发者,HarmonyOS让他们不用面对硬件复杂性,通过使用封装好的分布式技术APIs,以较小投入专注开发出各种全场景新体验。
网站名称:vscode开发鸿蒙,vscode什么开发的
分享网址:http://lswzjz.com/article/dsejpgh.html