uc/os-ii
allein_STR
双一流交叉学科,机器学习/深度学习模型实现,10+篇SCI 1/2区top论文,授权专利7件,软著2个。可辅导/修改/润色SCI论文、提供代码支持、承接交叉项目。v:boboangang
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OS_CORE.C(11)
OS_SchedNew(void)找到将要运行的最高优先级任务函数和任务调度函数OS_Sched(void):/*********************************************************************************************************** FIND ...原创 2018-02-09 12:01:38 · 558 阅读 · 0 评论 -
OS_CORE.C(6)
先介绍一下优先级反转的相关知识:优先级翻转是当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,因此造成高优先级任务被许多具有较低优先级任务阻塞,实时性难以得到保证。例如:有优先级为A、B和C三个任务,优先级A>B>C,任务A,B处于挂起状态,等待某一事件发生,任务C正在运行,此时任务C开始使用某一共享资源S。(A和C需要使用共享资源原创 2018-02-07 09:18:41 · 575 阅读 · 0 评论 -
OS_CORE.C(7)
本篇介绍的是调度器的上锁和解锁:调度器上锁函数OSSchedlock()的功能是用于禁止任务调度,使任务保持对CPU的控制权。调度器开锁函数OSSchedUnlock()的功能是解除对任务调度的禁止。 OSSchedlock()和OSSchedUnlock()必须成对使用。调度器解锁包括两层含义:第一个是没有中断嵌套;第二个是没有嵌套锁存在。只有这两个条件都满足,才能进行任务调度原创 2018-02-07 09:48:23 · 428 阅读 · 0 评论 -
OS_CORE.C(8)
本篇介绍的是OSStart()函数和OSStatInit()函数和OSTimeTick()函数。OSStart()多任务开始函数:/*$PAGE*//***********************************************************************************************************原创 2018-02-07 15:04:56 · 787 阅读 · 0 评论 -
OS_FLAG.C(3)
上篇我们介绍了创建和删除事件标志组函数,后来在接着看源代码的时候,发现倒着来更有助于理解。所以后面几篇我会选择较为合适的方式来不定期更博,方便大家理解。1.介绍删除节点函数OS_FlagUnlink (OS_FLAG_NODE *pnode):/*$PAGE*//*2018/2/13********************************************************...原创 2018-02-13 13:05:22 · 709 阅读 · 0 评论 -
OS_CORE.C(9)
本篇介绍以下几个函数:OSVersion()获得版本号函数、OS_Dummy()虚拟函数、OS_EventTaskRdy (OS_EVENT *pevent, void *msg, INT8U msk)使任务进入就绪态的函数、OS_EventTaskWait (OS_EVENT *pevent)使任务进入等待状态的函数、OS_EventTaskWaitMulti(OS_EVEN原创 2018-02-07 19:05:06 · 584 阅读 · 0 评论 -
OS_CORE.C(10)
今天看os_core.c文件中的各种初始化函数。OS_EventWaitListInit(OS_EVENT *pevent)初始化事件控制块的等待列表:/*$PAGE*//*2018/2/8*******************************************************************************************************...原创 2018-02-08 18:46:31 · 478 阅读 · 0 评论 -
os_mutex.c(全)
无等待地获取互斥型信号量 OSMutexAccept (OS_EVENT *pevent,INT8U *perr):创建互斥型信号量OS_EVENT *OSMutexCreate (INT8U prio,INT8U *perr)删除信号量OS_EVENT *OSMutexDel (OS_EVENT *pevent,INT8U opt,INT8U *perr)等待互斥型信号量vo...原创 2018-02-19 17:40:23 · 3672 阅读 · 0 评论 -
os_mbox.c(全)
本篇介绍以下内容:简单介绍邮箱机制从邮箱中接收消息void *OSMboxAccept (OS_EVENT *pevent建立并初始化一个邮箱OS_EVENT *OSMboxCreate (void *pmsg)删除邮箱OS_EVENT *OSMboxDel (OS_EVENT *pevent,INT8U opt,INT8U *perr)取消等待消息的任务OSMboxPendAbor...原创 2018-02-21 13:25:30 · 1796 阅读 · 0 评论 -
OS_Q.C(全)
本篇介绍以下内容:从队列中接收消息*OSQAccept (OS_EVENT *pevent,INT8U *perr)建立一个消息队列OS_EVENT *OSQCreate (void **start,INT16U size)删除消息队列OS_EVENT *OSQDel (OS_EVENT *pevent,INT8U opt,INT8U perr)清空消息队列OSQFlush (OS_EVE...原创 2018-02-22 21:01:01 · 1151 阅读 · 0 评论 -
os_mem.c(全)
本篇介绍内存管理方面的内容,具体如下:简单介绍内存管理新建内存单元OS_MEM *OSMemCreate (void *addr,INT32U nblks,INT32U blksize,INT8U *perr)获得内存块void *OSMemGet (OS_MEM *pmem,INT8U *perr)得到内存分区名称INT8U OSMemNameGet (OS_MEM *pmem,...原创 2018-02-23 12:12:49 · 1342 阅读 · 0 评论 -
OS_CORE.C(4)
/*$PAGE*//*********************************************************************************************************** INITIALIZATION* 初始化*原创 2018-02-06 20:08:38 · 278 阅读 · 0 评论 -
OS_CORE.C(3)
OSTCBCur->OSTCBStat |= events_stat | /* Resource not available, ...无法获得资源的话就将其挂起 */ OS_STAT_MULTI; OSTCBCur->OSTCBStatPend = OS_STAT_PEND_OK; //配置当前事件控制块中的事件状态标志为等待完成,因为这个事件即将被切原创 2018-02-06 20:04:15 · 416 阅读 · 0 评论 -
OS_CORE.C(2)
多任务挂起函数,先附一张流程图:/*$PAGE*//*********************************************************************************************************** PEND ON MULTIPLE EV原创 2018-02-06 18:31:09 · 519 阅读 · 2 评论 -
uc/os-II(source)各种文件含义集锦
os_cfg_app.c: 根据os_cfg_app.h中的宏定义声明变量和数组。 os_core.c: 包含uC/OS-III内核的功能模块。例如用来初始化uC/OS-III的OSInit(),用来完成任务级调度的OSSched(),用来完成中断级调度的OSIntExit(),任务等待表的管理以及任务就绪表的管理等。os_dbg.c: 包含...原创 2018-02-09 12:26:39 · 502 阅读 · 0 评论 -
OS_CORE.C(5)
/*$PAGE*//*********************************************************************************************************** ENTER ISR* 进入中断(执行中断)*...原创 2018-02-06 20:36:41 · 322 阅读 · 0 评论 -
uc/os中对任务的总体理解
原文:点击打开链接一. 任务的基本概念1. 任务分三个部分:任务控制块,任务堆栈,任务程序代码。任务控制块:关联了任务代码的程序控制块,它记录了任务的各个属性;任务堆栈:用来保存任务的工作环境。任务程序代码:就是任务的执行部分。2. 任务的状态睡眠状态:任务在没有配备任务控制块或被剥夺了作务控制块时的状态。就绪状态:配备了任务控制块并在任务就绪表中进行了就绪登记。运行状态:处于就绪状态的任务如果经...转载 2018-02-09 12:45:08 · 362 阅读 · 0 评论 -
OS_CORE.C(总结)
在内核的功能模块中,重点函数为:static void OS_InitEventList(void);/*初始化事件列表*/static void OS_InitMisc(void);/*初始化混杂项*/static void OS_InitRdyList(void);/*初始化就绪列表*/static void OS_InitTaskIdle(void);/*初始化空闲任务*/s...原创 2018-02-09 12:58:17 · 984 阅读 · 2 评论 -
uc/os-ii中任务优先级算法
看了很多有关计算任务优先级的内容,现在总结介绍:首先要理解一下就绪表和就绪组是什么意思?就绪表OSRdyTbl[ ] :μCOS-II进行任务调度的依据就是任务就绪表。为了能够使系统清楚地知道,系统中哪些任务已经就绪,哪些还没有就绪,μCOS-II 在 RAM中设立了一个记录表,系统中的每个任务都在这个表中占据1Bit 的位置,并用这个位置的状态(1或者0)来表示任务是否处于就绪状态...原创 2019-08-20 07:32:16 · 568 阅读 · 0 评论 -
OS_CORE.C(1)
第一个函数(获得信号量、互斥量、邮箱或者队列名字的函数)的流程图和分析图如下所示:/*$PAGE*//*********************************************************************************************************** GET THE原创 2018-02-05 21:02:13 · 426 阅读 · 0 评论 -
OS_FLAG.C(1)
本篇介绍OS_FLAG.C中的检测事件标志组的标志状态函数OS_FLAGS OSFlagAccept (OS_FLAG_GRP *pgrp,OS_FLAGS flags,INT8U wait_type,INT8U *perr)检测事件标志组的标志状态函数:介绍一下wait_type:在最后的代码中也有相关介绍,为了更好理解,下面具体解释一下: wait_type specifies w...原创 2018-02-11 15:57:32 · 1251 阅读 · 0 评论 -
OS_FLAG.C(2)
本篇介绍OS_FLAG.C文件中的创建事件标志组函数*OSFlagCreate (OS_FLAGS flags,INT8U *perr)和删除事件标志组函数 *OSFlagDel (OS_FLAG_GRP *pgrp,INT8U opt,INT8U *perr)。OS_FLAG_GRP *OSFlagCreate (OS_FLAGS flags,INT8U *perr)创建事件标...原创 2018-02-11 19:49:56 · 908 阅读 · 0 评论 -
任务间通信的基本知识
1. 信号量:信号量其实就是一种通过数字大小来实现限制资源使用的一种机制,设置信号量其实就是设置资源最大可以允许多少个任务同时访问同一个资源,通过信号量pend和post操作即信号量变量的加减实现任务控制。2. 互斥锁:互斥锁就是同一时间只有一个任务可以占有资源,当有其他任务要访问资源的时候就会将这个任务挂起,放到event的等待列表中,当占有资源的任务释放掉锁的时候,等待任务才可以占有资原创 2018-02-06 18:43:17 · 1175 阅读 · 0 评论 -
uc/os-ii中最高优先级计算(如何查表)
为什么要引入优先级表? Answer:uc/os-ii是个讲究实时性的操作系统,在有多个任务时,系统需要选择这些任务中优先级最高的任务进行调度。如果单靠计算,有的优先级计算费时少,有的很多,实时性得不到保证。如果引入表,我们只要知道表的横纵坐标就可以直接找到需要的任务,实时性可以得到保证。因此,引入优先级表。优先级表(OSUnMapTbl)和就绪表(OSRdyTbl)、就绪组(OSRdyGr...原创 2018-02-24 14:03:05 · 1161 阅读 · 0 评论
分享