
uC/OS
猪哥-嵌入式
这个作者很懒,什么都没留下…
展开
-
uCOS-II之信号量
信号量是一类时间,使用信号量的最初目的是,为了给共享资源设立一个标志,该标志表示该共享资源的占用情况,这样,当一个任务在访问共享资源之前,就可以先对这个标志进行查询,从而在了解资源被占用的情况后,再来决定自己的行为。距离来讲,信号量就相当于停车场入口的停车位剩余标志,只有场内有多余停车位时,外面的车才能进入停车场停车。信号量分为两种:二值型信号量,N值信号量。二值就只有0和1两种状态,类似于家原创 2016-01-05 10:39:12 · 1082 阅读 · 1 评论 -
uCOS-II之邮箱
多任务操作系统中,常常需要再任务与任务之间通过传递一个数据(注意这里是1个数据,而不是多个数据)的方式进行通信,为了达到这个目的,可以在内存中创建一个存储空间作为该数据的缓冲区,如果把这个缓冲区称为消息缓冲器,这样在任务间传递数据(消息)的最简单的办法就是传递消息缓冲区的指针,我们把用来传递消息缓冲区指针的数据结构叫做邮箱(消息邮箱)。在ucos中,我们通过事件控制块的OSEventPrt来传原创 2016-01-05 15:18:19 · 3025 阅读 · 0 评论 -
uCOS-II的任务调度和时钟
在uCOS-II中,任务切换只是简单的将处理器寄存器保存到将被挂起的任务的堆栈中,并且将更高优先级的任务从堆栈中恢复出来,或者叫copy复制出来,处于就绪状态的任务的堆栈结构看起来就像刚发生过中断并将所有的寄存器保存到堆栈中的情形一样。换句话说,uCOS-II要运行处于就绪状态的任务必须要做的事情就是将所有的处理器寄存器从任务堆栈中恢复出来。并且执行中断返回。 uCOS-II有2种任务调原创 2015-12-21 16:38:28 · 1965 阅读 · 0 评论 -
uCOS时钟节拍和滴答定时器的关系
在使用uCOS时,有一个非常重要,非常关键的概念就是操作系统的时钟节拍,uCOS的时钟节拍来源于滴答定时器,滴答定时器按照设定的时间不停的计时和产生中断,在uCOS-III中滴答定时器的中断服务函数如下:void OS_CPU_SysTickHandler (void){ CPU_SR_ALLOC(); CPU_CRITICAL_ENTER(); OSIntNes原创 2016-04-26 17:07:08 · 13602 阅读 · 0 评论 -
uCOS的软件定时器
uCOS2.81后的版本中有软件定时器的概念,软件定时器其实跟硬件中断是相似的,定时时间到了,就执行一次回调函数,虽然好用,但是也会降低系统的实时性。 软件定时器也需要一个时钟节拍驱动,这个驱动也是由硬件实现的,一般使用uCOS中的任务延时节拍驱动来驱动软件定时器,每个时钟节拍OSTmrCtr(全局变量,初始值为0)加1,当OSTmrCtr的值等于OS_TICKS_PER_SEC /OS原创 2016-04-27 17:28:33 · 4806 阅读 · 1 评论 -
uCOS-III中的OS_CRITICAL_ENTER()和OS_CRITICAL_EXIT()使用
uCOS-III是uCOS-II的升级版本,虽然针对于后者有各种优化,但是有一点不是特别好,就是有些宏定义名称会做一些修改,这种修改可能更合理,但是可能会引起一些不必要的“误会 ”,例如在uCOS-II中临界区的使用函数名字为:#include "os_cpu.h" //包含该头文件xxxx(){ OS_CPU_SR cpu_sr=0; //必须要定义一个局部变量才原创 2016-04-28 14:24:07 · 10147 阅读 · 0 评论 -
uCOS-III移植到STM32分析
摘要:所谓移植是将一个系统嵌入到STM32工程项目中,需要将STM32的工程“神经”与uC/OS的“神经”搭一起。而对于操作系统的移植,我们需要知道功能流程,没有必要所有的程序代码都需要自己写,那就变成自己写操作系统了,会特别累。 一、移植步骤简述(1)下载STM32最新固件库3.5版本。(2)创建一个纯净的裸机工程项目。(3)uC/OS官网下载STM32的案例程序,找原创 2016-12-27 22:31:38 · 19694 阅读 · 1 评论 -
uC/OS的消息邮箱使用经验
uC/OS下任务之间通信的方式之一有消息邮箱,使用消息邮箱有两种方式:(1)数据的存放(2)传递指向一个数据的指针,就是传递多个数据。 经验小结如下:一、数据存放,存放单个数据邮箱可以传递任何类型数据,在传递时,先将数据用(void*)进行类型变化,变为void*这种万用类型,而在接收邮箱数据时,再还原为本身的数据类型,举例如下:OSMboxPost(Mbox,(void*原创 2017-02-16 17:31:08 · 2701 阅读 · 0 评论