liteOS
Stupid_Gao
机械类学生,略懂单片机,C语言,学习C++中
展开
-
华为LiteOS内核实战教程内存管理(3)重新分配指针的动态内存-osal_mem_demo.c
/*使用osal接口需要包含头文件*/ /* 动态内存开发流程: 1.配置: LOSCFG_MEMORY_BESTFIT: LOSCFG_KERNEL_MEM_SLAB: 2.初始化: 3.申请任意大小的动态内存: 4.释放动态内存 静态内存开发流程: 1、规划一片内存区域作为静态内存池。 2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。 3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用原创 2022-04-03 16:00:07 · 280 阅读 · 0 评论 -
华为LiteOS内核实战教程内存管理(2)熟悉osal_realloc-osal_mem_demo.c
/使用osal接口需要包含头文件/ /* 动态内存开发流程: 1.配置: LOSCFG_MEMORY_BESTFIT: LOSCFG_KERNEL_MEM_SLAB: 2.初始化: 3.申请任意大小的动态内存: 4.释放动态内存 静态内存开发流程: 1、规划一片内存区域作为静态内存池。 2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。 3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用户空间地址原创 2022-04-03 15:37:47 · 324 阅读 · 0 评论 -
华为LiteOS内核实战教程内存管理(1)-osal_mem_demo.c
/*使用osal接口需要包含头文件*/ /* 动态内存开发流程: 1.配置: LOSCFG_MEMORY_BESTFIT: LOSCFG_KERNEL_MEM_SLAB: 2.初始化: 3.申请任意大小的动态内存: 4.释放动态内存 静态内存开发流程: 1、规划一片内存区域作为静态内存池。 2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。 3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用原创 2022-04-03 14:39:37 · 1306 阅读 · 0 评论 -
华为LiteOS互斥锁任务抢占-osal_semp_demo
#include <osal.h> #define USER_TASK1_PRI 12 //低优先级 #define USER_TASK2_PRI 11 //高优先级 uint32_t public_value = 0; osal_mutex_t public_value_mutex; //任务1: static int user_task1_entry() { while (1) { if (true == osal_mutex_lock(public_valu原创 2022-04-02 17:20:31 · 491 阅读 · 0 评论 -
华为LiteOS互斥锁-实现互斥锁功能-osal_mutex_demo
目标 互斥锁的概念:通过互斥锁的概念,对互斥锁有整体的认识。 运作原理:掌握互斥锁运作的原理、深入领悟互斥锁的作用。 使用场景:了解互斥锁的使用场景,增加互斥锁的实用性。 开发流程:互斥锁开发流程,实现互斥锁功能。 内容1:互斥锁简介 互斥锁的概念: 互斥锁的概念: 1、互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 2、任意时刻互斥锁的状态只有两种:开锁或闭锁。 3、当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。 4、当该任务释放时,该互斥锁被开锁,原创 2022-04-02 16:43:21 · 372 阅读 · 0 评论 -
华为liteOS任务创建-osal_task_demo.c
#include <osal.h> #define USER_TASK1_PRI 12 #define USER_TASK2_PRI 11 uint32_t user_task1_id = 0; uint32_t user_task2_id = 0; static int user_task1_entry() //任务1 { int n = 0; while (1) { for (n = 0; n < 5; n++) {原创 2022-04-02 14:05:06 · 632 阅读 · 0 评论 -
华为liteOS信号量学习删除信号量和退出任务-osal_semp_demo.c
重点理解退出的机制:先删除信号量,再退任务 if (uwRet == true) printf("task 2 access a semp OK!\r\n"); else //创造出现失误的条件 printf("task 2 access a semp ERROR!\r\n"); if(sum++>=5) { //删除信号量,信号索引ID osal_semp_原创 2022-04-02 14:00:00 · 254 阅读 · 0 评论 -
华为liteOS信号量学习创建、释放、申请-osal_semp_demo.c
#include <osal.h> #define USER_TASK1_PRI 12 #define USER_TASK2_PRI 11 osal_semp_t sync_semp; /* 1、信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。 2、在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,信号量功能可以为用户提供这方面的支持。 3、通常一个信号量的计数值用于对应有效的资源数,表示剩下的可原创 2022-04-02 10:55:54 · 540 阅读 · 0 评论