自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 OpenHarmony 移植案例与原理 - startup子系统之bootstrap_lite服务启动引导部件(一)

从上文已知,bootstrap_lite服务启动引导部件的初始化宏会调用LAYER_INITCALL_DEF和LAYER_INITCALL宏。这些宏的定义在文件utils\native\lite\include\ohos_init.h,代码片段如下。⑴处声明函数类型,无参无返回值。⑵处处理定义分层初始化共享库宏LAYER_INIT_SHARED_LIB的情况,如果没有定义该宏,则执行⑹。

2025-04-03 21:16:01 422

原创 鸿蒙OpenHarmony 移植案例与原理 - build lite配置目录全梳理

命令行工具hb(HarmonyOS|OpenHarmony Build 编译构建系统的缩写)都很熟悉了。这是一个基于gn和ninja的构建系统,以支持OpenHarmony组件化开发为目标,提供以下基本功能:支持按组件拼装产品并编译。独立构建芯片解决方案厂商源码。独立构建单个组件本文主要梳理build lite 轻量级编译构建系统涉及的配置目录。有些知识点,只能从代码中获取,官方文档里没有提供很详细的说明,希望此文可以对此进行补充。我们先看些相关的文件的代码片段。

2025-04-03 20:05:43 457

原创 OpenHarmony——性能优化实战-Trace

OpenHarmony的DFX子系统提供了为应用框架以及系统底座核心模块的性能打点能力,每一处打点即是一个Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用SmartPerf-Host调试工具SmartPerf-Host调试工具SmartPerf-Host调试工具对Trace进行解析,在其绘制的泳道图中,对应用运行过程中的性能热点进行分析,得出优化方案。

2025-04-03 17:30:18 425

原创 OpenHarmony ——小型系统内核(LiteOS-A)【扩展组件】下

容器(Container)提供了一种资源隔离的解决方案。系统中许多资源是全局管理的。例如进程PID、主机信息、用户信息等,容器机制是对这种全局资源的隔离,使得处于不同容器的进程拥有独立的全局系统资源,改变一个容器中的系统资源只会影响当前容器里的进程,对其他容器中的进程没有影响。LiteOS-A内核容器隔离功能包含7个容器:UTS容器、PID容器、Mount容器、Network容器、TIME容器、IPC容器、User容器。通过所在进程ProcessCB的Container和Credentials保存。

2025-04-03 15:59:46 576

原创 OpenHarmony 小型系统内核(LiteOS-A)【Shell 工具】上

在build/mk/liteos_tables_ldflags.mk中添加相应选项: 如:上述“ls”命令注册时,需在build/mk/liteos_tables_ldflags.mk中添加“-uls_shellcmd”。用户可以选择静态注册命令方式和系统运行时动态注册命令方式,静态注册命令方式一般用在系统常用命令注册,动态注册命令方式一般用在用户命令注册。Shell在执行用户命令时,如果存在多个命令关键字相同的命令,只会执行其中在"help"命令中排序在最前面的一个。

2025-04-03 14:27:00 595

原创 OpenHarmony——轻量系统内核(LiteOS-M)【任务管理】

因此在任务切换时会将切出任务的任务上下文信息,保存在自身的任务栈中,以便任务恢复后,从栈空间中恢复挂起时的上下文信息,从而继续执行挂起时被打断的代码。TCB包含了任务上下文栈指针(stack pointer)、任务状态、任务优先级、任务ID、任务名、任务栈大小等信息。本实例介绍基本的任务操作方法,包含2个不同优先级任务的创建、任务延时、任务锁与解锁调度、挂起和恢复等操作,阐述任务优先级调度的机制以及各接口的应用。任务的优先级决定了在发生任务切换时即将要执行的任务,就绪队列中最高优先级的任务将得到执行。

2025-04-02 22:25:34 393

原创 OpenHarmony 小型系统基础内核(中断及异常处理)

中断是指出现需要时,CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,出现了一个必须由CPU立即处理的事务,此时CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。通过中断机制,可以使CPU避免把大量时间耗费在等待、查询外设状态的操作上,大大提高系统实时性以及执行效率。目前的中断支持有异常处理是操作系统对运行期间发生的异常情况(芯片硬件异常)进行处理的一系列动作,例如虚拟内存缺页异常、打印异常发生时函数的调用栈信息、CPU现场信息、任务的堆栈情况等。

2025-04-02 21:23:49 423

原创 OpenHarmony——轻量系统内核(LiteOS-M)

OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。支持驱动框架HDF(Hardware Driver Foundation),统一驱动标准,为设备厂商提供了更统一的接入方式,使驱动更加容易移植,力求做到一次开发,多系统部署。

2025-04-02 19:55:44 377

原创 OpenHarmony 移植案例与原理 - startup子系统之syspara_lite系统属性部件

vendor\bestechnic\display_demo\hals\utils\sys_param\hal_sys_param.c中提供了一种方法,采用WiFi Mac地址进行适配。文件vendor\bestechnic\display_demo\hals\utils\sys_param\hal_sys_param.c实现接口文件base\startup\syspara_lite\hals\hal_sys_param.h中声明的函数,如下所示,主要包含设备厂商信息,软件版本信息,构建信息等。

2025-04-02 16:18:52 570

原创 鸿蒙OH南向开发——标准系统方案之扬帆移植案例

本文以 OpenHarmony 3.0 为基础,讲解基于 HDF(Hardware Driver Foundation)驱动框架开发的 Audio 驱动框架,包括 Audio 驱动的架构组成、功能部件的实现和服务节点详细介绍。音频驱动框架模型,向上服务于多媒体音频子系统,便于系统开发者能够更便捷的根据场景来开发应用。向下服务于具体的设备厂商,对于 Codec 和 DSP 设备厂商来说,可根据 ADM 模块提供的向下统一接口适配各自的驱动代码,就可以实现快速开发和适配 HOS 系统。

2025-04-02 15:14:09 625

原创 鸿蒙OH南向开发 标准系统芯片移植(标准系统方案之瑞芯微RK3566移植案例二)

调试AP模块时,无法正常开启AP功能的解决方法需要使用到busybox和hostapd配置ap功能,操作步骤如下:调试STA模块时,启动STA模式的方法NOTE:需要对busybox与dhcpc.sh设置成可执行权限。

2025-04-01 16:19:33 480

原创 OpenHarmony 标准系统芯片移植(标准系统方案之瑞芯微RK3566移植案例一)

OpenHarmony Camera驱动模型结构HDI Implementation:对上实现HDI接口,向下调用框架层的接口,完成HDI接口任务的转发。Buffer Manager:屏蔽不同内存管理的差异,为子系统提供统一的操作接口,同时提供buffer轮转的功能。Pipeline Core:解析HCS配置完成pipeline的搭建,调度pipeline中的各个node完成流的处理Device Manager:通过调用底层硬件适配层接口,实现查询控制底层设备、枚举监听底层设备的功能。

2025-04-01 13:46:30 709

原创 鸿蒙Openharmony 标准系统方案之瑞芯微RK3568移植案例

RK3568平台适配ADM框架图主要完成Codec/DMA/I2S驱动注册,使得ADM可以加载驱动节点;并注册ADM与Drivers交互的接口函数主要完成ADM Drivers adapter接口函数的实现,以及Codec_config.hcs/dai_config.hcs等配置信息的获取,并注册到对应的设备ADM Drivers impl可以直接阅读硬件手册,完成驱动端到端的配置;也可以借用Linux原生驱动实现与接口,减少开发者工作量。目录结构├── codec│ └── src。

2025-03-31 20:12:30 663

原创 Open Harmony 小型系统STM32MP1芯片移植案例

moduleName 要与驱动文件中定义的相同,deviceMatchAttr 要与驱动私有配置信息文件 gpio_config.hcs 中定义 match_attr 的相同。系统启动时会根据//vendor/bearpi/bearpi_hm_micro/init_configs 中的启动配置来启动系统。选择好产品后,输入回车就会在根目录下自动生成 ohos_config.json 文件,这里会将要编译的产品信息列出。在进行移植之前,需要进行预编译适配。进行安全子系统适配需要添加。本文章基于[意法半导体]

2025-03-31 15:55:13 756

原创 鸿蒙OpenHarmony Combo解决方案之W800芯片移植案例

本方案基于OpenHarmony LiteOS-M内核,使用联盛德W800芯片的润和软件海王星系列 Neptune100开发板 ,进行开发移植。移植架构采用Board与SoC分离方案,支持通过Kconfig图形化配置编译选项,增加玄铁ck804ef架构移植,实现了HDF、XTS等子系统及组件的适配。适配准备准备ubuntu20.04系统环境,安装 csky-abiv2-elf-gcc 交叉编译工具链。编译构建目录规划本方案的目录结构使用 Board和Soc解耦的思路:产品定义。

2025-03-31 14:12:47 673

原创 OpenHarmony Makefile方式组织编译的库移植

以yxml库为例,其移植过程如下文所示。

2025-03-30 20:44:58 803

原创 鸿蒙OpenHarmony——CMake方式组织编译的库移植

本文为OpenHarmony开发者提供一些组织编译形式比较常见(CMakeLists、Makefile)的三方库的移植指南,该指南当前仅适用于Hi3516DV300和Hi3518EV300两个平台,文中着重介绍各编译组织方式下工具链的设置方法以及如何将该库的编译添加到OpenHarmony整个工程的构建中。

2025-03-30 19:33:44 870

原创 OpenHarmony 标准系统移植指南 Linux内核

本文面向希望将OpenHarmony移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带Linux内核的现有能力,快速移植OpenHarmony到三方芯片平台的方法。

2025-03-29 22:21:27 740

原创 鸿蒙OpenHarmony 标准系统芯片移植指南

本文以移植名为MyProduct的开发板为例讲解移植过程,假定MyProduct是MyProductVendor公司的开发板,使用MySoCVendor公司生产的MySOC芯片作为处理器。在//vendor/MyProductVendor/{product_name}名称的目录下创建一个config.json文件,该文件用于描述产品所使用的SOC 以及所需的子系统。配置如下:},...主要的配置内容配置项说明(必填)产品名称version(必填)版本type。

2025-03-29 21:21:37 543

原创 OpenHarmony ——小型系统芯片移植指南(三)驱动移植

驱动主要包含两部分,平台驱动和器件驱动。平台驱动主要包括通常在SOC内的GPIO、I2C、SPI等;器件驱动则主要包含通常在SOC外的器件,如 LCD、TP、WLAN等图1OpenHarmony 驱动分类HDF驱动被设计为可以跨OS使用的驱动程序,HDF驱动框架会为驱动达成这个目标提供有力的支撑。开发HDF驱动中,请尽可能只使用HDF驱动框架提供的接口,否则会导致驱动丧失跨OS使用的特性。在开始驱动开发前,建议先了解HDF驱动框架。

2025-03-29 19:21:37 767

原创 OpenHarmony 小型系统芯片移植(二)

LiteOS-A当前支持ARMv7-a指令集架构,如果三方芯片为ARMv7-a架构,可以进行内核基础适配;否则还需要先根据芯片的架构来新增内核对该芯片架构的支持,这个工作较为复杂,不在这篇文章范围内。

2025-03-27 16:55:46 912

原创 OpenHarmony ——小型系统芯片移植指南(一)

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

2025-03-27 15:25:20 873

原创 鸿蒙应用开发:基于ArkTS构建一个高效的数据流处理框架

/ 模拟从文件系统中读取日志数据});代码讲解类继承自DataSource,用于从文件系统中读取日志数据。log : "");代码讲解LogCleaner类用于去除日志中的时间戳。LogFilter类用于过滤出指定级别的日志。类用于将多条日志聚合成一条字符串。super();代码讲解类继承自Pipeline,用于将日志数据依次通过清洗、过滤、聚合等处理节点。super();// 模拟将数据存储到数据库中代码讲解类继承自DataStore。

2025-03-26 16:22:11 604

原创 鸿蒙应用开发 ——基础组件(switch开发)

switch为开关选择器,切换开启或关闭状态。

2025-03-25 19:35:42 667

原创 鸿蒙应用开发 基础组件(chart开发)

chart为图表组件,用于呈现线形图、柱状图和量规图界面。

2025-03-25 16:19:01 193

原创 鸿蒙应用开发 基础组件(slider开发)

slider为滑动条组件,用来快速调节音量、亮度等。

2025-03-25 14:56:12 888

原创 鸿蒙应用开发 基础组件(rating开发)

rating为评分条组件,表示用户使用感受的衡量标准条。

2025-03-25 13:54:41 617

原创 鸿蒙Next开发 基础组件(image-animator开发)

image-animator组件为图片帧动画播放器。

2025-03-24 20:15:01 611

原创 鸿蒙Next开发 基础组件(image开发)

image是图片组件,用来渲染展示图片。

2025-03-24 16:54:26 889

原创 鸿蒙Next开发 基础组件(picker开发)

picker是滑动选择器组件,类型支持普通选择器、日期选择器、时间选择器、时间日期选择器和多列文本选择器。

2025-03-24 15:23:41 806

原创 鸿蒙 Next 开发 基础组件(button开发)

button是按钮组件,其类型包括胶囊按钮、圆形按钮、文本按钮、弧形按钮、下载按钮。

2025-03-24 14:03:52 631

原创 鸿蒙应用开发 基础组件 input

input是交互式组件,用于接收用户数据。其类型可设置为日期、多选框和按钮等。

2025-03-23 22:18:01 728

原创 鸿蒙基础组件——(text)

text是文本组件,用于呈现一段文本信息。

2025-03-23 20:57:22 591

原创 OpenHarmony 南向开发 移植内核

参考文件路径:“device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/targets/hi3861v100/include/target_config.h”1. 若已有的配置项不能满足需求,可查看“kernel/liteos_m/kernel/include/los_config.h”,其为liteos_m内核的全量配置文件。路径:“kernel/liteos_m/components/fs/BUILD.gn”

2025-03-23 19:30:56 707

原创 Openharmony 移植子系统(三)

多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战)以及面试真题。除可获得测试认证之外,还可以在开发阶段提前发现缺陷,大幅提高代码质量。OpenHarmony兼容性测试是XTS(OpenHarmony生态认证测试套件)之一,详见 OpenHarmony兼容性测试。定位问题时,可在“test/xts/acts/build_lite/BUILD.gn”中,将不需要的测试项注释,以便调试。

2025-03-21 22:16:38 402

原创 OpenHarmony 南向开发-移植子系统二

此库中提供了“mbedtls_platform_entropy_poll”、“mbedtls_hardclock_poll”、“mbedtls_havege_poll”、“mbedtls_hardware_poll”等几种产生随机数的方式。在“vendor/MyVendorCompany/MyProduct/config.json”文件中,通常将配置“ohos_board_adapter_dir”配置为 “//vendor/MyVendorCompany/MyProduct/adapter”。

2025-03-21 18:10:01 918

原创 OpenHarmony南向开发 移植子系统(一)

OpenHarmony系统功能按照“系统 > 子系统 > 部件”逐级展开,支持根据实际需求裁剪某些非必要的部件,本文以部分子系统、部件为例进行介绍。若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。OpenHarmony芯片适配常见子系统列表如下(详见表1),需结合具体芯片再做增删减操作。

2025-03-21 15:51:44 719

原创 鸿蒙Next应用开发 侧边栏布局设计

在HarmonyOS Next应用开发中,侧边栏布局是提升用户体验、优化界面交互的重要设计元素。它能够在有限的屏幕空间内,为用户提供便捷的导航和操作入口。今天,咱们就来深入了解一下SideBarContainer组件以及它在侧边栏布局设计中的应用技巧。

2025-03-21 14:12:35 725

原创 鸿蒙Next开发 典型布局案例:运营横幅(Banner)

在HarmonyOS Next应用开发中,运营横幅(Banner)是吸引用户注意力、展示重要信息的关键元素。而Swiper组件则是实现Banner轮播效果的得力助手。咱们就深入剖析一下如何利用Swiper组件打造出适配不同设备的运营横幅。

2025-03-20 21:58:48 738

原创 鸿蒙Nect开发 跨设备拖拽

HarmonyOS Next中跨设备拖拽这个超酷的功能。它实现了文件与文本在不同设备间的自由流转,极大地提升了用户的分布式交互体验,就像是给设备之间搭建了一座无形的桥梁,让数据传输变得轻松又高效。

2025-03-20 19:50:19 841

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除