版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章OpenHarmony开发入门Openharmony源码结构开发示例——第一个程序HelloWorld程序设计流程代码的执行流程Openharmony源码结构
OpenHarmony设计比较合理,实现了ARCH(架构)、SOC(芯片)、Board(开发板)三层隔离,降低了代码的耦合性。Openharmony源码结构
目录名描述applications应用程序样例,包括camera等,是开发者添加自定义应用的主要目录arkArkUI/ArkTS框架(应用开发核心)base基础软件子系统(核心服务与库)build构建系统(编译、链接、打包工具链)developtools开发工具(IDE插件、调试工具)device设备硬件适配层(芯片/开发板源码)docs说明文档domains增强软件服务子系统集drivers驱动子系统foundation系统基础能力子系统集interface接口定义层(跨子系统统一接口)kernel内核子系统out编译输出目录(编译后生成,非源码自带)prebuilts预编译工具链(编译器、链接器等)productdefine产品定义配置(设备类型、组件选择)test测试子系统third_party第三方开源组件(如:JSON、MQTT库)utils常用的工具集vendor厂商配置层(芯片厂商定制化配置)build.py编译脚本文件Openharmony源码结构开发示例——第一个程序HelloWorld程序设计流程代码的执行流程程序设计流程
1.创建自定义app目录和文件
首先在applications/sample/wifi-iot/app目录下创建一个名为myfirstapp文件夹。程序设计流程
在该文件夹下,新建helloworld.c和BUILD.gn文件。程序设计流程
编写helloworld.c的程序:#include<stdio.h>
#include"ohos_init.h"
//在OpenHarmony中,避免使用main作为自定义函数名voidHelloWorld(void){printf("Helloworld!\n");}
SYS_RUN(HelloWorld);//系统启动后,调用自定义的函数//省略此句,自定义函数无法运行程序设计流程
编写用于将业务构建成静态库的BUILD.gn文件:#自定义名为mylibrary的静态库static_library("mylibrary"){#静态库所包含的源码sources=["helloworld.c"#代码应缩进4个空格]
#源文件中头文件的路径include_dirs=["//utils/native/lite/include",#ohos_init.h文件所在位置] //代表源码根目录}程序设计流程
2.修改配置
在applications/sample/wifi-iot/app目录下打开BUILD.gn,这个文件是系统自带的构建脚本,与myfirstapp中新建的gn文件同名,这个文件可以聚合该目录下所有子应用的构建目标,作为统一编译入口将多个应用集成到系统镜像中。简而言之,此文件可以告诉系统哪个文件要被编译。import("//build/lite/config/component/lite_component.gni")lite_component("app"){features=[#只修改此处"myfirstapp:mylibrary", #冒号之前为所在文件夹名称,冒号后为静态库名称#"startup",]}程序设计流程
3.编译
参考2.2.4节的方法在VSCode的终端输入指令完成编译。如果编译过程中提示有错,则根据提示修改程序,再重复该步骤。4.烧写程序
参考2.2.5节的方法,使用HiBurn程序将编译好的镜像烧录到开发板。完成编译。如果编译过程中提示有错,则根据提示修改程序,再重复该步骤。5.调试程序
参考2.2.6节的方法,使用串口助手进行程序的调试。程序设计流程
从调试结果可见,串口助手调试窗口显示出“HelloWorld!”。Openharmony源码结构开发示例——第一个程序HelloWorld程序设计流程代码的执行流程代码的执行流程
hi3861的内核liteos_m启动运行过程如下:1.内核启动后,第一个入口函数是hi_voidapp_main(hi_void),此函数会打印sdk的版本号,其最后一行调用OHOS_Main();2.OHOS_Main()会调用OHOS_SystemInit();3.OHOS_SystemInit()会进行OpenHarmony系统的初始化;4.OHOS_SystemInit()中的MODULE_INIT(run)
批量执行所有用SYS_RUN()宏注册的函数,如:前面helloworld.c程序中SYS_RUN()宏注册的HelloWorld函数。代码的执行流程
函数hi_voidapp_main(hi_void)和OHOS_Main()所在的c文件位于OpenHarmony/device/hisilicon/hispark_pegasus/sdk_liteos/app/wifiiot_app/src目录下,包括以下文件:代码的执行流程
函数OHOS_SystemInit()所在的c文件位于OpenHarmony/base/startup/bootstrap_lite/services/source目录下,包括以下文件:代码的执行流程
以下是hi_voidapp_main(hi_void)的源代码:代码的执行流程
以下是hi_voidapp_main(hi_void)的源代码:代码的执行流程
以下是hi_voidapp_main(hi_void)的源代码:代码的执行流程
以下是h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2.2《养成亲社会行为》教学设计 2026-2027学年度道德与法治八年级上册 统编版
- 蓝色5S整改工作汇报
- 网络安全教育课件图文完美版
- 合规转利润:降本增效全指南(2026)《GBT 39259-2020绿色制造 制造企业绿色供应链管理 物料清单要求》
- 合规转利润:降本增效全指南(2026)《GBT 39182-2020家用和类似用途热泵热水器安装规范》
- 合规转利润:降本增效全指南(2026)《GBT 39113-2020鞋类 鞋类和鞋类部件中存在的限量物质 苯酚的测定》
- 江苏省镇江市镇江外国语学校2025-2026学年九年级(下)月考化学试卷(4月份)(含答案)
- 2026年浙江省高中数学三角函数专题训练题库
- 湖北省部分学校2027届高三上学期9月开学学业评估物理试卷(含答案)
- 合规转利润:降本增效全指南(2026)《GBT 39039-2020高强度钢氢致延迟断裂评价方法》
- DBJ53T 83-2017 云南省膨胀土地区建筑技术规程
- 2026年高考全国一卷作文审题立意分析与参考范文
- 急诊分级诊疗指南(2025年版)
- 山东省2026年普通高校招生(春季)统一考试数学试题答案
- 肠易激综合征中医诊疗共识解读
- 中国水利水电第九工程局有限公司2026届秋季招聘148人笔试历年难易错考点试卷带答案解析
- 2026年建筑行业安全事故案例反思与警示
- 2026年二建《水利水电工程实务》真题卷(附答案解析)
- 化工企业重大隐患自查表 AQ3067
- AutoCAD 2016机械制图案例教程
- 2026年及未来5年市场数据中国芥花油行业市场发展数据监测及投资战略咨询报告
评论
0/150
提交评论