版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1.1鸿蒙系统源码框架通过本节学习,您可以:了解鸿蒙系统源码框架鸿蒙系统源码框架在进行具体的开发工作之前,鸿蒙系统源码的目录结构是必须要了解的。鸿蒙系统源码的目录结构如图所示:鸿蒙系统源码框架目录名描述applicationsapplications目录下有sample、standard两个文件夹,其中sample文件夹下是开发板案例代码及教程,standard文件夹下是鸿蒙标准系统的部分应用,为开发者提供了构建标准系统应用的具体实例,这些应用支持在所有标准系统的设备上使用basebase目录是有关基础软件服务子习系统集和硬件服务子系统集的内容buildBulid目录下主要包含了构建脚本、配置信息脚本、工具链、工具等内容Developtools该目录是研发工具链子系统,包含ACE框架工具、追踪进程轨迹工具、HDC工具、性能优化组件、打包工具组件等内容device该目录下包含支持的硬件和模拟器,开发者可将与移植有关的文件放到该目录下docsdocs目录下是中文和英文的相关文档鸿蒙系统源码框架目录名描述domainsDomains目录是增强软件服务子系统集,对照鸿蒙技术机构图可知,内有智慧屏专有业务子系统、穿戴专有业务子系统、IoT专有业务子系统等,可以根据项目需要进行使用,可以进行剪切drivers该目录下是驱动子系统对应的HDF源码,包含适配代码、驱动框架核心代码、外设驱动代码foundationfoundation目录是有关系统基础能力子系统集的内容,包含了Ability开发框架接口、Ability管理服务、ACEUI框架、AI子系统、用户程序框架接口、通信方式、分布式硬件、分布式任务调度、分布式数据管理、图像子系统、多媒体子系统、多模输入子系统等鸿蒙系统源码框架目录名描述kernelkernel目录是内核子系统目录,鸿蒙支持的内核有linux、LiteOS_A、LiteOS_Mprebuilts该目录下是官方的编译工具,包含cmake、GCC、Python、clang等一系列编译工具test测试子系统,该目录下包含了开发者测试组件、测试框架核心组件、XTS兼容性测试组件等third_party该目录主要是开源第三方的组件。随着每一次版本的更新,第三方的组件也会相应的增加很多utils该目录下是常用的工具集,包括工具类的native层实现、ndk库的配置目录,系统相关的预定义值和安全策略配置等vendor该目录下是不同厂商的开发板芯片驱动软件,以及部分仿真工程样例谢谢3.1.2鸿蒙系统源码下载通过本节学习,您可以:了解鸿蒙系统源码下载鸿蒙系统源码下载1.DevEcoMarketplace网站下载源码
(1)准备工作需要在本地安装Node.js和hpm命令行工具。从Node官网下载/zh-cn/download/,推荐安装LTS版本。打开CMD,输入命令:npminstall-g@ohos/hpm-cli安装完成后,输入如下命令,显示hpm版本,表示安装成功:hpm-V或hpm--version鸿蒙系统源码下载(2)下载组件打开DevEcoMarketplace网站/#/cn/home,点击顶部的设备组件,左侧边栏可以看到开源发行版的相关选项。1.DevEcoMarketplace网站下载源码鸿蒙系统源码下载(2)下载组件在顶部的搜索框内输入关键字,例如“摄像头”,会出现与关键字匹配的结果。左侧边栏还可以添加过滤条件如开发板、内核。1.DevEcoMarketplace网站下载源码鸿蒙系统源码下载(2)下载组件选择其中一个点开,可以看到发行版的详情介绍。通过右上角的“直接下载”可以直接下载到本地;点击“设备组件裁剪”可以打开组件详情页,进行定制组件的添加,填写项目信息进行下载。1.DevEcoMarketplace网站下载源码鸿蒙系统源码下载(3)安装组件下载的组件是压缩包形式,需要先解压缩。在解压后的文件目录地址栏中输入CMD,打开命令行窗口。执行hpminstall命令,系统会自动下载并安装组件。窗口中显示“Installsuccessful”表示组件下载及安装成功。下载的组件将保存在工程目录下的ohos_bundles文件夹中。1.DevEcoMarketplace网站下载源码鸿蒙系统源码下载2.镜像站点下载源码通过镜像站点下载的是鸿蒙系统整个源码,需要自行裁剪,才能进一步的进行开发。从镜像站点可以获取稳定版本和最新发布的版本,其他版本的获取源码方式以及具体版本信息可以参考官网的Release-Notes。LTS版本源码。LTS版本源码版本信息下载站点全量代码(标准、轻量和小型系统)3.0站点标准系统解决方案(二进制)3.0站点Hi3861解决方案(二进制)3.0站点Hi3518解决方案(二进制)3.0站点Hi3516解决方案-LiteOS(二进制)3.0站点Hi3516解决方案-Linux(二进制)3.0站点RELEASE-NOTES3.0站点鸿蒙系统源码下载3.创建工程自动获取源码需要在Windows环境通过RemoteSSH远程连接上Ubuntu,才可以创建OpenHarmony新工程。打开DevEcoDeviceTooI,进入主页,点击“新建工程”。鸿蒙系统源码下载3.创建工程自动获取源码配置说明:OpenHarmony源码:选择需要下载的OpenHarmony源码。工程名:设置工程名称。工程路径:选择工程文件存储路径。SOC:选择支持的芯片。开发板:选择支持的开发板。产品:选择开发板自动生成的产品。在新工程配置向导页,配置工程相关信息,工程配置完成后,点击“确定”,DevEcoDeviceTooI会自动启动OpenHarmony源码的下载。谢谢3.2.1编写HelloWorld程序通过本节学习,您可以:熟悉HelloWorld程序的编写方法编写HelloWorld程序在新建工程中,SOC选择HI3861,开发板自动选择Hi3861,产品显示wifiiot_hispark_pegasus,配置好信息后下载源码。编写HelloWorld程序1.建立代码目录在OpenHarmony/applications/sample/wifi-iot/app路径下新建一个目录,来存放代码文件。例如,在app下新增my_app,其中Hello_world.c为需要编写的代码,BUILD.gn为编译脚本,具体目录结构如下:.└──applications└──sample└──wifi-iot└──app└──my_app│──Hello_world.c└──BUILD.gn编写HelloWorld程序2.编写代码新建Hello_World.c文件,在Hello_world.c中新建入口函数HelloWorld,并实现程序逻辑。在代码的最后,使用OpenHarmony启动恢复模块接口SYS_RUN()启动程序,SYS_RUN()是定义在ohos_init.h头文件的。具体代码如下:
#include<stdio.h>
#include"ohos_init.h"
#include"ohos_types.h"
voidHelloWorld(void)
{
printf("Helloworld!\n");
}
SYS_RUN(HelloWorld);编写HelloWorld程序3.编写BUILD.gn文件编写BUILD.gn文件的目的是将程序构建成静态库。BUILD.gn文件由目标、源文件、头文件路径三部分构成,需由开发者完成填写。新建./applications/sample/wifi-iot/app/my_app下的BUILD.gn文件,并完成如下配置。示例代码如下:说明:static_library中指定模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含“//”则表示绝对路径,若不包含“//”则表示相对路径。include_dirs中指定source所需要依赖的.h文件路径。
static_library("myapp"){
sources=[
"hello_world.c"
]
include_dirs=[
"//utils/native/lite/include"
]}编写HelloWorld程序4.添加新组件修改文件build/lite/components/applications.json,添加组件hello_world_app的配置。
{
"component":"hello_world_app",
"description":"helloworldsamples.",
"optional":"true",
"dirs":[
"applications/sample/wifi-iot/app/my_app"
],
"targets":[
"//applications/sample/wifi-iot/app/my_app:myapp"
],
"rom":"",
"ram":"",
"output":[],
"adapted_kernel":["liteos_m"],
"features":[],
"deps":{
"components":[],
"third_party":[]
}
},编写HelloWorld程序5.修改单板配置文件修改文件vendor/hisilicon/hispark_pegasus/config.json,新增Hello_world_app组件的条目,在applications子系统配置中增加代码。具体代码如下:
{
"subsystem":"applications",
"components":[
#增加条目#
{"component":"hello_world_app","features":[]},
{"component":"wifi_iot_sample_app","features":[]}
]谢谢3.2.2编译HelloWorld程序通过本节学习,您可以:熟悉HelloWorld程序编译编译HelloWorld程序DevEcoDeviceTool支持Hi3861V100开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。1.在菜单栏中点击工程配置,进入Hi3861工程配置界面。编译HelloWorld程序2.在工具链页面中,DevEcoDeviceTool会自动检测依赖的编译工具链是否完备。如果编译器和烧录器后面显示图标×,可单击“下载未安装的工具”,自动安装所需工具,或单击工具后方的下载安装指定工具。如当前识别到的工具类型有缺失,需要补充,可单击“添加实用工具”添加。如工具无法通过下载方式安装,表示该工具未被收录,需要开发者自行下载到本地后单击Import导入。如果“OpenHarmony环境依赖”后面显示图标×,请单击“安装”,进行自动下载安装。编译HelloWorld程序部分工具安装需要使用root权限,请在终端窗口输入用户密码进行安装。安装完成后,工具和环境依赖的状态显示为√。编译HelloWorld程序3.在DevEcoDeviceTool界面的PROJECTTASKS中,点击对应开发板下的Build,执行编译。编译HelloWorld程序4.等待编译完成,在终端窗口输出“SUCCESS”,编译完成。编译完成后,可以在工程的out目录下,查看编译生成的文件,用于后续的Hi3861V100开发板烧写。编译HelloWorld程序说明:编译时,如果编译不成功,提示“'Python':Nosuchfileordirectory”,是因为Python路径不正确导致的。解决方法:(1)打开终端,输入“whereispython”,查询Python路径。(2)检查输出结果是否包含/usr/bin/python3.8或者/usr/bin/python3.9,如果包含,则执行如下命令,命令中python版本按实际情况修改。sudoln-s/usr/bin/python3.8/usr/bin/python如果输出结果不包含usr/bin/python3.8或者/usr/bin/python3.9,请执行步骤(3)。(3)执行命令,重新安装DevEcoDeviceTool,其中“devicetool-linux-tool-00”根据实际版本修改。sudo./devicetool-linux-tool-00.sh谢谢3.2.3烧写HelloWorld程序通过本节学习,您可以:熟悉烧写HelloWorld程序烧写HelloWorld程序烧写程序是将编译后的程序文件下载到开发板上。Hi3861V100开发板的烧写是在Windows环境进行烧写的。DevEcoDeviceTool通过Remote远程模式,将Ubuntu环境下编译生成的程序文件拷贝至Windows目录下,然后通过Windows的烧写工具将程序文件烧写至开发板中。1.连接设备连接之前需要安装USB转串口的驱动程序,安装CH341SERUSB转串口驱动程序,驱动安装完成后,重新插拔USB接口即可。使用USB数据线将电脑和开发板连接起来,插开发板的Type-C接口。烧写HelloWorld程序2.在DevEcoDeviceTool中,选择REMOTEDEVELOPMENT>LocalPC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。如果LocalPC右边连接按钮为红色图标,则远程计算机与本地计算机为已连接状态,不需要执行其他操作。如果LocalPC右边连接按钮为绿色图标,则点击绿色按钮进行连接。连接时DevEcoDeviceTool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。烧写HelloWorld程序3.在菜单栏中点击工程配置按钮,进入工程配置界面。烧写HelloWorld程序4.在工具链页面,检查烧录器是否已安装,如果未安装可以通过下载按钮在线安装。烧写HelloWorld程序5.在“wifiiot_hispark_pegasus”页面,设置烧写选项,包括upload_port、upload_protocol和upload_partitions。配置完成后工程将自动保存。upload_port:选择已查询的串口号。upload_protocol:选择烧写协议,选择“hiburn-serial”。upload_partitions:选择待烧写的文件名称。如果需要修改待烧写文件地址,可点击每个待烧写文件后的按钮进行修改。烧写HelloWorld程序6.在“PROJECTTASKS”中,点击Upload按钮,启动烧写。7.启动烧写后,显示如下提示信息时,需要在15秒内,按下开发板上的RST按钮重启开发板。烧写HelloWorld程序重新上电后,界面提示如下信息时,表示烧写成功。谢谢3.2.4运行HelloWorld程序通过本节学习,您可以:熟悉代码运行及验证运行程序完成程序的编译和烧写之后,需要运行程序,验证源码的完整性。具体操作:在DevEcoDevicetool工具的左下方,点击“Monitor”按钮。复位Hi3861开发板,终端界面显示“readytoOSstart”,表示程序运行成功。谢谢3.3.1鸿蒙系统源码编译通过本节学习,您可以:熟悉鸿蒙系统源码在Docker环境下的编译操作鸿蒙系统源码编译从镜像站点下载好的源码,需要先解压操作,然后在Docker环境下进行编译,编译成功才可以进行正式的代码开发工作。1.通过Samba服务将下载好的鸿蒙源码从window环境移动到Ubuntu中。解压鸿蒙源码压缩包,在此目录下打开终端,输入命令:命令:sudotar-zxvfcode-v3.0-LTS.tar.gz解压完成后修改文件夹的权限,输入命令:命令:sudochmod777-Rcode-v3.0-LTS鸿蒙系统源码编译2.构建Docker镜像。此操作需要在openHarmony/code-v3.0-LTS/OpenHarmony目录下进行。右键打开终端,输入命令:sudodockerrun-it--namecode-v3.0-LTS-v$(pwd):/home/openharmony/openharmony-docker/openharmony-docker:1.0.0和Docker环境有关的命令:进入Docker镜像命令:sudodockerstart-icode-v3.0-LTS退出Docker镜像命令:exit查看Docker及状态命令:sudodockerps-a鸿蒙系统源码编译3.修改Docker环境配置。在Docker环境下,卸载旧环境配置。输入命令:python3-mpipuninstallohos-build安装新环境配置,输入命令:pip3installbuild/lite鸿蒙系统源码编译4.环境配置好之后,在Docker环境下生成产品的配置文件。进入Docker环境后输入命令。命令:hbset按键盘方向键上下移动,选择工程文件wifiiot_hispark_pegasus,按回车键确定。鸿蒙系统源码编译4.环境配置好之后,在Docker环境下生成产品的配置文件。选中工程文件之后对工程进行编译,编译成功会提示“buildsuccess”。轻量级系统
liteOS-M
编译命令:hbbuild-f小型系统
liteOS-A
编译命令:hbbuild-tnotest--tee-f谢谢3.3.2轻量级系统烧写及运行通过本节学习,您可以:了解轻量级系统LiteOS-M的烧写和查看运行方法轻量级系统烧写及运行在widows系统中打开HiBurn,选择串口,设置波特率,波特率设置为921600,点击确认。轻量级系统烧写及运行点击selectfile选择要烧写的bin文件,bin文件的路径为源码的根目录下的out\hispark_pegasus\wifiiot_hispark_pegasus选择Hi3861_wifiiot_app_allinone.bin文件并打开。轻量级系统烧写及运行选好烧写文件后,勾上Autoburn,再点击Connect打开串口,按下liteOS-M模块上的复位按键开始烧写,等待bin文件烧写完成,把串口关闭,再按下复位按键程序即可运行。轻量级系统烧写及运行在Windo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺转租合同协议书
- 2024年度工程技术转让居间合同3篇
- 适用于2024年度项目的铲车及翻斗车租赁合同
- 基于二零二四年度计划的环保技术研发合同
- 医疗聘用合同范本
- 草原课件幻灯片
- 年解除实习协议证明书
- 会议服务培训课件
- 简单解除劳动合同协议书模板5篇
- 2024年度农产品采购综合服务合同2篇
- 2023年12月英语四级真题及答案-第2套
- GB/T 21283.6-2015密封元件为热塑性材料的旋转轴唇形密封圈第6部分:热塑性材料与弹性体包覆材料的性能要求
- 22066kV变电站电气设计
- 高中数学一元二次不等式教案(共5页)
- 危险性较大工程确认报审表.docx
- 医院手术部(室)管理规范试题及答案
- 宋太祖赵匡胤PPT
- 中职学校《金属加工与实训》全套电子教案(含教学进度计划)(配套教材:高教版中职统编)云天课件
- 五小成果评价标准
- 春和里学校骨干教师献课活动实施方案
- 九仙温泉度假村项目环境影响报告书
评论
0/150
提交评论