liteos_m

OH五星上将2 个月前
移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列十七(2) 异常钩子函数的注册操作本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。鸿蒙轻内核异常钩子模块代码主要在components\exchook目录下。异常钩子函数的注册、解注册、异常钩子类型定义在utils\los_debug.h|.c。
OH五星上将2 个月前
移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列十三 消息队列Queue队列(Queue)是一种常用于任务间通信的数据结构。任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务被唤醒并处理新消息。任务也能够往队列里写入消息,当队列已经写满消息时,挂起写入任务;当队列中有空闲消息节点时,挂起的写入任务被唤醒并写入消息。如果将读队列和写队列的超时时间设置为0,则不会挂起任务,接口会直接返回,这就是非阻塞模式。消息队列提供了异步处理机制,允许将一个消息放入队列,但不立即处理。同时队列还有缓冲消息的作用。
OH五星上将2 个月前
嵌入式硬件·移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·liteos_m
鸿蒙轻内核M核源码分析系列六 任务及任务调度(2)任务模块任务是操作系统一个重要的概念,是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。鸿蒙轻内核的任务模块可以给用户提供多个任务,实现任务间的切换,帮助用户管理业务程序流程。本文我们来一起学习下任务模块的源代码,所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_m 获取。
OH五星上将3 个月前
嵌入式硬件·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列十二 事件Event事件(Event)是一种任务间通信的机制,可用于任务间的同步。多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步。事件可以提供一对多、多对多的同步操作。本文通过分析鸿蒙轻内核事件模块的源码,深入掌握事件的使用。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。
OH五星上将3 个月前
嵌入式硬件·移动开发·harmonyos·openharmony·鸿蒙开发·动态内存·liteos_m
鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory内存管理模块管理系统的内存资源,它是操作系统的核心模块之一,主要包括内存的初始化、分配以及释放。在系统运行过程中,内存管理模块通过对内存的申请/释放来管理用户和OS对内存的使用,使内存的利用率和使用效率达到最优,同时最大限度地解决系统的内存碎片问题。
OH五星上将3 个月前
华为·移动开发·harmonyos·源码分析·openharmony·鸿蒙内核·liteos_m
鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS会分2部分来介绍结构体部分,先介绍LittleFS文件系统的结构体,然后介绍LiteOS-M内核中提供的和LittleFS相关的一些结构体。
OH五星上将3 个月前
分布式·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·鸿蒙源码·liteos_m
鸿蒙轻内核M核源码分析系列四 中断Hwi在鸿蒙轻内核源码分析系列前几篇文章中,剖析了重要的数据结构。本文,我们讲述一下中断,会给读者介绍中断的概念,鸿蒙轻内核的中断模块的源代码。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例。
OH五星上将3 个月前
嵌入式硬件·移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙内核·liteos_m
鸿蒙轻内核M核源码分析系列六 任务及任务调度(1)任务栈继续分析鸿蒙轻内核源码,我们本文开始要分析下任务及任务调度模块。首先,我们介绍下任务栈的基础概念。任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位置。初始化后未使用过的栈空间初始化的内容为宏OS_TASK_STACK_INIT代表的数值0xCACACACA,栈顶初始化为宏OS_TASK_MAGIC_WORD代表的数值0xCCCCCCCC。一个任务栈的示意图如下,其中,栈底指针是栈的最大的内存地址,栈顶指针,是栈的最小的内存地址,栈指针从栈底向栈顶方向生长。