技术栈
鸿蒙源码
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,则不会挂起任务,接口会直接返回,这就是非阻塞模式。消息队列提供了异步处理机制,允许将一个消息放入队列,但不立即处理。同时队列还有缓冲消息的作用。
OH五星上将
4 个月前
嵌入式硬件
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
·
liteos_m
鸿蒙轻内核M核源码分析系列十二 事件Event
事件(Event)是一种任务间通信的机制,可用于任务间的同步。多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。本文通过分析鸿蒙轻内核事件模块的源码,深入掌握事件的使用。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。
OH五星上将
4 个月前
分布式
·
嵌入式硬件
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙源码
·
liteos_m
鸿蒙轻内核M核源码分析系列四 中断Hwi
在鸿蒙轻内核源码分析系列前几篇文章中,剖析了重要的数据结构。本文,我们讲述一下中断,会给读者介绍中断的概念,鸿蒙轻内核的中断模块的源代码。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例。
OH五星上将
4 个月前
嵌入式硬件
·
openharmony
·
ota
·
鸿蒙开发
·
鸿蒙源码
如何实现OpenHarmony的OTA升级
随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。OTA(Over the Air)提供对设备远程升级的能力。升级子系统对用户屏蔽了底层芯片的差异,对外提供了统一的升级接口。基于接口进行二次开发后,可以让厂商的设备(如IP摄像头等)轻松支持远程升级能力。
OH五星上将
4 个月前
网络
·
嵌入式硬件
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙源码
·
图形框架
OpenHarmony源码解析之电话子系统——通话流程
OpenAtom OpenHarmony(以下简称“OpenHarmony”)电话子系统为 OS 提供了基础的无线通信能力。
OH五星上将
4 个月前
linux
·
单片机
·
嵌入式硬件
·
openharmony
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
OpenHarmony轻量设备Hi3861芯片开发板启动流程分析
OpenHarmony作为一款万物互联的操作系统,覆盖了从嵌入式实时物联网操作系统到移动操作系统的全覆盖,其中内核包括LiteOS-M,LiteOS-A和Linux。LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,主要面向没有MMU的处理器,架构如图1-1所示。
OH五星上将
4 个月前
汇编
·
openharmony
·
源码解析
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
·
gn语法
鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙中巧夺天工
gn 存在的意义是为了生成 ninja,如果熟悉前端开发,二者关系很像 Sass和CSS的关系. 为什么会有gn,说是有个叫even的谷歌负责构建系统的工程师在使用传统的makefile构建chrome时觉得太麻烦,不高效,所以设计了一套更简单,更高效新的构建工具gn+ninja,然后就被广泛的使用了.
OH五星上将
4 个月前
汇编
·
嵌入式硬件
·
移动开发
·
harmonyos
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)
鸿蒙内核实现了Futex,系列篇将用两篇来介绍快锁,主要两个原因:Futex(Fast userspace mutex,用户态快速互斥锁),系列篇简称 快锁 ,是一个在Linux上实现锁定和构建高级抽象锁如信号量和POSIX互斥的基本工具,它第一次出现在linux内核开发的2.5.7版;其语义在2.5.40固定下来,然后在2.6.x系列稳定版内核中出现,是内核提供的一种系统调用能力。通常作为基础组件与用户态的相关锁逻辑结合组成用户态锁,是一种用户态与内核态共同作用的锁,其用户态部分负责锁逻辑,内核态部分负
OH五星上将
4 个月前
汇编
·
移动开发
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main
先说明,本篇很长,也很枯燥,若不是绝对的技术偏执狂是看不下去的.将通过一段简单代码去跟踪编译成ELF格式后的内容.看看ELF究竟长了怎样的一副花花肠子,用readelf命令去窥视ELF的全貌,最后用objdump命令反汇编ELF.找到了大家熟悉main函数.
OH五星上将
4 个月前
汇编
·
嵌入式硬件
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙内核
·
鸿蒙源码
鸿蒙内核源码分析(重定位篇) | 与国际接轨
一个程序从源码到被执行,当中经历了3个过程:重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程。它是实现多道程序在内存中同时运行的基础。重定位有两种,分别是动态重定位与静态重定位。
OH五星上将
4 个月前
汇编
·
嵌入式硬件
·
移动开发
·
harmonyos
·
openharmony
·
鸿蒙开发
·
鸿蒙源码
鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务
在鸿蒙的内核线程就是任务,系列篇中说的任务和线程当一个东西去理解.一般二种场景下需要切换任务上下文:在线程环境下,从当前线程切换到目标线程,这种方式也称为软切换,能由软件控制的自主式切换.哪些情况下会出现软切换呢?