《鸿蒙智能互联设备开发(微课版)》 课件汇 苗玉虎 第1-4章 鸿蒙系统概述 -LiteOS-M内核_第1页
《鸿蒙智能互联设备开发(微课版)》 课件汇 苗玉虎 第1-4章 鸿蒙系统概述 -LiteOS-M内核_第2页
《鸿蒙智能互联设备开发(微课版)》 课件汇 苗玉虎 第1-4章 鸿蒙系统概述 -LiteOS-M内核_第3页
《鸿蒙智能互联设备开发(微课版)》 课件汇 苗玉虎 第1-4章 鸿蒙系统概述 -LiteOS-M内核_第4页
《鸿蒙智能互联设备开发(微课版)》 课件汇 苗玉虎 第1-4章 鸿蒙系统概述 -LiteOS-M内核_第5页
已阅读5页,还剩311页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1.1鸿蒙操作系统的诞生通过本节学习,您可以:了解鸿蒙操作系统的诞生鸿蒙操作系统的诞生第一阶段:准备阶段,鸿蒙操作系统的前身——分布式操作系统。2012年,华为技术有限公司(简称华为)的中央软件研究院提出问题:如果安卓系统不给我们用了怎么办?用什么系统来代替安卓系统?于是华为提出了构建分布式操作系统的设想。第二阶段:正式立项阶段。在2016年,华为内部正式立项,开始投入人力进行研发。鸿蒙操作系统的诞生第三阶段:鸿蒙正式诞生。2019年8月,华为正式发布了HarmonyOS1.0,中文名称“鸿蒙系统”。2020年9月,华为发布了HarmonyOS2.0版本。第四阶段:鸿蒙开源。华为于2020年9月将HarmonyOS2.0源码捐赠给开放原子开源基金会,推出OpenHarmonyOS1.0并开放下载。在2021年6月,开放原子开源基金会发布OpenHarmonyOS2.0。第五阶段:HarmonyOS3.0正式发布。2022年7月,HarmonyOS3.0正式发布。鸿蒙操作系统的诞生鸿蒙系统发展进程2012年华为2012实验室启动鸿蒙研究2016年华为正式立项研发2019年8月华为正式发布鸿蒙1.02020年9月鸿蒙2.0发布源码捐赠给开放原子开源基金会,发布OpenHarmonyOS1.02021年6月开放原子开源基金会发布OpenHarmonyOS2.02022年7月华为正式发布鸿蒙操作系统3.0谢谢1.1.2鸿蒙生态建设通过本节学习,您可以:了解鸿蒙系统的生态建设鸿蒙生态建设1.技术生态建设在C(consumer,消费者)端,美的和苏泊尔等家电品牌加入OpenHarmony生态;在B(Business,企业用户)端,深开鸿、统信软件、软通动力、中科创达等发布了基于OpenHarmony打造的操作系统,并向各行各业输出。开源鸿蒙目前有110多款商用终端,100多款开发款和模组支持有28款基于OpenHarmony的发行版应用在教育、金融、交通、矿山等各领域,构筑起千行百业的信息基础设施底座。鸿蒙生态建设1.技术生态建设国内消费者使用的大部分都是HarmonyOS操作系统,这也是基于OpenHarmony开发设计的产品。被华为广泛应用于智能手机、智能手表、平板、智慧屏等终端产品,搭载数量已经突破了3亿台。鸿蒙生态建设2.应用生态建设鸿蒙操作系统是一款面向万物互联时代的、全新的分布式操作系统。鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力对消费者而言,HarmonyOS能够将生活场景中的各类终端进行能力整合,实现不同终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验鸿蒙生态建设“1+8+N”的全场景战略:“1”:智能手机“8个大行星”:指大屏、音箱、眼镜、手表、车机、耳机、平板、PC等等。N个卫星:指的是移动办公、智能家居、运动健康、影音娱乐及智能出行各大板块的延伸业务。2.应用生态建设鸿蒙生态建设华为积极支持教育部产学合作协同育人(HarmonyOS方向)项目,支撑高校教师开展鸿蒙生态师资培训、课程建设、教材及教具开发,通过融入新技术,助力课程教学创新。3.人才生态建设武汉大学开设的鸿蒙生态课程,到2022年2月,拓展至2个班近70名学生选修。2021年武汉大学上线《鸿蒙移动应用开发》在线课程,吸引100所高校,近6000人进行线上学习。哈尔滨工业大学开设《HarmonyOS智能硬件创新》高水平校企共建课程,与华为双方获批工信部关键软件与人工智能协同育人基地,合作建设鸿蒙生态系列课程体系,共有5门课程和教材进行校企共建。鸿蒙生态建设鼓励高校在校生积极参与到HarmonyOS开发生态中,华为启动HarmonyOS高校人才培育计划,推动超过15款HarmonyOS课程走入高校,打造华东、华北、西南等7大片区鸿蒙高校创新训练营,并通过HarmoyOS开发者创新大赛来以赛促学、以赛促创,培养更多HarmonyOS全栈开发人才。3.人才生态建设谢谢1.2.1鸿蒙操作系统技术架构通过本节学习,您可以:了解鸿蒙操作系统的技术架构鸿蒙操作系统技术架构鸿蒙操作系统的技术架构共分为四层,从下向上依次为:内核层系统服务层框架层应用层鸿蒙操作系统技术架构1.内核层内核层包含了内核和驱动两个子系统。鸿蒙操作系统技术架构内核子系统:HarmonyOS采用Linux内核和LiteOS(轻量级物联网操作系统)的多内核设计,支持不同的设备选用适合的OS内核。内核抽象层(KAL,KernelAbstractLayer)对上层提供基础的内核能力,包括进程管理、线程管理、内存管理、文件系统、网络管理和外设管理等。驱动子系统:硬件驱动框架(HDF,HardwareDriverFundation)是HarmonyOS硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。1.内核层鸿蒙操作系统技术架构系统服务层是HarmonyOS的核心能力集合,通过框架层为应用程序的运行提供各类服务。包含系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。2.系统服务层鸿蒙操作系统技术架构系统基本能力子系统集由分布式任务调度、分布式数据管理、分布式软总线、方舟多语言运行时子系统、公共基础库子系统、多模输入子系统、图形子系统、安全子系统、AI(ArtificialIntelligence,人工智能)子系统等多个子系统组成。2.系统服务层鸿蒙操作系统技术架构这些子系统为分布式应用在HarmonyOS各种设备上的运行、调度、迁移等操作提供了基础能力。其中,方舟多语言运行时子系统提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。2.系统服务层鸿蒙操作系统技术架构基础软件服务子系统集由事件通知、电话、多媒体、DFX(DesignForX)、MSDP(MobileSensingDevelopmentPlatform,移动感知平台,)&DV(DeviceVirtualization,设备虚拟化)等子系统组成。基础软件服务子系统集为HarmonyOS提供公共的、通用的软件服务。例如短信、电话、视频等基础软件服务。2.系统服务层鸿蒙操作系统技术架构增强软件服务子系统集由智慧屏专有业务、穿戴专有业务、IoT(InternetofThings,物联网)专有业务等子系统组成,主要为智慧屏、穿戴设备、物联网设备等提供软件服务。2.系统服务层鸿蒙操作系统技术架构硬件服务子系统集由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。硬件服务子系统集提供硬件相关服务,例如生物特征识别硬件、穿戴相关硬件、物联网硬件等2.系统服务层鸿蒙操作系统技术架构3.框架层框架层主要包括UI(userinterface,用户界面)框架、用户程序框架、Ability(应用所具备能力的抽象)框架。鸿蒙操作系统技术架构3.框架层UI框架:提供两种UI框架,一种是适用于ArkTS(ArkTypeScript)/JS(JavaScript)语言的方舟开发框架即ArkUI,一种是适用于Java语言的JavaUI框架。用户程序框架:为HarmonyOS应用开发提供ArkTS/C/C++/JS/Java等多种语言。Ability框架:应用程序框架。鸿蒙操作系统技术架构4.应用层应用层包括系统应用、扩展应用和第三方非系统应用。HarmonyOS的应用由一个或多个FA(FeatureAbility,元服务)或PA(ParticleAbility,元能力)组成。其中,FA有UI界面,与用户进行交互,比如手机桌面;PA无UI界面,主要为FA提供支持,例如作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。谢谢1.2.2鸿蒙操作系统技术特性通过本节学习,您可以:了解鸿蒙操作系统的技术特性鸿蒙操作系统技术特性1.分布式软总线分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。开发者只需聚焦于业务逻辑的实现,无需关注组网方式与底层协议。鸿蒙操作系统技术特性1.分布式软总线典型应用场景:来访客人按下智能门锁门铃按钮,智能音箱播放铃声,同时在电视屏幕上以画中画的方式展示出客人的影像。用户在电视上看到一档美食节目,将烹饪方法和指导从电视转移到厨房的电冰箱屏幕上,然后在节目指导下一步一步完成美食制作。用户通过手机下发烹饪命令给烤箱、电饭煲等烹饪电器,由烹饪电器自动完成美食的加工。用户运动后,运动器材将采集的运动健康数据自动同步给冰箱。冰箱推荐出一系列最适宜体力恢复和营养补充的健康菜谱,用户可以通过冰箱自动下单采购补充缺乏的食材。鸿蒙操作系统技术特性2.分布式设备虚拟化分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的能力优势,如显示能力、摄像能力、音频能力、交互能力以及传感器能力等。鸿蒙操作系统技术特性2.分布式设备虚拟化典型应用场景:视频通话:在做家务时接听视频电话,可以将手机与智慧屏连接,并将智慧屏的屏幕、摄像头与音箱虚拟化为本地资源,替代手机自身的屏幕、摄像头、听筒与扬声器,实现一边做家务、一边通过智慧屏和音箱来视频通话。游戏:在智慧屏上玩游戏时,可以将手机虚拟化为遥控器,借助手机的重力传感器、加速度传感器、触控能力,为玩家提供更便捷、更流畅的游戏体验。鸿蒙操作系统技术特性3.分布式数据管理分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,跨设备的数据处理如同本地数据处理一样方便快捷,让开发者能够轻松实现全场景、多设备下的数据存储、共享和访问,为打造一致、流畅的用户体验创造了基础条件。鸿蒙操作系统技术特性3.分布式数据管理典型应用场景:协同办公:将手机上的文档投屏到智慧屏,在智慧屏上对文档执行翻页、缩放、涂鸦等操作,文档的最新状态可以在手机上同步显示。照片分享:出游时,使用手机拍摄的照片,可以在登录了同帐号的其他设备,例如平板上更方便地浏览、收藏、保存或编辑,也可以通过家中的智慧屏上同家人一起分享记录下的快乐瞬间。鸿蒙操作系统技术特性4.分布式任务调度分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile(配置文件)等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。鸿蒙操作系统技术特性4.分布式任务调度典型应用场景:出行导航:用户驾车出行,上车前,在手机上规划好导航路线;上车后,导航自动迁移到车机和车载音箱;下车后,导航自动迁移回手机。用户骑车出行,在手机上规划好导航路线,骑行时手表可以接续导航。查看外卖:在手机上点外卖后,可以将订单信息迁移到智能手表上,随时查看外卖的配送状态。鸿蒙操作系统技术特性5.一次开发,多端部署HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。鸿蒙操作系统技术特性5.一次开发,多端部署UI框架支持使用ArkTS、JS、Java语言进行开发,提供了丰富的多态控件,可以在手机、平板、智能穿戴、智慧屏、车机上显示不同的UI效果。采用业界主流设计方式,提供多种响应式布局方案,支持栅格化布局,满足不同屏幕的界面适配能力。鸿蒙操作系统技术特性6.统一OS,弹性部署HarmonyOS支持不同的终端设备。由于设备的硬件资源和功能各不相同,HarmonyOS通过组件化和小型化等设计方法,在这些设备上进行弹性部署。组件自由选择(组件可有可无):根据硬件的形态和需求,可以选择所需的组件。组件内功能集自由配置(组件可大可小):根据硬件的资源情况和功能需求,可以选择配置组件中的功能集。例如,选择配置图形框架组件中的部分控件。支持组件间依赖的关联(平台可大可小):根据编译链关系,可以自动生成组件化的依赖关系。例如,选择图形框架组件,将会自动选择依赖的图形引擎组件等。谢谢1.2.3

鸿蒙操作系统类型通过本节学习,您可以:了解鸿蒙操作系统有哪些类型鸿蒙操作系统类型OpenHarmony是一个面向全场景,支持各类设备的系统。这里的设备包括像MCU单片机这样资源较少的芯片,也支持像RK3568这样的多核CPU。为了能够适应多种硬件,OpenHarmony提供了liteOS、Linux等内核,基于这些内核形成了不同的系统类型,即轻量系统,小型系统,标准系统。轻量系统小型系统标准系统OpenHarmony鸿蒙操作系统类型

1.轻量系统(minisystem)使用MCU类处理器,例如ArmCortex-M芯片、RISC-V32位芯片的设备,硬件资源极其有限,支持的设备最小内存为128KB,可以提供多种轻量级网络协议,轻量级的图形框架,以及丰富的IoT总线读写部件等。可支撑的产品如智能家居领域的连接类模组、传感器设备、穿戴类设备等。鸿蒙操作系统类型

2.小型系统(smallsystem)使用应用处理器,例如ArmCortex-A芯片的设备,支持的设备最小内存为1MB,可以提供更高的安全能力、标准的图形框架、视频编解码的多媒体能力。可支撑的产品如智能家居领域的IPCamera、电子猫眼、路由器以及行车记录仪等。鸿蒙操作系统类型

3.标准系统(standardsystem)使用应用处理器,例如ArmCortex-A芯片的设备,支持的设备最小内存为128MB,可以提供增强的交互能力、3DGPU以及硬件合成能力、更多控件以及动效更丰富的图形能力、完整的应用框架。可支撑的产品如高端的冰箱显示屏。谢谢2.1.1鸿蒙设备开发硬件环境要求通过本节学习,您可以:了解鸿蒙设备开发硬件环境要求鸿蒙设备开发硬件环境要求1.开发终端硬件环境鸿蒙系统的编译工作是在电脑上进行的,对电脑的硬件配置有一定的要求。最低配置要求:内存8G,硬盘空间256G;推荐配置要求:内容16G,硬盘空间500G。鸿蒙设备开发硬件环境要求2.设备硬件环境-轻量系统系列芯片(1)Hi3861芯片Hi3861是海思半导体开发的一款高度集成的2.4GHzSoCWiFi芯片,可用于智能家电等物联网智能终端领域。典型应用场景包括智慧路灯、智慧物流、人体红外等连接类设备。(2)BES2600芯片BES2600芯片是恒玄科技设计的一款集成Cortex-M33Star双核和Cortex-A7双核的IC芯片。典型应用场景包括智能硬件、带屏类模组产品,如音箱、手表等。鸿蒙设备开发硬件环境要求2.设备硬件环境-轻量系统系列芯片(3)ASR582X芯片ASR582X系列芯片是翱捷科技开发的一款低功耗、高性能、高度集成的支持1T1RWi-Fi+BLE的ComboSoC芯片。广泛应用于智能照明、安全、遥控、电器、可穿戴式电子设备、网状网络、WLAN位置感知设备、无线局域网定位系统信标、工业无线控制、传感器网络等各类行业的终端产品。(4)GR5515芯片GR5515是汇顶科技开发的GR551x系列芯片,广泛应用于物联网(IoT)和智能穿戴设备领域。鸿蒙设备开发硬件环境要求2.设备硬件环境-小型系统系列芯片(1)STM32MP157A芯片STM32MP157A芯片是由意法半导体公司推出的一款嵌入式处理器,具有高度集成、功能丰富、性能强劲等特点。广泛应用于工业控制、智能家居、智能物联网等领域。(2)Hi3516芯片Hi3516是海思半导体针对高清IPCamera产品应用开发的一款专业高端SOC芯片。典型应用场景包括带屏智能设备,如带屏冰箱、车机等。鸿蒙设备开发硬件环境要求2.设备硬件环境-标准系统系列芯片(1)RK3568芯片RK3568芯片是瑞芯微开发的一款中高端的通用型SOC,支持安卓11和linux系统,主要面向物联网网关、NVR存储、工控平板、工业检测、工控盒、卡拉OK、云终端、车载中控等行业定制市场。(2)Hi3751V351芯片Hi3751V351芯片是海思半导体开发的全球制式FHD(全高清)智能电视主处理芯片,典型应用场景包括智能电视、智能家居中控屏、智能显示器、商显广告屏、交互白板、工业控制屏、打印机屏、白电屏、健身器显示屏等。(3)AmlogicA311D芯片AmlogicA311D芯片是晶晨半导体开发的一款AI应用处理器,典型应用场景包括智能家居、AI人脸识别、工业控制、智慧车载、多媒体处理、AI边缘计算等。谢谢2.1.2鸿蒙设备开发软件环境要求通过本节学习,您可以:了解鸿蒙设备开发软件环境要求鸿蒙设备开发软件环境要求在目前阶段,鸿蒙系统大部分的开发板源码还不支持在Windows系统环境下进行编译,如Hi3861系列开发板。因此,就需要使用Linux系统的编译环境对源码进行编译。在鸿蒙设备开发场景中,可以搭建一套Windows+Linux交叉编译的开发环境,在Windows系统和Linux系统中都安装DevEcoDeviceTool工具。Windows系统Linux系统鸿蒙设备开发环境鸿蒙设备开发软件环境要求通过Windows平台的DevEcoDeviceTool可视化界面进行相关操作,使用远程连接的方式对接Ubuntu下的DevEcoDeviceTool(可以不安装VisualStudioCode),然后对Ubuntu下的源码进行开发、编译、烧写等操作。鸿蒙设备开发软件环境要求对windows系统的具体要求如下:Windows系统要求:Windows1064位系统推荐内存8GB及以上硬盘100GB及以上对Linux系统的具体要求如下:Linux系统要求Ubuntu20.04及以上版本内存推荐16GB及以上Windows和Ubuntu系统上安装的DevEcoDeviceTool为最新版本,且版本号需相同谢谢2.1.3鸿蒙设备开发环境的搭建通过本节学习,您可以:了解鸿蒙设备开发环境的搭建进行鸿蒙开发环境的搭建鸿蒙设备开发环境的搭建1.安装虚拟机在VirtualBox官网Downloads页面/wiki/Downloads,可以找到不同操作系统版本的VirtualBox安装包的下载方式。单击“Windowshosts”链接,即可下载Windows版的VirtualBox安装包。双击安装包文件,根据安装向导的指引完成安装。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(1)创建环境在VirtualBox启动后,单击页面上的“新建(N)”按钮,弹出“新建虚拟电脑”设置向导:“名称”文本框输入名称“文件夹”位置自由设置,建议放在C盘之外的其他盘下“虚拟光盘”暂时跳过,不选择“类型”选择Linux单击“下一步”按钮,弹出硬件设置页面。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(1)创建环境在硬件页面设置虚拟电脑的内存大小和处理器数量。“内存大小”根据当前主机的实际物理内存进行设置,例如设置为8192MB,处理器根据需要设置。单击“下一步”按钮,弹出“虚拟硬盘”设置向导。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(1)创建环境在“虚拟硬盘”设置向导中,建议设置为200GB,这样避免在后期使用的时候出现空间不足的情况。点击“下一步”按钮,弹出摘要页面,显示虚拟电脑配置信息。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(1)创建环境摘要页面,显示虚拟电脑配置信息。点击完成按钮,Ubuntu虚拟机及虚拟硬盘就创建完成。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(2)设置网络点击VirtualBox管理页面的设置,左侧栏选择网络,连接方式选择“桥接网卡”,选择该方式的前提是电脑使用的是有线网络。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(3)选择镜像文件选择虚拟盘,选择电脑本地的Ubuntu-20.04镜像文件,镜像文件可在华为云开源镜像站进行下载/home。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装设置全部完成之后,点击管理页面的启动图标启动虚拟机,稍等片刻后出现Ubuntu安装向导页面。小技巧:先点击右上角关闭安装,在桌面右键选择DisplaySettings,修改分辨率,保存后回到桌面,双击桌面的Ubuntu安装包继续安装。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装左侧栏选择“中文(简体)”,点击右下角继续。在键盘布局选择页面,默认是美式键盘布局,通常无须修改。点击“继续”进入下一个页面。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装在“更新和其他软件”设置页面,建议选择最小安装。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装进入“安装类型”设置页面,默认选择“清除整个磁盘并安装Ubuntu”选项,单击“现在安装”按钮。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装弹出确认分区对话框,点击“继续”按钮,进入时区选择页面,这里选择“shanghai”。点继续进入用户设置界面。鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装用户设置页面如下:“您的姓名”:设置登录页面显示的用户名称“您的计算机名”:设置主机名,例如填virtualBox“选择一个用户名”:设置用户名,例如可以填user“选择一个密码”和“确认您的密码”:设置密码和确认密码鸿蒙设备开发环境的搭建2.安装Ubuntu系统(4)安装内容填写完成后,点击“继续”按钮开始安装过程,安装向导将会显示进度条,等待几分钟后,安装过程完成,点击“现在重启”。重启过程中系统提示“Pleaseremovetheinstallationmedium,thenpressENTER:”,按回车键。鸿蒙设备开发环境的搭建2、安装Ubuntu系统(5)环境设置重启成功后显示Ubuntu系统登录页面,输入设置的密码进入系统。点击左下角显示应用程序,选择软件和更新。鸿蒙设备开发环境的搭建2、安装Ubuntu系统(5)环境设置在软件和更新设置页面,点击“中国的服务器”后下拉菜单,在选择下载服务器页面选择“”,点击“选择服务器”按钮。鸿蒙设备开发环境的搭建2、安装Ubuntu系统(5)环境设置弹出认证框输入密码,然后点击关闭,在新弹出的窗口点击重新载入更新软件缓存。经过以上的一系列操作,Ubuntu系统就安装好了。鸿蒙设备开发环境的搭建3.搭建Ubuntu环境(1)修改Ubuntu终端环境右键打开终端窗口执行命令,确认输出结果为bash。如果输出结果不是bash,需要进行设置,修改Ubuntushell为bash。

命令:ls-l/bin/sh在终端窗口中执行命令,输入密码,然后选择No,将Ubuntushell由dash修改为bash。

命令:sudodpkg-reconfiguredash鸿蒙设备开发环境的搭建3.搭建Ubuntu环境(2)下载DevEcoDeviceTool3.0ReleaseLinux版本,下载完成后,解压软件包,对文件夹进行赋权。进入DevEcoDeviceTool软件包目录,执行命令解压软件包,其中devicetool-linux-tool-01.zip为软件包名称,请根据实际进行修改。命令:unzipdevicetool-linux-tool-01.zip进入解压后的文件夹,执行命令,赋予安装文件可执行权限,其中devicetool-linux-tool-01.sh请根据实际进行修改命令:chmodu+xdevicetool-linux-tool-01.sh鸿蒙设备开发环境的搭建3.搭建Ubuntu环境(3)安装DevEcoDeviceTool,其中devicetool-linux-tool-01.sh请根据实际进行修改。命令:sudo./devicetool-linux-tool-01.sh在安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Doyouwanttocontinue?”,请输入“Y”后继续安装。安装完成后,当界面输出“DevecoDeviceToolsuccessfullyinstalled.”时,表示DevEcoDeviceTool安装成功。鸿蒙设备开发环境的搭建4.搭建windows环境通过Windows系统远程访问Ubuntu环境,先在Windows系统中安装DevEcoDeviceTool,以便使用Windows平台的DevEcoDeviceTool可视化界面进行相关操作。鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(1)安装SSH服务并获取远程访问的IP地址在Ubuntu系统中,打开终端工具,安装SSH服务。

命令:sudoapt-getinstallopenssh-server启动SSH服务。

命令:sudosystemctlstartssh获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。

命令:ifconfig鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(2)安装RemoteSSH打开Windows系统下的VisualStudioCode,点击左侧扩展按钮

,在插件市场的搜索输入框中输入“remote-ssh”。点击Remote-SSH后面的安装按钮,安装Remote-SSH。鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(3)远程连接Ubuntu环境打开Windows系统的VisualStudioCode,点击,在远程资源管理器页面点击+按钮。在弹出的SSH连接命令输入框中输入“sshusername@ip_address”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。在弹出的输入框中,选择SSHconfiguration文件,选择默认的第一选项即可鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(3)远程连接Ubuntu环境在SSHTARGETS中,找到远程计算机,点击打开远程计算机。在弹出的输入框中,选择Linux,然后选择Continue,输入登录远程计算机的密码,连接远程计算机。鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(4)注册访问Ubuntu环境的公钥安装Git工具插件。打开Gitbash命令行窗口,执行命令,生成SSH公钥,其中username和ip填写连接Ubuntu系统时需要的参数。命令:ssh-keygen-trsa命令:ssh-copy-id-i~/.ssh/id_rsa.pubusername@ip鸿蒙设备开发环境的搭建5.配置windows远程访问Ubuntu环境(4)注册访问Ubuntu环境的公钥在VisualStudioCode中,点击远程连接的设置按钮,并选择打开config文件。在config配置文件中添加SSHKey文件信息鸿蒙设备开发环境的搭建6.安装Samba服务(1)在Ubuntu中,打开终端执行以下命令,安装Samba服务。

命令:sudoaptinstallsamba(2)输入命令,打开Samba配置文件。

命令:sudogedit/etc/samba/smb.conf鸿蒙设备开发环境的搭建6.安装Samba服务在Samba配置文件末尾添加如下内容:[home]#在Windows中映射的根文件夹名称(此处以“home”为例)comment=UserHomes#共享信息说明path=/home/xxx#共享目录,/home/xxxx根据“~”目录的pwd路径更改guestok=no#是否拒绝匿名访问writable=yes#是否可写available=yes#是否可获取browseable=yes#是否可浏览directorymask=0775#默认创建的目录权限createmask=0775#默认创建的文件权限鸿蒙设备开发环境的搭建6.安装Samba服务(3)输入命令,创建Samba用户。

命令:sudosmbpasswd-ausername命令执行后,终端显示“NewSMBpassword:”提示输入密码。输入密码后终端显示“RetypenewSMBpassword:”再次输入密码确认,当终端显示“Addaduseruser.”表示Samba用户添加完成。(4)输入命令,重启Samba服务。

命令:sudoservicesmbdrestart鸿蒙设备开发环境的搭建7.映射Samba服务的共享目录到本地磁盘(1)在终端中输入“ifconfig”,查看虚拟机的IP地址。(2)打开我的电脑,在计算机下找到映射网络驱动器,弹出映射网络驱动器窗口。文件夹位置填写Samba服务地址和共享目录。鸿蒙设备开发环境的搭建7.映射Samba服务的共享目录到本地磁盘(3)在弹出的“输入网络凭据”对话框中输入Samba用户名和密码,勾选“记住我的凭据”选项,单击确定。用户名和密码输入完成后,即可在Windows下看到Linux的共享目录,并可对其进行访问。鸿蒙设备开发环境的搭建8.安装Docker环境(1)在终端输入Docker安装命令。

命令:sudoaptinstalldocker.io鸿蒙设备开发环境的搭建8.安装Docker环境(2)安装OpenHarmony编译的Docker环境包。

命令:sudodockerpull/openharmony-docker/openharmony-docker:1.0.0谢谢2.2鸿蒙系统构建工具链通过本节学习,您可以:了解鸿蒙系统构建工具链了解Ninja构建工具了解Ninja常用语法了解GN常用语法鸿蒙系统构建工具链1.什么是工具链?工具链本质上是工具和链。工具的目标是生成可以运行的程序或库文件。为了达到该目标,内部需要经历编译过程和链接过程。编译过程:编译的输入:程序代码;编译的输出:目标文件;编译需要的工具:编译器GCC。链接过程:链接的输入:程序运行所依赖的库文件或某个库所依赖的另一个库文件;链接的输出:程序的可执行文件,或者可被调用的完整的库文件;链接需要的工具:链接器,即LD。鸿蒙系统构建工具链2.什么是构建工具?构建工具是一个可编程的工具,它描述内容包括:整个工程如何编译、连接、打包等规则,工程中的哪些源文件需要编译以及如何编译,需要创建哪些库文件以及如何创建库文件。构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而为我们减少这些繁琐的工作。其中构建工具提供的依赖管理能够可以自动处理依赖关系。例如一个项目需要用到依赖A,A又依赖于B,那么构建工具就能帮我们导入B,而不需要我们手动去寻找并导入。鸿蒙系统构建工具链3.鸿蒙构建工具链鸿蒙内核LliteOS的编译构建工具是hb,hb是ohos-build的简称,ohos是openharmonyOS的简称。鸿蒙构建系统是由Python、GN、Ninja、makefile等几个部分组成:Python:对参数、环境变量、文件进行操作,负责编译前的准备工作和为GN收集命令参数。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一个致力于速度的小型编译系统。Makefile:Makefile文件中包括了编译和处理规则,通过Makefile工具解析Makefile文件中的命令来指导整个工程的编译过程。Ninja构建工具1.Ninja简介Ninja是Google的一名程序员推出的注重速度的构建工具,是一个专注于速度的小型构件系统,只需拷贝一个可执行程序ninja就可以执行,不需要依赖任何库。Ninja的设计目的:是为了使编译过程更快,Ninja类似构建工具make,make即GNUMake,一个用于决定如何使用命令完成最终目标构建的程序。Make本身不知道如何具体的完成目标的构建工作,它需要通过makefile中的描述来决定目标构建的具体方案,根据makefile中的规则执行命令,最后完成编译输出。Ninja构建工具2.Ubuntu环境安装NinjaNinja编译需要依赖re2c,re2c是一款语法分析器。在Linux系统中右键打开终端,终端中输入命令安装re2c。

命令:sudoapt-getinstallre2c检测re2c版本。

命令:re2c--versionNinja构建工具3.Ubuntu环境安装Ninja安装Ninja,在终端中输入下载命令。

命令:gitclone/ninja-build/ninja.git对Ninja进行安装和编译。在终端中输入命令:

命令:cdninja

命令:./configure.py--bootstrap检测Ninja安装情况。

命令:sudocp./ninja/usr/bin

命令:ninja--version

Ninja常用语法1.基本概念edge(边):build语句,可以指定目标(target)输出(output)、规则(rule)与输入(input),是编译过程拓扑图中的一条边(edge)。target(目标):编译过程需要差生的目标,由build语句指定。output(输出):build语句的前半段,是target的另一种称呼。input(输入):build语句的后半段,用于产生output的文件或目标,另一种称呼是依赖。rule(规则):通过指定command与一些内置变量,决定如何从输入产生输出。Pool:一组rule或edge,通过指定其depth,可以控制并行上限。scope(作用域):变量的作用范围,有rule与build语句的块级,也有文件级别。

Ninja常用语法2.关键字build:定义一个edge。rule:定义一个rule。pool:定义一个pool。default:指定默认的一个或多个target。include:添加一个ninja文件到当前scope。subninja:添加一个ninja文件,其scope与当前文件不同。phony:一个内置的特殊规则,指定非文件的target。

Ninja常用语法3.rule、build及poolrule:一个rule就是通过${in}输入的目标列表,生成${out}的输出目标列表,目标一般是文件。rulenamecommand=echo${in}>${out}var=strbuild:build代码块,是编译过程中的一个edge。其中,foo是output,bar是input,“:”后面第一个位置的phony是rule,var是自定义变量。buildfoo:phonybarvar=str

Ninja常用语法pool:限制一些非常消耗硬件资源的edge同时执行。通过pool=example,在rule或build代码块中指定对应的edge所属的pool为example。由于example的depth=2,所以a、b、c三个target最多只有2个可以同时生成。poolexampledepth=2ruleecho_varcommand=echo${var}>>${out}pool=examplebuilda:echo_varvar=abuildb:echo_varvar=bbuildc:echo_varvar=cGN常用语法GN是Ninja构建文件的元构建工具,能够构建出Ninja的.ninja文件,比起Ninja原本的构建命令,GN能够比较好地进行依赖管理,并且能够很方便的输出构建图谱。GN使用非常简单的动态类型语言。语言的类型包括:布尔(true,false),64位有符号整数,字符串,列表(任何其他类型),范围(Scopes),条件语句,循环,函数调用。GN常用语法字符串:列表:a="mypath"b="$a/foo.cc"//b->"mypath/foo.cc"c="foo${a}bar.cc"//c->"foomypathbar.cc"a=["first"]a+=["second"]//["first","second"]a+=["third","fourth"]//["first","second","third","fourth"]b=a+["fifth"]//["first","second","third","fourth","fifth"]GN常用语法条件语句:if(is_linux||(is_win&&target_cpu=="x86")){source-=["something.cc"]}else{...}GN常用语法循环:函数调用:Foreach(i,mylist){print(i)//Note:iisacopyofeachelement,notareferencetoit.}print("helloworld")assert(is_win,"ThisshouldonlybeexecutedonWindows")static_library("mylibrary"){sources=["a.cc"]}谢谢2.2.1鸿蒙构建工具链介绍通过本节学习,您可以:了解鸿蒙系统构建工具链鸿蒙构建工具链1.什么是工具链?工具链本质上是工具和链。工具的目标是生成可以运行的程序或库文件。为了达到该目标,内部需要经历编译过程和链接过程。编译过程:编译的输入:程序代码;编译的输出:目标文件;编译需要的工具:编译器GCC。链接过程:链接的输入:程序运行所依赖的库文件或某个库所依赖的另一个库文件;链接的输出:程序的可执行文件,或者可被调用的完整的库文件;链接需要的工具:链接器,即LD。鸿蒙构建工具链2.什么是构建工具?构建工具是一个可编程的工具,它描述内容包括:整个工程如何编译、连接、打包等规则,工程中的哪些源文件需要编译以及如何编译,需要创建哪些库文件以及如何创建库文件。构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而为我们减少这些繁琐的工作。其中构建工具提供的依赖管理能够可以自动处理依赖关系。例如一个项目需要用到依赖A,A又依赖于B,那么构建工具就能帮我们导入B,而不需要我们手动去寻找并导入。鸿蒙构建工具链3.鸿蒙构建工具链鸿蒙内核LliteOS的编译构建工具是hb,hb是ohos-build的简称,ohos是openharmonyOS的简称。鸿蒙构建系统是由Python、GN、Ninja、makefile等几个部分组成:Python:对参数、环境变量、文件进行操作,负责编译前的准备工作和为GN收集命令参数。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一个致力于速度的小型编译系统。Makefile:Makefile文件中包括了编译和处理规则,通过Makefile工具解析Makefile文件中的命令来指导整个工程的编译过程。谢谢2.2.2

Ninja构建工具介绍通过本节学习,您可以:了解Ninja构建工具Ninja构建工具1.Ninja简介Ninja是Google的一名程序员推出的注重速度的构建工具,是一个专注于速度的小型构建系统,只需拷贝一个可执行程序ninja就可以执行,不需要依赖任何库。Ninja的设计目的:是为了使编译过程更快,Ninja类似构建工具make,make即GNUMake,一个用于决定如何使用命令完成最终目标构建的程序。Make本身不知道如何具体的完成目标的构建工作,它需要通过makefile中的描述来决定目标构建的具体方案,根据makefile中的规则执行命令,最后完成编译输出。Ninja构建工具2.Ubuntu环境安装NinjaNinja编译需要依赖re2c,re2c是一款语法分析器。在Linux系统中右键打开终端,终端中输入命令安装re2c。

命令:sudoapt-getinstallre2c检测re2c版本。

命令:re2c--versionNinja构建工具3.Ubuntu环境安装Ninja安装Ninja,在终端中输入下载命令。

命令:gitclone/ninja-build/ninja.git对Ninja进行安装和编译。在终端中输入命令:

命令:cdninja

命令:./configure.py--bootstrap检测Ninja安装情况。

命令:sudocp./ninja/usr/bin

命令:ninja--version谢谢2.2.3

Ninja常用语法通过本节学习,您可以:了解Ninja常用语法

Ninja常用语法1.基本概念edge(边):build语句,可以指定目标(target)输出(output)、规则(rule)与输入(input),是编译过程拓扑图中的一条边(edge)。target(目标):编译过程需要差生的目标,由build语句指定。output(输出):build语句的前半段,是target的另一种称呼。input(输入):build语句的后半段,用于产生output的文件或目标,另一种称呼是依赖。rule(规则):通过指定command与一些内置变量,决定如何从输入产生输出。Pool:一组rule或edge,通过指定其depth,可以控制并行上限。scope(作用域):变量的作用范围,有rule与build语句的块级,也有文件级别。

Ninja常用语法2.关键字build:定义一个edge。rule:定义一个rule。pool:定义一个pool。default:指定默认的一个或多个target。include:添加一个ninja文件到当前scope。subninja:添加一个ninja文件,其scope与当前文件不同。phony:一个内置的特殊规则,指定非文件的target。

Ninja常用语法3.rule、build及poolrule:一个rule就是通过${in}输入的目标列表,生成${out}的输出目标列表,目标一般是文件。rulenamecommand=echo${in}>${out}var=strbuild:build代码块,是编译过程中的一个edge。其中,foo是output,bar是input,“:”后面第一个位置的phony是rule,var是自定义变量。buildfoo:phonybarvar=str

Ninja常用语法pool:限制一些非常消耗硬件资源的edge同时执行。通过pool=example,在rule或build代码块中指定对应的edge所属的pool为example。由于example的depth=2,所以a、b、c三个target最多只有2个可以同时生成。poolexampledepth=2ruleecho_varcommand=echo${var}>>${out}pool=examplebuilda:echo_varvar=abuildb:echo_varvar=bbuildc:echo_varvar=c谢谢2.2.4

GN常用语法通过本节学习,您可以:了解GN常用语法GN常用语法GN是Ninja构建文件的元构建工具,能够构建出Ninja的.ninja文件,比起Ninja原本的构建命令,GN能够比较好地进行依赖管理,并且能够很方便的输出构建图谱。GN使用非常简单的动态类型语言。语言的类型包括:布尔(true,false),64位有符号整数,字符串,列表(任何其他类型),范围(Scopes),条件语句,循环,函数调用。GN常用语法字符串:列表:a="mypath"b="$a/foo.cc"//b->"mypath/foo.cc"c="foo${a}bar.cc"//c->"foomypathbar.cc"a=["first"]a+=["second"]//["first","second"]a+=["third","fourth"]//["first","second","third","fourth"]b=a+["fifth"]//["first","second","third","fourth","fifth"]GN常用语法条件语句:if(is_linux||(is_win&&target_cpu=="x86")){source-=["something.cc"]}else{...}GN常用语法循环:函数调用:Foreach(i,mylist){print(i)//Note:iisacopyofeachelement,notareferencetoit.}print("helloworld")assert(is_win,"ThisshouldonlybeexecutedonWindows")static_library("mylibrary"){sources=["a.cc"]}谢谢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.在D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论