![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UCOS
文章平均质量分 89
我又不会射雕
恰同学少年
展开
-
UCOS学习日(2)-任务堆栈和任务切换的更详细的剖析
任务堆栈昨天详细说了任务控制块,今天接着说一下任务堆栈昨天说到STM32的堆栈地址是默认这种类型的,简单的说就是,栈顶高地址,向下增长◎ Full descending 满递减堆栈 堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。任务控制块及其链表UCOS中一次定义了两个链表。一个空白的任务控制块链表,一个是已经初始化好分配给任务的任务...原创 2019-03-23 00:27:04 · 1392 阅读 · 0 评论 -
UCOS-II 系统的原理和任务-学习日(1)
写在前头本人嵌入式小辣鸡,本着好记性不如烂笔头的懒惰想法,在网上码起字来。说的容易,还是光看,然后想一想舒服,不过这样也是容易忘得很快。写下自己的想法,和感受更有助于巩固,和以后的复习。所以决定动起手指。敲出来。如笔记中有理解错误,逻辑混乱不流畅的地方,欢迎大牛指正讨论,私信交流。不接受批评!学习参考资料《正点原子STM32F428UCOS开发手册》-原子哥《嵌入式实时操作系统UCOS-I...原创 2019-03-21 23:57:39 · 1876 阅读 · 0 评论 -
UCOS-II学习日(3)任务的创建以及任务的操作管理
UCOS对任务的操作任务的创建,删除,挂起,等操作都是通过系统函数来实现的UCOS可以使用OSTaskCreate()或者OSTaskCreateExt()来创建任务UCOS创建任务的一般方法在OSInit()函数调用后,创建一个start_task()任务,在start_task()任务中创建我们要创建的任务(正点原子的源码中是这样做的)任哲老师的书中是直接在OSInit()之后,...原创 2019-03-24 23:39:45 · 1358 阅读 · 0 评论 -
UCOS学习日(5)任务间的通讯,事件控制块,信号量的详细操作
任务间的通信任务之间的协调运行非常有必要,否则系统将会出现非常严重的问题。UCOS提供一个事件控制块来控制任务之间的通讯事件的类型信号量互斥信号量消息队列消息邮箱信号量计数器统计信号量的数消息邮箱或消息队列的指针等待事件的任务组和任务等待表类似于任务就绪表一样的结构任务对应位为1就表示任务为该事件的等待任务。而系统初始化时,也会根据最大任务OS_MAX_EVENTS来...原创 2019-03-30 15:26:00 · 372 阅读 · 0 评论 -
UCOS学习日(6)互斥信号量,消息邮箱,消息队列
互斥信号量如果有三个任务ABC,优先级的顺序也是ABC,A和C共用一个信号。如果在C占用信号的时候,A处于等待状态,当B处于就绪状态的时候就会打断C任务的执行,从而影响A任务得到信号量。这样B任务就会出现优先级的反转。UCOS中引出一个互斥信号量来解决这个问题。互斥信号量会在使用的过程中暂时的提高两个任务的优先级比任何任务的优先级都高,从而尽快使用完共享资源, 在释放完信号量以后恢复正常的优先...原创 2019-03-31 21:40:33 · 1176 阅读 · 0 评论 -
UCOS学习日(7)信号量集AND内存管理
信号量集的结构有时候一个任务需要多个信号资源才可以进行,这时候我们就需要信号量多个信号量之间也可以有逻辑运算,比如全0有效,一个0就有效。全1有效,一个1就有效信号量的结构体叫标记组OSFlagFlags是一个U16的变量,它是一个位图也就是说可以有16个信号OSFlagType 是一个固定的宏OS_EVENT_TYPE_FLAGSOSFlagWaitList指向了该信号量集的所有等...原创 2019-04-01 22:35:08 · 184 阅读 · 0 评论 -
UCOS学习日(4)中断和时钟
UCOS的中断UCOS系统发生了中断的时候,响应的过程如下1.保存CPU的寄存器,中止当前任务。2.跳转到中断子程序中。3.中断子程序执行完成之后,使用中断级调度器去调度,任务就绪表中优先级最高的任务。注意:由于中断允许嵌套,所以进一次中断UCOS中有一个OSIntNesting全局变量++一次,退出的一个中断就把OSIntNesting - - 一次。当中断嵌套未0 ,且调度器没被上锁...原创 2019-03-28 23:37:57 · 280 阅读 · 0 评论 -
用STM32F103使用OLED屏实现贪吃蛇游戏
偶然一天突发奇想想在MCU上实现一个小游戏,综合现有硬件开发资源和开发能力,想来想去贪吃蛇最为合适。有之前朋友留给我的一块四轴飞行器遥控器的电路板,上面有摇杆按键和OLED瓶。STM32F103R8T6。于是决定在这块板子上开发。移植UCOS-II这个就说了,参考正点原子移植的例程,然后拷贝UCOS代码过来,没有什么难度。写OLED,LED,摇杆按键RCT,24L01驱动这个也不想多说。...原创 2019-06-04 23:50:50 · 5026 阅读 · 0 评论