【OpenHarmony编译构建系统】介绍新增组件以及组件模块开发 原创 精华
前言
本文介绍了编译构建系统的使用,新增组件的步骤,组件模块开发的方法
新增组件
准备好开发套件
1.编写组件源码
在applications\sample目录下新建component_demo目录
之后在component_demo目录下新建demo.c文件
开始编写… 保存文件
ps: 源码各部分组成简介可以看我的另一篇文章 https://ost.51cto.com/posts/25049
2.编写编译脚本
在component_demo目录下新建BUILD.gn文件
开始编写编译脚本… 保存文件
ps1: static_library是静态库 testdemo是库名称,最终会被编译成libtestdemo.a
ps2: sources 指定要编译的demo.c源文件
ps3: include_dirs是指定的include目录 "//"表示源码根目录,后面是目录名称
ps4: 注意逗号
3.单独编译目标
打开虚拟机,找到1.1.3源码根目录,选择在终端打开
查看具体用法
hb build -h
ps:语法是 hb build -T 路径 : 目标
hb build -f -T //applications/sample/component_demo:testdemo
4.添加组件定义
回到VSCode 根据路径 build\lite\components\applications.json 打开applications.json
定义组件,保存文件
ps1: targets是编译入口 是源码根目录下的applications/sample/component_demo:testdemo
ps2: adapted_kernel是适配内核
5.将组件配置到产品
根据路径 vendor\hisilicon\hispark_pegasus\config.json 打开config.json 找到 “subsystem”: “applications” 进行配置,保存文件
ps: 注意逗号
单独编译组件
hb build -f testdemo
ps:在轻量系统中,单独编译的目标或组件,不能独立运行,适合发现编译错误
烧录运行的话,需要进行固件的全量编译
hb build -f
6.烧录固件
7.运行
烧录完成之后,打开MobaXterm,连接串口,重启开发板
组件模块开发
1.建立根目录
根据路径 applications\sample\wifi-iot\app 找到app目录 新建gn_practice目录
2.建立目录树
应用程序模块: application
驱动模块: driver
库模块: library
3.编写各模块源码
ps:每写完一个文件记得保存
先是application模块,建立一个子模块的c文件和头文件
子模块的c文件include对应的头文件
ps: 爆红只需要点击黄色小灯泡,添加到includePath即可 不会添加的可以看我的上一篇文章
新建一个主程序文件
编写主程序文件
接下来是driver模块和library模块
在主程序文件include两个模块的头文件
4.编写各模块脚本
先编写application模块脚本
ps: cflags是编译参数 这三种情况在默认编译方式下是不允许的,会引发编译错误,设置这三个参数后,编译系统会把它们不当作错误来处理
接下来编写driver和library模块
5.定位组件编译入口
applications\sample\wifi-iot\app\BUILD.gn
修改三个模块的编译
6.编译烧录运行
设置
hb set
编译
hb build -f
编译成功
烧录成功
运行成功
每次烧录都需要全量编译吗?
流程很详细