Presentation is loading. Please wait.

Presentation is loading. Please wait.

《手把手教你学STM32-UCOS》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司

Similar presentations


Presentation on theme: "《手把手教你学STM32-UCOS》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司"— Presentation transcript:

1 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32-UCOS》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话: ddddd ALIENTEK 淘宝店铺: 技术论坛:

2 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32-UCOS》 UCOSIII信号量和互斥信号量 适用平台 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) 淘宝店铺: 技术论坛:

3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
目录 UCOSIII信号量 1 UCOSIII互斥信号量 2 UCOSIII任务内嵌信号量 3 淘宝店铺: 技术论坛:

4 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
UCOSIII信号量和互斥信号量 参考资料: 战舰/精英/Mini STM32/STM32F4开发板 《STM32F4 UCOS开发手册》-第十章 UCOSIII信号量和互斥信号量 《STM32F1 UCOS开发手册》-第十章 UCOSIII信号量和互斥信号量 淘宝店铺: 技术论坛:

5 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、UCOSIII信号量 1.1、信号量简介: 信号量像是一种上锁机制,代码必须获得对应的钥匙才能继续执行,一旦获得了钥匙,也就意味着该任务具有进入被锁部分代码的权限。一旦执行至被锁代码段,则任务一直等待,直到对应被锁部分代码的钥匙被再次释放才能继续执行。 信号量用于控制对共享资源的保护,但是现在基本用来做任务同步用。 要想获取资源的任务必须执行“等待”操作,如果该资源对应的信号量有效值大于1,则任务可以获得该资源,任务继续运行。如果该信号量的有效值为0,则任务加入等待信号量的任务表中。如果等待时间超过某一个设定值,该信号量仍然没有被释放掉,则等待信号量的任务就进入就绪态,如果将等待时间设置为0的话任务就将一直等待该信号量 淘宝店铺: 技术论坛:

6 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、UCOSIII信号量 1.1、信号量简介: 信号量通常分为两种:二进制信号量和计数型信号量。 二进制信号量只能取0和1两个值,计数型信号量的信号量值大于1,计数型信号量的范围由OS_SEM_CTR决定,OS_SEM_CTR可以为8位,16位和32位,取值范围分别为:0~255,0~65535和0~ 。 二值信号量用于那些一次只能一个任务使用的资源,比如I/O设备,打印机计,数型信号量用于某些资源可以同时被几个任务所使用,比如一个缓存池有10个缓存块,那么同时最多可以支持10个任务来使用内存池 淘宝店铺: 技术论坛:

7 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、UCOSIII软件定时器简介 1.2、信号量API函数: 函数名 作用 OSSemCreate() 建立一个信号量 OSSemDel() 删除一个信号量 OSSemPend() 等待一个信号量 OSSemPendAbrot() 取消等待 OSSemPost() 释放或者发出一个信号量 OSSemSet() 强制设置一个信号量的值 淘宝店铺: 技术论坛:

8 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、UCOSIII互斥信号量 2.1、优先级反转: 优先级反转在可剥夺内核中是非常常见的,在实时系统中不允许出现这种现象,这样会破坏任务的预期顺序,可能会导致严重的后果。 淘宝店铺: 技术论坛:

9 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、UCOSIII互斥信号量 2.2、互斥信号量: 为了避免优先级反转这个问题,UCOSIII支持一种特殊的二进制信号量:互斥信号量, 用它可以解决优先级反转问题 淘宝店铺: 技术论坛:

10 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、UCOSIII互斥信号量 2.2、互斥信号量API函数: 函数名 作用 OSMutexCreate() 建立一个互斥信号量 OSMutexDel() 删除一个互斥信号量 OSMutexPend() 等待一个互斥信号量 OSMutexPendAbrot() 取消等待 OSMutexPost() 释放或者发布一个互斥信号量 淘宝店铺: 技术论坛:

11 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、UCOSIII任务内嵌信号量 在UCOSIII中每个任务都有自己的内嵌的信号量,这种功能不仅能够简化代码,而且比使用独立的信号量更有效。任务信号量是直接内嵌在UCOSIII中的,任务信号量相关代码在os_task.c中。 函数名 作用 OSTaskSemPend() 等待一个任务信号量 OSTaskSemPendAbort() 取消等待任务信号量 OSTaskSemPost() 发布任务信号量 OSTaskSemSet() 强行设置任务信号量计数 淘宝店铺: 技术论坛:

12 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 淘宝店铺: 技术论坛:


Download ppt "《手把手教你学STM32-UCOS》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司"

Similar presentations


Ads by Google