草庐IT

LiteOS-a

全部标签

鸿蒙Hi3861学习十六-Huawei LiteOS-M(Socket服务端)

一、简介    具体概念可以参考上一章内容:鸿蒙Hi3861学习十五-HuaweiLiteOS-M(Socket客户端)_t_guest的博客-CSDN博客 WIFI学习一(socket介绍)_wifisocket_t_guest的博客-CSDN博客  二、API介绍   bind        函数功能:    将socket和输入参数的地址与属性进行绑定    函数原型:intbind(intfd,conststructsockaddr*addr,socklen_tlen)        参数:        fd:套接字描述符,socket()函数返回值。    addr:要绑定的属性值

【OpenHarmony】LiteOS-A 源码目录

文章目录【OpenHarmony】LiteOS-A源码目录一、apps二、arch三、bsd四、compat五、drivers六、fs七、kernel八、lib十、net十一、platform十二、security十三、syscall十四、tools十五、其他顶层文件【OpenHarmony】LiteOS-A源码目录华为的OpenHarmony鸿蒙生态包含了三个系统,根据面向的对象不同,分为轻量级系统、小型系统、标准系统,其中轻量级系统面向资源较少的MCU之类的芯片,比如STM32、GD32等芯片,小型系统面向MPU一些小型微处理器,比如IMX6ULL、全志H3等芯片,而标准系统则面向一些更高

LiteOS内核开发(三)

本章将介绍LiteOS内核的内存管理模块1. 基本概念与简介内存管理也是操作系统重要的组成部分,在程序运行过程中,常常需要为不同任务提供内存资源,涉及到内存的初始化,分配,释放等操作,因此为了高效地进行这些操作,我们也需要一套内存管理系统。LiteOS内存管理系统主要提供动态内存管理和静态内存管理两种管理方式。对于动态内存管理,其主要运作机制是当需要动态分配内存时,系统从动态内存池中选取一块较大的连续内存,按照要求用户要求,从中选取任意大小的内存块分配给等待资源的任务,当该任务不再需要内存块时,释放该内存块。动态内存管理在内存分配上具有较强的灵活性,但是比较容易出现内存池碎片(即不连续内存)。

LiteOS内核开发(一)

之前学习LiteOS内核的基本结构和应用的时候,我们通过一张LiteOS内核系统的结构图了解到其基本结构。       其中,HuaweiLiteOS基础内核包括不可裁剪的极小内核和可裁剪的其他模块。极小内核包含任务管理、内存管理、中断管理、异常管理和系统时钟。可裁剪的模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。这些模块协同工作,使得LiteOS内核能够完成许多事情。同时,HuaweiLiteOS支持UP(单核)与SMP(多核)模式,即支持在单核或者多核的环境上运行。本系列将着重围绕基础内核部分的开发进行学习。在了解各模块的特点及用法之前,我们先来了解一下LiteOS内核的启动流

鸿蒙Hi3861学习七-Huawei LiteOS-M(信号量)

一、简介    信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。    在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,信号量功能可以为用户提供这方面的支持。    通常一个信号量的计数值用于对应有效的资源数,表示剩下的可被占用的互斥资源数。其值的含义分为两种情况:0,表示没有积累下来的Post信号量操作,且有可能有再此信号量上阻塞的任务正值,表示有一个或多个Post信号量操作。    以同步为目的的信号量和以互斥为目的的信号量在使用上是有不同的:同步信号量:信号量在创建后被置为空,任务1取信

小熊派LiteOS移植LVGL

文章目录小熊派LiteOS移植LVGL一、移植前言二、配置TFT三、LVGL源码获取四、显示接口移植五、Demo代码六、实验现象小熊派LiteOS移植LVGL一、移植前言之前使用小熊派实现了鸿蒙动画的开机界面,具体使用的技术栈为STM32+LiteOS+LVGL+FATFS+DMA方式实现,刷新效率非常高,预览视频如下:关于这个的实现过程我会写一系列的教程分享出来,主要分为下面几个部分,本节为第二部分,基于LiteOS移植LVGL显示接口小熊派移植华为LiteOS-M(基于MDK):链接;小熊派基于LiteOS移植LVGL显示接口:链接;小熊派基于LiteOS移植LVGL文件系统:链接;小熊派

HI3861学习笔记(7)——LiteOS(CMSIS-RTOS2)信号量

一、简介1.1信号量信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。在多任务操作系统中,不同的任务之间需要同步运行,信号量功能可以为用户提供这方面的支持。1.2信号量的使用方式信号量可以被任务获取或者申请,不同的信号量通过信号量索引号来唯一确定,每个信号量都有一个计数值和任务队列。通常一个信号量的计数值用于对应有效的资源数,表示剩下的可被占用的互斥资源数,其值的含义分两种情况:0:表示没有积累下来的Post操作,且有可能有在此信号量上阻塞的任务;正值:表示有一个或多个Post下来的释放操作;当任务申请(Pend)信号量时,如果申请成功,则信号量的计

鸿蒙LiteOS-M学习笔记-数据结构(1)双向循环列表

1.1双向循环列表双向链表LOS_DL_LIST的源代码在utils\los_list.h双向链表头文件中,包含LOS_DL_LIST结构体定义、inline内联函数LOS_ListXXX,还有相关的函数宏定义LOS_DLLLIST_XXXX。1.1.1双向链表结构体:1.1.2初始化双向链表:有两种方法,第一种,调用初始化函数:第二种,使用宏定义1.1.3判断空链表:1.1.4插入双向链表节点:方法一:使用LOS_ListAdd函数,往链表节点list所在的双向链表中插入一个链表节点node,插入位置在链表节点*list的后面。方法二:使用LOS_ListTailInsert函数,往链表节点

鸿蒙Hi3861学习八-Huawei LiteOS-M(事件标记)

一、简介    事件是一种实现任务间通信的机制,可用于实现任务间的同步。但事件通信只能是事件类型的通信,无数据传输。一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒任务进行事件处理。事件集合用32位无符号整型变量来表示,每一位代表一个事件。    多任务环境下,任务之间往往需要同步操作。事件可以提供一对多、多对多的同步操作。一对多同步模型:一个任务等待多个事件的触发;多多对同步模型:多个任务等待多个事件的触发。    任务可以通过创建事件控制块来实现对事件的触发和等待操作。LiteOS的事件仅用于任务间的同步。    更多事件标记的概

鸿蒙Hi3861学习十一-Huawei LiteOS-M(内存池)

一、简介    LiteOS将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。    LiteOS内存管理模块管理系统的内存资源,包括:初始化、分配、释放。    不采用C标准库中的内存管理函数malloc和free的原因如下:小型嵌入式设备的RAM不足,导致这些函数在有些情况下无法使用内存管理的函数实现代码量可能非常大,占据了相当大的一块代码空间。不安全,执行时间不确定。容易产生碎片。这两个函数会使得连接器配置变得非常复杂。    内存池是线程安全的固定大小的内存块。它的操作速度比动态分配的堆要快得多,而且不会受到碎片的影响。由于是线