Huawei LiteOS中使用队列数据结构实现任务异步通信工作,具有如下特性: 消息以先进先出方式排队,支持异步读写工作方式。 读队列和写队列都支持超时机制。...开发指导 3.1 功能 Huawei LiteOS中Message消息处理模块提供了以下功能。 功能分类 接口名 描述 创建消息队列 LOS_QueueCreate 创建一个消息队列。
Huawei LiteOS的事件仅用于任务间的同步,不提供数据传输功能。...Huawei LiteOS提供的事件具有如下特点: 事件不与任务相关联,事件相互独立,一个32位的变量,用于标识该任务发生的事件类型,其中每一位表示一种事件类型(0表示该事件类型未发生、 1表示该事件类型已经发生...3.2 功能 Huawei LiteOS系统中的事件模块为用户提供下面几个接口。...在锁任务调度状态下,禁止任务阻塞与读事件。 LOS_EventClear 入参值是:要清除的指定事件类型的反码(~uwEvents)。
LD_SHT_PROGBITS、LD_SHT_NOBITS类型节区起始地址都4字节对齐,否则拒绝加载该模块 .o和.so模块编译选项添加示例如下: RM = -rm -rf CC = arm-hisiv500-linux-gcc.../ldsym.sh /home/wmin/customer/out/so “$”是linux shell提示符,下同 ldsym.sh脚本只需传入系统运行所需的所有.o和.so文件所在的那个目录绝对路径即可.../sym.sh /home/wmin/customer/out/so arm-hisiv500-linux- /home/wmin/customer/out/bin/vs_server sym.sh...= LOS_OK) { printf("destroy dynamic loader failed"); return 1; } 在业务不再需要动态加载模块时销毁动态加载模块,该接口是与LOS_LdInit...l / yaffs0/elf_symbol.so -r elf_symbol.so 10.67.211.235 启动系统动态加载功能,进行验证 2.6 Shell 调试 在Shell里我们封装了一系列与动态加载有关的命令
Huawei LiteOS的分散加载 Huawei LiteOS的分散加载分为两个阶段,第一阶段通过uboot将关键业务部分镜像加载到内存并执行,待这部分业务得到执行后,第二阶段在代码中加载剩余部分镜像到内存继续执分散加载的内部原理图如图...在IPC Huawei LiteOS版本上,通过应用分散加载技术,实现了1s内从开机启动到录制,超越Linux版本的3s-4.5s。...2.2 功能 Huawei LiteOS系统中的分散加载模块为用户提供如下接口。...显示了与分散加载相关的段信息(包括段的名称、起始地址及偏移大小)。其中.fast_rodata为分散加载镜像的只读数据段, .fast_text为代码段, .fast_data为数据段 ?...缺少.O文件 arm-hisiv300-linux-ld: cannot find libscatter.O make: *** [vs_server] Error 1 这个问题出现的原因是修改了链接脚本后
Huawei LiteOS的异常接管,在系统发生异常时的处理动作是显示异常发生时正在运行的任务信息(包括任务名、任务号、堆栈大小等),以及cpu现场等信息。...test_panic(UINT32 argc, CHAR **args) { LOS_Panic("*****Trigger an exception\n"); return; } Huawei LiteOS
在Hi3559A中,liteos是用于Cortex-A53,用于处理MPP 媒体业务逻辑的; ?...Huawei LiteOS基础内核是最精简的Huawei LiteOS操作系统代码,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器、异常管理等操作系统基础组件,可以单独运行...Huawei LiteOS Kernel 的优势 高实时性,高稳定性。 超小内核,基础内核体积可以裁剪至不到10K。 低功耗。 支持动态加载、分散加载。 支持功能静态裁剪。...Huawei LiteOS的异常接管,会在异常后打印发生异常的任务ID号、栈大小,以及LR、PC等寄存器信息; 动态加载 动态加载是一种软件加载链接技术,不对组成程序的目标文件进行一次性链接加载,等到程序要运行时才进行链接加载...Huawei LiteOS提供支持OBJ目标文件和SO共享目标文件的动态加载机制。 分散加载 分散加载是通过重排镜像等手段,把关键业务优先加载,从而缩短启动时间。
Huawei LiteOS的任务模块可以给用户提供多个任务,实现了任务之间的切换和通信,帮助用户管理业务程序流程。这样用户可以将更多的精力投入到业务功能的实现中。...Huawei LiteOS是一个支持多任务的操作系统。在Huawei LiteOS中,一个任务表示一个线程。 Huawei LiteOS中的任务是抢占式调度机制,同时支持时间片轮转调度方式。...Huawei LiteOS的任务一共有32个优先级(0-31),最高优先级为0,最低优先级为31。 2 任务相关概念 2.1 任务状态 Huawei LiteOS系统中的每一任务都有多种运行状态。...4.2 功能 Huawei LiteOS 系统中的任务管理模块为用户提供下面几种功能。...LOS_ERRNO_OS_FATAL(LOS_MOD_TSK, 0x00) 4.6 平台差异性 无 4.7 编程实例 4.7.1 实例描述 下面的示例介绍任务的基本操作方法,包含任务创建、任务延时、任务锁与解锁调度
Huawei LiteOS的内存管理分为静态内存管理和动态内存管理,提供内存初始化、分配、释放等功能。 动态内存:在动态内存池中分配用户指定大小的内存块。 优点:按需分配。...与静态内存相比,动态内存管理的好处是按需分配,缺点是内存池中容易出现碎片。 系统动态内存管理结构如图1所示: ?...2.1.2 功能 Huawei LiteOS系统中的动态内存管理模块为用户提供下面几种功能,具体的API详见接口手册。...通过Huawei LiteOS内存管理模块可以保证高效、正确的申请、释放内存。 本实例执行以下步骤: 初始化一个动态内存池。 在动态内存池中申请一个内存块。 使用这块内存块存放一个数据。...3.2 功能 Huawei LiteOS的静态内存管理主要为用户提供以下功能。
Huawei LiteOS的MMU有两个方面的作用: 提供硬件机制的内存cache/nocache属性的控制接口。 提供硬件机制的内存访问权限控制接口。 2....2.2 功能 Huawei LiteOS中MMU模块为用户提供以下接口: 功能分类 接口名 描述 内存访问权限控制 LOS_MMUParamSet 修改指定地址段的内存cache状态、buffer状态、
Huawei LiteOS提供的互斥锁具有如下特点: 通过优先级继承算法,解决优先级翻转问题。...1.3 开发指导 1.3.1 使用场景 互斥锁可以提供任务之间的互斥机制,用来防止两个任务在同一时刻访问相同的共享资源 1.3.2 功能 Huawei LiteOS 系统中的互斥锁模块为用户提供下面几种功能...Huawei LiteOS作为实时操作系统需要保证任务调度的实时性,尽量避免任务的长时间阻塞,因此在获得互斥锁之后,应该尽快释放互斥锁。
开发指导 2.1 使用场景 信号量是一种非常灵活的同步方式,可以运用在多种场合中,实现锁、同步、资源计数等功能,也能方便的用于任务与任务,中断与任务的同步中。...2.2 功能 Huawei LiteOS 系统中的信号量模块为用户提供下面几种功能。
错误处理指用户代码发生错误时,系统调用错误处理模块的接口函数,完成上报错误信息,并调用用户自己的钩子函数,进行特定的处理。
环境搭建参考:https://ost.51cto.com/posts/2627 1、程序烧录,最开始总是烧录失败,后来确定是HiTool.exe的版本不一样,烧录不上,一定要找与开发板配套的Hitool...https://www.bookstack.cn/read/openharmony-1.0-zh-cn/ 4、生态及问题解决; 学习入门资料不少,像harmonyos基金会推出的视频,认真学习,可以很快熟悉liteos... "features":[] } 21 ] D:\source\harmony\harmonyos_1.0\build\lite\platform\hi3518ev300_liteos_a.../communication:sample" 209 ], 2、修改shell提示符 D:\source\harmony\harmonyos_1.0\kernel\liteos_a
开发指导 2.1 功能 Huawei LiteOS系统中的双向链表模块为用户提供下面几个接口。
Huawei LiteOS的中断支持: 中断初始化。 中断创建。 开/关中断。 恢复中断。 中断使能。 中断屏蔽。 Huawei LiteOS的中断机制支持中断共享。...1.1 中断的介绍 与中断相关的硬件可以划分为三类:设备、中断控制器、 CPU本身。 设备:发起中断的源,当设备需要请求CPU时,产生一个中断信号,该信号连接至中断控制器。...中断向量表:存储中断向量的存储区,中断向量与中断号对应,中断向量在中断向量表中按照中断号顺序存储。...Huawei LiteOS的中断机制支持中断底半部: 中断底半部的实现基于workqueue,在中断处理程序中将工作分为顶半部和底半部,底半部处理程序与work关联,并挂载到合法workqueue上。...2.2 功能 Huawei LiteOS 系统中的中断模块为用户提供下面几种功能。
定时精度与系统Tick时钟的周期有关。 硬件定时器受硬件的限制,数量上不足以满足用户的实际需求,因此为了满足用户需求,提供更多的定时器, Huawei LiteOS操作系统提供软件定时器功能。...定时器模式 Huawei LiteOS的软件定时器提供二类定时器机制: 第一类是单次触发定时器,这类定时器在启动后只会触发一次定时器事件,然后定时器自动删除。...2.2 功能 Huawei LiteOS系统中的软件定时器模块为用户提供下面几种功能,下面具体的API详见软件定时器对外接口手册。
LiteOS内核的内存管理 1.1....与静态内存相比,动态内存管理的好处是按需分配,缺点是内存池中容易出现碎片。 LiteOS动态内存支持 DLINK 和 BEST LITTLE 两种标准算法。 1.2.1....LiteOS 动态内存管理在最佳适配算法的基础上加入了 SLAB 机制,用于分配固定大小的内存块,进而减小产生内存碎片的可能性。...LiteOS 内存管理中的 SLAB 机制支持可配置的 SLAB CLASS 数目及每个 CLASS 的最大空间。...相关的接口定义在osal.c中,基于LiteOS的接口实现在 liteos_imp.c文件中: 接口名 功能描述 osal_malloc 按字节申请分配动态内存空间 osal_free 释放已经分配的动态内存空间
long)&__init_array_end__,NO_SCATTER); 调用C库函数 在C++中调用C程序的函数,注意在声明该函数的时候增加如下语句: extern "C" 3 注意事项 Huawei LiteOS...Huawei LiteOS中, C++暂不支持I/O字符流、 I/O文件流等相关操作。 4 编程实例 4.1 实例描述 在代码初始化中,进行C++ 构造函数初始化,进而让程序可以使用C++特性。
Tick与秒之间的对应关系可以配置。 Huawei LiteOS的时间管理模块提供时间转换、统计、延迟功能以满足用户对时间相关需求的实现。 1.1.2 相关概念 Cycle 系统最小的计时单位。...开发指导 2.1 使用场景 用户需要了解当前系统运行的时间以及Tick与秒、毫秒之间的转换关系等。...2.2 功能 Huawei LiteOS系统中的时间管理主要提供以下两种功能: 时间转换:根据主频实现CPU Tick数到毫秒、微秒的转换。 时间统计:获取系统Tick数。
LiteOS内核的任务管理 Huawei LiteOS 内核提供任务的创建、删除、延迟、挂起、恢复等功能,以及锁定和解锁任务调度,支持任务按优先级高低的抢占调度及同优先级时间片轮转调度。 1.1....任务 在 LiteOS 中,一个任务就是一个线程,多个任务按照优先级进行抢占式调度,达到多个任务“同时”运行的目的。 1.2....Huawei LiteOS 的任务一共有 32 个优先级 (0-31),最高优先级为 0,最低优先级为 31。...任务相关的接口定义在osal.c中,基于LiteOS的接口实现在 liteos_imp.c文件中: 接口名 功能描述 osal_task_create 创建任务 osal_task_kill 删除任务(...动手实验 —— 体验任务的创建与切换 实验内容 本实验中将创建两个任务,一个低优先级任务task1,一个高优先级任务task2,两个任务都会每隔2s在串口打印自己的任务id号,在串口终端中观察两个任务的运行情况
领取专属 10元无门槛券
手把手带您无忧上云