- 博客(200)
- 收藏
- 关注
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——CPUP
CPU(中央处理器,Central Processing Unit)占用率分为系统CPU占用率和任务CPU占用率。系统CPU占用率(CPU Percent)是指周期时间内系统的CPU占用率,用于表示系统一段时间内的闲忙程度,也表示CPU的负载情况。系统CPU占用率的有效表示范围为0~100,其精度(可通过配置调整)为百分比。100表示系统满负荷运转。
2024-08-12 16:14:22 812
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——FAT
FAT文件系统是File Allocation Table(文件配置表)的简称,主要包括DBR区、FAT区、DATA区三个区域。其中,FAT区各个表项记录存储设备中对应簇的信息,包括簇是否被使用、文件下一个簇的编号、是否文件结尾等。FAT文件系统有FAT12、FAT16、FAT32等多种格式,其中,12、16、32表示对应格式中FAT表项的字节数。FAT文件系统支持多种介质,特别在可移动存储介质(U盘、SD卡、移动硬盘等)上广泛使用,使嵌入式设备和Windows、Linux等桌面系统保持很好的兼容性,方便用
2024-08-12 15:58:53 804
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——LittleFS
LittleFS主要用在微控制器和flash上,是一种嵌入式文件系统,具有如下3个特点: 掉电恢复 在写入时即使复位或者掉电也可以恢复到上一个正确的状态。 擦写均衡 有效延长flash的使用寿命。 有限的RAM/ROM 节省ROM和RAM空间。
2024-08-12 15:42:30 1219
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——内存信息统计
内存信息包括内存池大小、内存使用量、剩余内存大小、最大空闲内存、内存水线、内存节点数统计、碎片率等。 内存水线:即内存池的最大使用量,每次申请和释放时,都会更新水线值,实际业务可根据该值,优化内存池大小; 碎片率:衡量内存池的碎片化程度,碎片率高表现为内存池剩余内存很多,但是最大空闲内存块很小,可以用公式(fragment=100-最大空闲内存块大小/剩余内存大小)来度量; 其他参数:通过调用接口(详见内存管理章节接口说明),扫描内存池的节点信息,统计出相关信息。
2024-08-12 15:18:03 438
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——内存泄漏检测
内存泄漏检测机制作为内核的可选功能,用于辅助定位动态内存泄漏问题。开启该功能,动态内存机制会自动记录申请内存时的函数调用关系(下文简称LR)。如果出现泄漏,就可以利用这些记录的信息,找到内存申请的地方,方便进一步确认。
2024-08-12 14:58:39 781
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——踩内存检测
踩内存检测机制作为内核的可选功能,用于检测动态内存池的完整性。通过该机制,可以及时发现内存池是否发生了踩内存问题,并给出错误信息,便于及时发现系统问题,提高问题解决效率,降低问题定位成本。
2024-08-12 14:37:19 377
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——异常调测
OpenHarmony LiteOS-M提供异常接管调测手段,帮助开发者定位分析问题。异常接管是操作系统对运行期间发生的异常情况进行处理的一系列动作,例如打印异常发生时异常类型、发生异常时的系统状态、当前函数的调用栈信息、CPU现场信息、任务调用堆栈等信息。
2024-08-12 14:08:56 1002
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——Trace调测
Trace调测旨在帮助开发者获取内核的运行流程,各个模块、任务的执行顺序,从而可以辅助开发者定位一些时序问题或者了解内核的代码运行过程。
2024-08-11 20:58:00 991
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——双向链表
双向链表是指含有往前和往后两个方向的链表,即每个结点中除存放下一个节点指针外,还增加一个指向前一个节点的指针。其头指针head是唯一确定的。从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,这种数据结构形式使得双向链表在查找时更加方便,特别是大量数据的遍历。由于双向链表具有对称性,能方便地完成各种插入、删除等操作,但需要注意前后方向的操作。
2024-08-11 20:17:17 851
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——CMSIS支持
基本概念CMSIS是Cortex Microcontroller Software Interface Standard(Cortex微控制器软件接口标准)的缩写,是对于那些基于ARM Cortex处理器的微控制器独立于供应商的硬件抽象层。它包含多个组件层,其中之一是RTOS层,该层定义了一套通用及标准化的RTOS API接口,减少了应用开发者对特定RTOS的依赖,方便用户软件的移植重用。该套API有2个版本,分别为版本1(CMSIS-RTOS v1)和版本2(CMSIS-RTOS v2),OpenHa
2024-08-11 19:47:39 450
原创 【鸿蒙南向开发】LiteOS-M小型系统内核——标准系统内核
Linux内核概述面向标准系统类设备(参考内存≥128MB),OpenHarmony选择Linux内核作为基础内核,可以对不同资源受限的设备产品配置出适合的OS内核,为上层提供基础的操作系统能力。
2024-08-11 19:16:55 919
原创 【鸿蒙南向开发】OpenHarmony轻量系统开发-鸿蒙小车开发
摘要:本文简单介绍鸿蒙系统 + Hi3861 的WiFi小车开发适合群体:适用于润和Hi3861开发板
2024-08-10 14:30:00 1090
原创 【鸿蒙南向开发】OpenHarmony轻量系统开发-OneNET云接入
摘要:本文简单介绍如何接入OneNET云平台适合群体:适用于润和Hi3861开发板
2024-08-10 14:00:00 984
原创 【鸿蒙南向开发】OpenHarmony轻量系统开发-移植MQTT
MQTT 是当前最主流的物联网通信协议,需要物联网云平台,例如华为云、阿里云、移动OneNET都支持mqtt。而Hi3861则是一款专为IoT应用场景打造的芯片。本节主要讲如何在鸿蒙系统中通过移植第3方软件包 paho mqtt去实现MQTT协议功能,最后会给出测试验证。为后续的物联网项目打好基础。
2024-08-10 13:45:00 3042
原创 【OpenHarmony轻量系统开发】编写自己的软件包
摘要:本文简单介绍Hi3861WiFi操作,怎么连接到热点,查看IP,ping服务器等适合群体:适用于润和Hi3861开发板
2024-08-09 19:50:20 403
原创 【OpenHarmony轻量系统开发】WiFi之STA模式连接热点
摘要:本文简单介绍Hi3861WiFi操作,怎么连接到热点,查看IP,ping服务器等适合群体:适用于润和Hi3861开发板
2024-08-09 17:49:55 838
原创 OpenHarmony轻量系统开发-其它驱动开发示例
**摘要**:本文简单介绍Hi3861其他驱动的开发示例、包括PWM、SPI、SDIO等。**适合群体**:适用于润和Hi3861开发板,L0轻量系统驱动开发
2024-08-09 17:09:19 411
原创 OpenHarmony轻量系统开发-驱动之I2C显示OLED屏幕
**摘要**:本文简单介绍如何操作I2C去显示OLED屏幕,并且实现动画播放、中文英文显示、绘图等功能**适合群体**:适用于润和Hi3861开发板,L0轻量系统驱动开发
2024-08-09 16:51:01 521
原创 OpenHarmony轻量系统开发-驱动之ADC按键
**摘要**:本文简单介绍如何操作ADC去读取电压,并且实现开发板上3个ADC按键检测的功能**适合群体**:适用于润和Hi3861开发板,L0轻量系统驱动开发
2024-08-09 16:30:21 286
原创 OpenHarmony轻量系统开发-驱动之GPIO点灯
**摘要**:本文简单介绍如何操作GPIO去点灯**适合群体**:适用于Hi3861开发板,L0轻量系统驱动开发
2024-08-09 16:08:59 515
原创 OpenHarmony轻量系统开发-代码编译和烧录
该文件夹存放的是具体开发板、芯片相关的源码。这里OpenHarmony又分为SoC和Board两大块。其中SoC里面是具体芯片相关的代码、包括该芯片相关的驱动; board是开发板相关的代码,具体跟开发板相关。
2024-08-09 15:36:49 1102
原创 【OpenHarmony轻量系统开发】编写第一个程序、启动流程分析
开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
2024-08-09 15:10:24 817
原创 【鸿蒙南向开发】OpenHarmony TCP 通信编程实战
本文旨在探讨`TCP`(`Transmission Control Protocol`,传输控制协议)通讯的相关知识。通过本文,您将了解`TCP`协议的工作原理,以及如何运用这一协议进行通讯程序设计与实现。
2024-08-09 14:42:28 763
原创 【鸿蒙南向开发】OpenHarmony瘦设备内核移植实战(三)
OpenHarmony系统移植最核心的步骤是内核的移植,内核的稳定是一切子系统稳定的基础,上一篇我们讲述了内核启动原理,以及vendor、board的开发配置,本文将介绍SoC层级的移植适配流程。
2024-08-08 17:53:06 607
原创 【鸿蒙轻内核M核源码分析】 数据结构-双向循环链表
在学习`OpenHarmony`鸿蒙轻内核源代码的时候,常常会遇到一些数据结构的使用。如果没有掌握它们的用法,会导致阅读源代码时很费解、很吃力。本文会给读者介绍源码中重要的数据结构,双向循环链表`Doubly Linked List`。在讲解时,会结合数据结构相关绘图,培养读者们的数据结构的平面想象能力,帮助更好的学习和理解这些数据结构的用法。
2024-08-08 17:24:51 868
原创 【鸿蒙南向开发】OpenHarmony瘦设备内核移植实战
OpenHarmony系统移植最核心的步骤是内核的移植,内核的稳定是一切子系统稳定的基础,上一篇我们一起认识了板卡、SoC、芯片架构,并在OpenHarmony源码中找到了对应层面的开发路径,本文将开始介绍实操部分。
2024-08-08 17:01:53 668
原创 【鸿蒙南向开发】 OpenHarmony动画详解
动画是组件的基础特性之一,精心设计的动画使 UI 变化更直观,平滑的动画效果能够很好地增强差异性功能的过渡,有助于改进应用程序的外观并改善用户体验
2024-08-08 16:31:41 666
原创 【鸿蒙南向开发】NAPI 框架生成工具实现流程
NAPI 框架生成工具 可以根据用户指定路径下的 ts(typescript)接口文件一键生成 NAPI 框架代码、业务代码框架、GN 文件等。在开发 JS 应用与 NAPI 间接口时,底层框架开发者无需关注 Nodejs 语法、C++ 与 JS 之间的数据类型转换等上层应用转换逻辑,只关注底层业务逻辑即可。
2024-08-08 16:06:04 357
原创 【鸿蒙南向开发】OHOS构建自定义服务实战
在面向全场景、全连接、全智能时代背景下,OpenHarmony必然会受到越来越多开发者的支持,在不同场景下,会根据实际需求裁剪某些非必要的子系统或组件,也会增加新的子系统或者组件。如果你想添加子系统或者添加服务/组件的话,希望本文能够给你带来一些启示。
2024-08-08 15:59:45 1018 1
原创 【鸿蒙南向开发】OpenHarmony应用编译 - 如何在源码中编译复杂应用
在 **OpenHarmony** 系统中预安装应用的 **hap** 包会随系统编译打包到镜像中,目前有两种编译预安装应用 **hap** 包的方式,一种为随系统编译时,编译应用源码生成 **hap** 包的方式,另一种是将已生成的 **hap** 包放入系统源码中,再进行打包的方式。后者需要开发者使用 **DevEco Studio** 或其它途径,把应用源码编译构建为 hap 包,再将 **hap** 放入系统源码中。
2024-08-08 15:33:13 857
原创 【鸿蒙南向开发】OpenHarmony实现安卓约束布局bias属性的方法
安卓约束布局 ConstraintLayout 是一种比较强大的布局方式,在实际开发中经常用到;在安卓 APP OpenHarmony 化过程中必然需要一定的转换方法。本文重点介绍 layout_constraintVertical_bias 属性在 OpenHarmony 中的一种实现方法。
2024-08-08 15:13:46 738
原创 【鸿蒙南向开发】OpenHarmony 应用开机自启
整个实现原理就是专门弄个应用当启动器,让这个应用进行开机自启(此处的开机自启并不是直接打开应用,而是自启一个服务挂在后台运行),然后让这个应用去打开需要自启的那个应用,在此也是参考了这篇文章
2024-08-08 14:19:12 1629
原创 【鸿蒙南向开发】OpenHarmony 如何用 opencvlib 进行应用样例开发
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由一系列的 C 函数和少量 C++ 类构成,同时提供 Python、Java 和 MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
2024-08-08 13:55:13 635
原创 【鸿蒙南向开发】触摸事件及分发机制详解
多模输入标准系统组件提供传统的输入交互方式,例如按键、触控、键盘、鼠标等。 本应用于标准系统之上,为设备提供单指触控输入能力。本组件将触屏输入产生的事件上报到 JS UI 框架或用户程序框架,JS UI 框架根据上报的事件再次封装,对应用提供接口。
2024-08-07 20:13:54 987
原创 【鸿蒙南向开发】如何一键优雅的更新内核patch
一、进入内核,修改内核代码```cd kernel/linux/linux-5.10vim drivers/Kconfig# 在倒数第二行加入:source "drivers/tracepoint/Kconfig"source "drivers/most/Kconfig"source "drivers/accesstokenid/Kconfig"source "drivers/tracepoint/Kconfig"endmenu
2024-08-07 20:06:19 988
原创 【鸿蒙南向开发】OpenHarmony 源码解析之分布式数据库
本文基于`OpenHarmonyOS 3.0 LTS `来讲解**分布式数据服务(Distributed Data Service,DDS)** 提供不同设备间数据库数据分布式的能力。从架构上来说,分布式数据服务是开源鸿蒙底层服务的基础服务,与分布式任务调度同层。然而在使用分布式任务调度功能时,基本上都需要进一步要求数据交互功能,完成完整的分布式功能,因此在学习分布式任务调度的同时,不可避免的需要学习分布式数据服务相关的功能与底层服务。
2024-08-07 17:44:44 1200
原创 【鸿蒙南向开发】OpenHarmony 源码解析之NAPI框架内部实现分析
NAPI(Native API)是OpenHarmony系统中的一套原生模块扩展开发框架,它基于Node.js N-API规范开发,为开发者提供了JavaScript与C/C++模块之间相互调用的交互能力。这套机制对于鸿蒙系统开发的价值有两方面:1. 鸿蒙系统可以将框架层丰富的模块功能通过js接口开放给上层应用使用。2. 应用开发者也可以选择将一些对性能、底层系统调用有要求的核心功能用C/C++封装实现,再通过js接口使用,提高应用本身的执行效率。
2024-08-07 17:25:33 1062
原创 【鸿蒙南向开发】OpenHarmony源码解析之开关机流程分析
电源管理服务组件是OpenHarmony电源管理子系统的一个组件,主要负责如下功能:1. 系统关机2. 重启设备3. 检测当前设备的亮灭屏状态4. 查询系统是否支持该类型的锁5. 创建RunningLock锁6. 锁定和持有RunningLock锁7. 释放RunningLock锁8. 查询当前RunningLock锁是持有状态,还是释放状态9. 系统休眠和唤醒以及屏幕开关
2024-08-07 16:47:31 1264
原创 【鸿蒙南向开发】OpenHarmony源码解析之显示屏亮度获取功能
显示能效管理组件是OpenHarmony电源管理子系统的一个组件,主要负责如下功能:1. 显示屏的亮/灭。2. 显示屏亮度调节。3. 显示屏亮度获取。本文主要分析显示屏亮度获取功能,包括NAPI接口及功能实现的整个流程。
2024-08-07 16:14:18 1064
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人