鸿蒙内核

OH五星上将3 个月前
linux·运维·驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙内核
【移植】一种快速移植OpenHarmony Linux内核的方法本文面向希望将 OpenHarmony 移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。
OH五星上将3 个月前
linux·驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·鸿蒙内核
OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI DSI】DSI(Display Serial Interface)是由移动行业处理器接口联盟(Mobile Industry Processor Interface (MIPI) Alliance)制定的规范,旨在降低移动设备中显示控制器的成本。它以串行的方式发送像素数据或指令给外设(通常是LCD或者类似的显示设备),或从外设中读取状态信息或像素信息;它定义了主机、图像数据源和目标设备之间的串行总线和通信协议。
OH五星上将3 个月前
linux·驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙南向·鸿蒙内核
【移植】小型系统平台驱动移植在这一步,我们会在源码目录 //device/vendor_name/soc_name/drivers 目录下创建平台驱动,如果你要移植的 SOC 的厂商还没有创建仓库的话,请联系 sig_devboard 创建。 建议的目录结构:
OH五星上将3 个月前
嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核·子系统
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【LMS调测】LMS全称为Lite Memory Sanitizer,是一种实时检测内存操作合法性的调测工具。LMS能够实时检测缓冲区溢出(buffer overflow),释放后使用(use after free) 和重复释放(double free), 在异常发生的第一时间通知操作系统,结合backtrace等定位手段,能准确定位到产生内存问题的代码行,极大提升内存问题定位效率。
OH五星上将3 个月前
驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙嵌入式
OpenHarmony(鸿蒙南向)——平台驱动开发【PIN】PIN即管脚控制器,用于统一管理各SoC的管脚资源,对外提供管脚复用功能。PIN是一个软件层面的概念,目的是为了统一对各SoC的PIN管脚进行管理,对外提供管脚复用功能,配置PIN管脚的电气特性。
OH五星上将3 个月前
linux·嵌入式硬件·移动开发·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核启动】内核启动流程包含汇编启动阶段和C语言启动阶段2部分,如图1所示。汇编启动阶段完成CPU初始设置,关闭dcache/icache,使能FPU及neon,设置MMU建立虚实地址映射,设置系统栈,清理bss段,调用C语言main函数等。C语言启动阶段包含OsMain函数及开始调度等,其中如图1所示,OsMain函数用于内核基础初始化和架构、板级初始化等,其整体由内核启动框架主导初始化流程,图中右边区域为启动框架中可接受外部模块注册启动的阶段,各个阶段的说明如下表1所示。
OH五星上将3 个月前
harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核·子系统·鸿蒙系统开发
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【Perf调测】Perf为性能分析工具,依赖PMU(Performance Monitoring Unit)对采样事件进行计数和上下文采集,统计出热点分布(hot spot)和热路径(hot path)。
OH五星上将3 个月前
harmonyos·鸿蒙系统·openharmony·鸿蒙开发·系统移植·鸿蒙内核·子系统
OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(上)本文章是基于瑞芯微RK3568芯片的DAYU200开发板,进行标准系统相关功能的移植,主要包括产品配置添加,内核启动、升级,音频ADM化,Camera,TP,LCD,WIFI,BT,vibrator、sensor、图形显示模块的适配案例总结,以及相关功能的适配。
OH五星上将3 个月前
harmonyos·内存管理·openharmony·鸿蒙开发·系统移植·鸿蒙内核·listos_m
OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)OpenHarmony Camera驱动模型结构CameraService源码目录为:foundation/multimedia/camera_standard,camera app通过camera service与hal层进行交互
OH五星上将3 个月前
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上OpenHarmony LiteOS-A实现了用户态与内核态的区分隔离,用户态程序不能直接访问内核资源,而系统调用则为用户态程序提供了一种访问内核资源、与内核进行交互的通道。
OH五星上将3 个月前
harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核·子系统·内核通信
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下读写锁与互斥锁类似,可用来同步同一进程中的各个任务,但与互斥锁不同的是,其允许多个读操作并发重入,而写操作互斥。
OH五星上将3 个月前
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】上事件(Event)是一种任务间通信的机制,可用于任务间的同步。多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。
OH五星上将3 个月前
harmonyos·移植·openharmony·鸿蒙开发·鸿蒙内核·子系统
OpenHarmony(鸿蒙南向开发)——标准系统移植指南(一)本文描述了移植一块开发板的通用步骤,和具体芯片相关的详细移植过程无法在此一一列举。后续社区还会陆续发布开发板移植的实例供开发者参考。
OH五星上将3 个月前
linux·驱动开发·嵌入式硬件·移动开发·harmonyos·鸿蒙开发·鸿蒙内核
OpenHarmony(鸿蒙南向开发)——标准系统移植指南(二)Linux内核本文面向希望将OpenHarmony移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带Linux内核的现有能力,快速移植OpenHarmony到三方芯片平台的方法。
OH五星上将3 个月前
驱动开发·移动开发·harmonyos·内存管理·openharmony·鸿蒙内核·鸿蒙移植
OpenHarmony(鸿蒙南向开发)——轻量和小型系统三方库移植指南(二)以yxml库为例,其移植过程如下文所示。从仓库获取yxml源码,其目录结构如下表:表1 源码目录结构设置Makefile的交叉编译工具链,修改并编译该库,生成OpenHarmony平台的可执行文件,步骤如下:
OH五星上将3 个月前
嵌入式硬件·移动开发·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_a
鸿蒙轻内核A核源码分析系列七 进程管理 (2)本文先熟悉下进程管理的文件kernel\base\core\los_process.c中的内部接口,读读代码,做些记录。
OH五星上将3 个月前
驱动开发·harmonyos·内存管理·openharmony·鸿蒙内核·鸿蒙源码·鸿蒙移植
OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)LiteOS-A当前支持ARMv7-a指令集架构,如果三方芯片为ARMv7-a架构,可以进行内核基础适配;否则还需要先根据芯片的架构来新增内核对该芯片架构的支持,这个工作较为复杂,不在这篇文章范围内。
OH五星上将3 个月前
嵌入式硬件·移动开发·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_a
鸿蒙轻内核A核源码分析系列五 虚实映射(5)虚实映射解除虚实映射解除函数LOS_ArchMmuUnmap解除进程空间虚拟地址区间与物理地址区间的映射关系,其中参数包含MMU结构体、解除映射的虚拟地址和解除映射的数量count,数量的单位是内存页数。 ⑴处函数OsGetPte1用于获取指定虚拟地址对应的L1页表项数据。⑵处计算需要解除的无效映射的数量,后文再详细分析该函数。如果页表项映射类型为L1 Section,并且虚拟地址1MiB对齐,映射的数量超过256,则执行⑶解除映射Section,后文详细分析函数OsUnmapSection。如果页表项映射类型为Pa
OH五星上将3 个月前
移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列十七(2) 异常钩子函数的注册操作本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。鸿蒙轻内核异常钩子模块代码主要在components\exchook目录下。异常钩子函数的注册、解注册、异常钩子类型定义在utils\los_debug.h|.c。
OH五星上将3 个月前
移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列十三 消息队列Queue队列(Queue)是一种常用于任务间通信的数据结构。任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务被唤醒并处理新消息。任务也能够往队列里写入消息,当队列已经写满消息时,挂起写入任务;当队列中有空闲消息节点时,挂起的写入任务被唤醒并写入消息。如果将读队列和写队列的超时时间设置为0,则不会挂起任务,接口会直接返回,这就是非阻塞模式。消息队列提供了异步处理机制,允许将一个消息放入队列,但不立即处理。同时队列还有缓冲消息的作用。