美文网首页
stm32超轻量操作系统之信号量与互斥量

stm32超轻量操作系统之信号量与互斥量

作者: 生若夏花_1ad0 | 来源:发表于2018-11-21 17:28 被阅读0次

互斥量就是二元信号量,因此在一章里面介绍。

这一章比较简单,废话不多说,直接进入正题

信号量可以控制任务的执行顺序,在任务同步中作用很大。

信号量只有三个函数,实现方式是利用了挂起列表pendList

信号量SemCB结构体中的num代表信号量的值,互斥量中的num是一个bool量,因为stm32中不支持bool关键字,因此bool要我们自己定义,typedef enum{false=0,true=1} bool;

首先进行信号量的创建,初始化信号量,同时进行pendList的初始化。

针对信号量主要有两种操作,分别是p(减少num)和v(增加num)两种操作,对应的分别是WaitSem()和PostSem()

WaitSen减少num值,如果num为负值,就意味着有几个线程还在等待信号量。当信号量小于等于0是,要把当前线程从就绪表中删除,并且加入到等待列表中。然后执行任务的切换

一旦执行PostSem函数,如果num值小于0,就意味着应该把一个处于挂起态的函数从挂起态释放出来加入到就绪态中。

为了验证程序是否正确,设计了两个小程序。

第一个是在两个LED实验中分别加入semwait和sempost,观察程序是否能够持续运行

第二个实验加入了两个按键中断进行测试,一个按键中断发出waitsem,另一个发出postsem,观察当按键时led任务是否会阻塞。发现会阻塞

程序链接如下,实验用的是STM32F407的开发板

链接:https://pan.baidu.com/s/1my2HPG6shXB7QiwbR47Dnw

提取码:j5hw

stm32超轻量操作系统之任务调度

stm32超轻量操作系统之信号量与互斥量

相关文章

  • stm32超轻量操作系统之信号量与互斥量

    互斥量就是二元信号量,因此在一章里面介绍。 这一章比较简单,废话不多说,直接进入正题 信号量可以控制任务的执行顺序...

  • RTOS基础(互斥信号量)

    互斥信号量的原理与创建 问题描述 设计原理 设计实现 互斥信号量的等待与通知 设计原理 互斥信号量的删除与状态查询...

  • Java并发编程——信号量与互斥量

    信号量用于线程同步,互斥量用户保护资源的互斥访问。 信号量与互斥量的区别 互斥量用于线程的互斥,信号线用于线程的同...

  • FreeRTOS学习笔记(5)——互斥量

    一、头文件 二、互斥量 2.1 基本概念 互斥量又称互斥信号量(本质是信号量),是一种特殊的二值信号量,它和信号量...

  • CRTOS——互斥信号量

    互斥信号量等待操作: 1、等待互斥信号量,互斥信号量未被占有(锁定次数为0),占有过程中将信号量拥有者指向任务,并...

  • GCD的信号量的使用及其原理

    什么是信号量 信号量(semaphore)是操作系统用来解决并发中的互斥和同步问题的一种方法。信号量对于允许多个线...

  • 第二章 信号量机制

    3)信号量的基本应用:实现进程互斥; 实现进程间的前趋关系(有序) *互斥信号量注意点: 1.互斥信号量mutex...

  • 信号量 VS 互斥量

    互斥量和信号量的区别

  • 2-3进程同步(信号量)

    信号量是什么? 信号量的基本应用 实现多个进程互斥(注意点) (1)互斥信号量mutex初值为1; (2)每个进程...

  • 第二章操作系统复习要点

    第二章操作系统复习要点 本章每次约3题 一、资源互斥(PV) 信号量包含两类,一类是公用信号量,他实现进程间的互斥...

网友评论

      本文标题:stm32超轻量操作系统之信号量与互斥量

      本文链接:https://www.haomeiwen.com/subject/kjgcqqtx.html