uCOS-II多任务实时系统
文章平均质量分 66
Hello:CodeWorld
走过大半个中国去睡你、
展开
-
µC/OS-II 系统空闲任务,统计任务和应用任务
1.任务类型划分µC/OS-II系统任务类型可以大致分为三种,空闲任务,统计任务,应用任务(用户开发对应功能模块需要创建的任务)2.任务类型介绍a.首先说一下空闲任务和统计任务:µC/OS-II要用户在使用任何服务之前先调用OSInit() 。它会建立两个任务:空闲任务和统计任务,前者在没有其它任务处于就绪态时运行;后者计算CPU的利用率。OSInit() 接口定义如下:/******************************************************原创 2021-03-27 23:00:16 · 1228 阅读 · 0 评论 -
uCOS-II系统延时函数
延时函数的几点说明:1.延时函数由两个OSTimeDly()和OSTimeDlyHMSM(),其实OSTimeDlyHMSM函数实现内部也是调用了OSTimeDly函数。不同的地方是OSTimeDlyHMSM的参数多了几个参数,可以指定具体要延时几个小时、几分钟、几秒钟或几毫秒的时间。2.这两个延时函数执行时,都会阻塞当前Task的执行,直到延时时间结束才可以进行往下执行该Task.3.由于延时函数会阻塞当前执行的任务,所以拿该延时函数来做定时任务的定时时间管理可能会不准确。OSTim.原创 2021-03-27 21:27:06 · 1761 阅读 · 0 评论 -
STM32系统Tick定时器的初始化和配置
1.首先确定SystemCoreClock系统时钟系统时钟需要根据具体的系统时钟配置来确定,这里采用SystemCoreClock = 72MHZ来说明。至于系统时钟的计算和配置,后面单独介绍说明一下吧。2.配置SysTick定时器SysTick_Config(SystemCoreClock/OS_TICKS_PER_SEC);//初始化并使能SysTick定时器假设我们想配置SysTick定时器中断间隔周期为1ms,即每间隔1ms定时中断来一次。可定义一个宏定义#defin..原创 2021-03-27 20:50:36 · 3255 阅读 · 0 评论 -
uCOS-II消息邮箱的相关操作函数
定位到uCOS-II/Source/os_mbox.c,该文件是消息邮箱管理的相关操作函数。 任务与任务之间需要数据传递,那么为了适应传递的数据的不同类型,可以建立一个缓冲区(void*类型可以接收不同类型的数据),然后以该缓冲区为介质来实现任务间的切换,这就是消息邮箱的数据传输原理。 消息邮箱的具体实现是:将数据缓冲区的指针赋给事件控制块(OS_EVENT)的成员OSEventPtr(OSEventPtr是个void* 类型),同时设置OSEventPtr中的用于表示事件类型的成员OSEven转载 2021-02-27 22:25:29 · 1899 阅读 · 0 评论 -
uCOS-II信号量的相关操作函数
定位到uCOS-II/Source/os_sem.c,该文件是信号量的相关操作函数。 信号量适用于资源保护的场合,它和互斥型信号量Mutex一样,用于保护着某个共享资源,二者的差别是:Mutex是二值的(0/1),其初始值为1,某任务要操作共享资源,需要获取信号量,获取后信号量计数器为0,那么下一个任务来获取该Mutex将获取不到;而信号量Semaphore的初始值(信号量计数器)可以为大于1的数,假设为3,,那么任务A要使用该资源时,获取信号量后信号量值为2,同理,被任务B获取后信号量值为1,任务C转载 2021-02-27 21:35:37 · 1423 阅读 · 1 评论 -
uCOS-II互斥型信号量的相关操作函数
定位到uCOS-II/Source/os_mutex.c,该文件是互斥型信号量的相关操作函数。互斥型信号量也就是互斥锁Mutex,是一个二值(0/1)信号量。在操作共享资源时,使用Mutex可以保证满足互斥条件。1. 非阻塞的获取互斥型信号量函数OSMutexAccept() OSMutexAccept()用于检测Mutex以判断是否可用,若资源不可用,调用此函数不会使得所在任务被挂起。//允许使用os中的Mutex#if OS_MUTEX_ACCEPT_EN > 0uBOOLEAN转载 2021-02-27 21:09:54 · 1248 阅读 · 0 评论 -
uC0S-II 临界代码开关中断操作的详解
uC0S-II 临界代码开关中断操作的详解执行临界代码段前后进行中断的开发,是为了保护临界代码段的连续执行,防止中断触发导致临界代码段执行过程中被打断,或CPU调度任务进行切换任务。导致代码执行发生异常。两个函数:OS_ENTER_CRITICAL()//关中断函数OS_EXIT_CRITICAL() //就是开中断函数代码中应用示例代码如下:这两个函数是uC/OS操作系统进入/退出“临界区”的功能代码,一般格式为:OS_CP...原创 2021-02-27 17:13:02 · 864 阅读 · 0 评论