子系统>部件"层级架构,支持功能模块化裁剪。本文介绍了关键子系统及移植方法:1)启动恢复子系统负责内核到应用间的进程初始化,需配置启动入口标识及链接脚本;2)文件子系统提供基础文件操作接口,需适配HAL层文件读写功能,可通过Flash模拟、轻量文件系统或厂商自有方案实现。移植过程需修改config.json配置,"> 子系统>部件"层级架构,支持功能模块化裁剪。本文介绍了关键子系统及移植方法:1)启动恢复子系统负责内核到应用间的进程初始化,需配置启动入口标识及链接脚本;2)文件子系统提供基础文件操作接口,需适配HAL层文件读写功能,可通过Flash模拟、轻量文件系统或厂商自有方案实现。移植过程需修改config.json配置,添加对应组件定义及功能实现。系统采用模块化设计,"> 子系统>部件"层级架构,支持功能模块化裁剪。本文介绍了关键子系统及移植方法:1)启动恢复子系统负责内核到应用间的进程初始化,需配置启动入口标识及链接脚本;2)文件子系统提供基础文件操作接口,需适配HAL层文件读写功能,可通过Flash模拟、轻量文件系统或厂商自有">

鸿蒙OpenHarmony南向开发 轻量系统芯片移植指南(一)

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

概述

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。

OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。

表1 OpenHarmony子系统

子系统 作用
applications 应用程序demo。可将应用相关源码存放在此目录下。
kernel 内核子系统。负责任务调度、内存管理等常见的内核功能。
hiviewdfx 可维可测子系统。提供日志相关功能。
communication 通信子系统。包含Wi-Fi,蓝牙功能。
iothardware IOT外设子系统。提供常见的外设接口,例如GPIO,I2C,SPI等。
startup 启动子系统。内核启动后运行的第一个子系统,负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程的功能。
update 升级子系统。用来支持OpenHarmony设备的OTA升级。
utils 公共基础库子系统。提供了一些常用的C、C++开发增强API。
distributed_schedule 分布式调度子系统。负责跨设备部件管理,提供访问和控制远程组件的能力,支持分布式场景下的应用协同。
security 安全子系统。包括系统安全、数据安全、应用安全等功能,为OpenHarmony提供有效保护应用和用户数据的能力。当前开源的功能,包括应用完整性保护、应用权限管理、设备认证、密钥管理服务、数据传输管控。
test 测试子系统。OpenHarmony为开发者提供了一套全面的自测试框架,开发者可根据测试需求开发相关测试用例,开发阶段提前发现缺陷,大幅提高代码质量。


移植启动恢复子系统

启动恢复子系统负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程的功能。

移植指导

针对轻量系统主要提供了各服务和功能的启动入口标识。在SAMGR启动时,会调用bootstrap标识的入口函数,并启动系统服务。

适配完成后,调用OHOS_SystemInit()接口,即可启动系统。

路径:“base/startup/bootstrap_lite/services/source/system_init.c”

void OHOS_SystemInit(void)
{
    MODULE_INIT(bsp);           //执行.zinitcall.bspX.init段中的函数
    MODULE_INIT(device);        //执行.zinitcall.deviceX.init段中的函数
    MODULE_INIT(core);          //执行.zinitcall.coreX.init段中的函数
    SYS_INIT(service);          
RK3588 移植 OpenHarmony-4.0-Beta1 之编译 【代码】RK3588 移植 OpenHarmony-4.0-Beta1 之编译。 阅读详情

相关推荐

OpenHarmony鸿蒙南向开发)——子系统开发内核

OpenHarmony的Linux内核基于开源Linux内核LTS分支演进,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。Linux社区LTS 4.19.y分支信息请查看kernel官网。Linux社区LTS 5.10.y分支信息请查看kernel官网。

maniuT的博客 1989

移植openharmony到STM32H743IIT6【记录帖】

记录移植openharmony到STM32H743IIT6的过程

weixin_44311136的博客 4850

OpenHarmony鸿蒙南向开发)——轻量系统芯片移植指南()

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。表1 OpenHarmony系统系统作用应用程序demo。可将应用相关源码存放在此目录下。kernel内核子系统。负责任务调度、内存管理等常见的内核功能。hiviewdfx。

鸿蒙开发知识记录 1579

OpenHarmony Docker移植实践

需要额外指出的是,Docker并不等于容器(containers),Docker只是容器的种,其他种类的容器还有Kata container,Rocket container等。工具可以通过OpenHarmony官方的每日构建dailybuilds[7] 或发布的SDK[8] 中获得,根据使用的系统平台到相应的toolchains目录下提取。Docker是个开源的软件项目,可以在Linux操作系统上提供层额外的抽象,让用户程序部署在个相对隔离的运行环境,并提供自动管理机制。

OpenHarmony_dev的博客 1738

鸿蒙南向开发OpenHarmony 轻量系统芯片移植指南()

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。表1 OpenHarmony系统系统作用应用程序demo。可将应用相关源码存放在此目录下。kernel内核子系统。负责任务调度、内存管理等常见的内核功能。hiviewdfx。

adaedwa187545的博客 1003

鸿蒙南向开发OpenHarmony轻量系统开发-移植MQTT

MQTT 是当前最主流的物联网通信协议,需要物联网云平台,例如华为云、阿里云、移动OneNET都支持mqtt。而Hi3861则是款专为IoT应用场景打造的芯片。本节主要讲如何在鸿蒙系统中通过移植第3方软件包 paho mqtt去实现MQTT协议功能,最后会给出测试验证。为后续的物联网项目打好基础。

HarmonyOS_666的博客 3616

鸿蒙OpenHarmony南向开发 轻量系统芯片移植案例(二)

本文详细介绍了基于OpenHarmony LiteOS-M内核的ASR582X芯片(Wi-Fi+BLE Combo方案)移植案例。文章从目录规划、产品定义、单板配置入手,系统阐述了内核移植、Kconfig适配、模块化编译等关键技术点。重点分析了HDF驱动框架适配过程,包括GPIO/UART硬件抽象层实现,以及lwIP、security、wifi_lite等核心组件的移植方案。特别对dsoftbus软总线组件的设备发现与组网功能进行了深入解析,提供了研发阶段的调试优化建议。该方案采用Board和Soc解耦设计

Zgw555的博客 2006

鸿蒙OpenHarmony南向开发 轻量系统芯片移植指南()

OpenHarmony系统移植与适配指南》摘要 本文详细介绍了OpenHarmony系统中安全子系统、通信子系统及外设驱动子系统移植方法。安全子系统需适配硬件随机数接口,通过修改config.json和配置MBEDTLS相关宏实现;通信子系统涉及Wi-Fi和蓝牙接口适配,需实现指定目录下的接口文件;外设驱动子系统建议采用IOT方式,通过实现GPIO、I2C等外设接口完成移植。此外还简要说明了分布式任务调度等无需移植的子系统的配置方法。各子系统移植均需在vendor目录下修改配置文件并实现对应硬件接口。

Zgw555的博客 2008

OpenHarmony鸿蒙南向开发)——小型系统芯片移植指南

编译构建流程、编译脚本编写、目录规则、独立编译单个组件、独立编译芯片解决方案等介绍请见 编译构建子系统介绍。

鸿蒙开发知识记录 1809

鸿蒙OpenHarmony南向开发 轻量系统芯片移植案例(三)

本文介绍了基于芯海科技CST85芯片开发板的OpenHarmony LiteOS-M系统移植案例。主要内容包括:1. 开发了Wi-Fi连接和XTS测试样例,适配了wifi_lite、lwip等关键组件2. 采用了Board和SoC分离的移植架构,使用NewLibC库和gn+Kconfig构建系统3. 详细阐述了内核启动、中断向量、littlefs文件系统、GPIO HDF驱动等关键技术的适配方案4. 实现了通信、kernel、startup、utils、xts等多个子系统的功能适配5. 提供了完整的目录结构

Zgw555的博客 1525

OpenHarmony鸿蒙南向开发)——轻量系统芯片内核移植

编译框架搭建完成后,需要将芯片厂商的SDK加入OpenHarmony编译框架,从而可以编译出带SDK的烧录文件(此时编译出的是不带系统的裸机工程),以便OpenHarmony可以调用SDK中的接口。参考文件路径:“device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/targets/hi3861v100/include/target_config.h”路径:“kernel/liteos_m/kal/BUILD.gn”

鸿蒙开发知识记录 2086

OpenHarmony实战:轻量系统芯片移植

本文从芯片适配的端到端视角,为芯片/模组制造商提供基于OpenHarmony芯片适配指导。

m0_64420071的博客 2035

OpenHarmony鸿蒙南向开发)——轻量系统STM32F407芯片移植案例

bootstrap_lite部件会编译//base/startup/bootstrap_lite/services/source/bootstrap_service.c,该文件中,通过SYS_SERVICE_INIT将Init函数符号灌段到__zinitcall_sys_service_start和__zinitcall_sys_service_end中,由于Init函数是没有显式调用它,所以需要将它强制链接到最终的镜像。

鸿蒙开发知识记录 2884

OpenHarmony鸿蒙南向开发)——小型系统STM32MP1芯片移植案例

配置产品加载驱动,产品的所有设备信息被定义在源码文件//vendor/bearpi/bearpi_hm_micro/hdf_config/device_info/device_info.hcs中。moduleName要与驱动文件中定义的相同,deviceMatchAttr要与驱动私有配置信息文件gpio_config.hcs中定义match_attr的相同。系统启动时会根据//vendor/bearpi/bearpi_hm_micro/init_configs中的启动配置来启动系统

鸿蒙开发知识记录 1613

OpenHarmony鸿蒙南向开发)——轻量系统芯片移植案例(

huks部件适配时,huks_key_store_path配置选项用于指定存放秘钥路径,ohos_security_huks_mbedtls_porting_path配置选项用于指定进行mbedtls适配的目录,用于芯片对mbedtls进行硬件随机数等适配。graphic配置文件见 //vendor/bestechnic/display_demo/graphic_config/product_graphic_lite_config.h。在本次适配过程中,将其调整为0x1000。

鸿蒙开发知识记录 2654

鸿蒙南向开发】—— OpenHarmony 轻量系统内核移植

编译框架搭建完成后,需要将芯片厂商的 SDK 加入 OpenHarmony 编译框架,从而可以编译出带 SDK 的烧录文件(此时编译出的是不带系统的裸机工程),以便 OpenHarmony 可以调用 SDK 中的接口。参考文件路径:“device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/targets/hi3861v100/include/target_config.h”添加完内核子系统后,可以编译出带有系统的工程。

pengjiadashaoye的博客 1255

鸿蒙OpenHarmony南向开发保姆级知识点汇总~

OpenHarmony的技术架构和设计使得它能够适应不同的设备和场景,无论是,OpenHarmony都能提供致的用户体验和开发体验。这使得开发者能够更加高效地开发适用于多种设备的软件,同时也为用户提供了更加统和流畅的使用体验。于是小编下面针对了不同阶段的些知识点做了个简单的整理,希望能够帮助到大家!

鸿蒙开发知识记录 4418
下一篇: 鸿蒙OpenHarmony南向开发 轻量系统芯片移植指南(二)
yx525623
博客等级 码龄1年 150粉丝 · 36原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值