文档章节

ucos 中断,调度,互斥 分析

青春无极限
 青春无极限
发布于 05/24 19:02
字数 570
阅读 5
收藏 0

实际场景:

首先有个标志位 pps_flag,是一个全局变量。有两个地方会用到这个变量,一个是pps信号触发的外部中断,一个是ucos的任务。当pps信号触发外部中断的时候pps_flag被置为2,当任务里面检测到pps_flag被置为2的时候,会把pps_flag设置为0,因此就产生一个问题,会不会这样操作,导致pps_flag乱掉。无法保证数据的可靠性和完整性啊。怎么搞,因此查了一下书《基于嵌入式实时操作系统点的程序设计技术》第七章资源同步-103页。

1.关中断

当参与访问共享资源的 程序中包含 中断程序(ISR)时,必须也只能用关中断的方式处理。优点是简单,缺点是影响系统实时性。因此在关中断里的代码必须的短。

采用OS_ENTER_CRITICAL(); 关中断

采用OS_EXIT_CRITICAL();退出关中断

 

2.关调度

关调度只能用于任务之间,而且关调度开启的时候不影响中断的运行,他只是不让各个task跑了,对系统其他的运行操作无影响。关调度的缺点是:使与该共享资源无关的任务都受到牵连,把所有任务都暂停了,肯定受牵连了啊。

OSSchedLock(); OSSchedUnlock();

如果关调度时间长了,那么会影响其他的任务运行,所以不要使用关调度,采用互斥锁吧。

3.互斥锁-互斥信号量

互斥锁也是仅限于 任务之间使用,如果涉及到了isr,那么还得使用关中断。使用互斥锁的时候,对于其他任务和中断都没有影响,只对涉及到使用共享资源的任务有影响。因此对于系统的实时性影响最小。

OSMutexPend(Sem,0,&err);

OSmutexPost(Sem);

© 著作权归作者所有

上一篇: ucosii 知识点总结
下一篇: 互斥锁与信号量
青春无极限
粉丝 2
博文 129
码字总数 71498
作品 0
卢湾
程序员
私信 提问
基于freescale K60硬件平台的ucos-ii的移植

一 概述 嵌入式操作系统应用之广泛,让我们的电子世界变得更加丰富多彩,没有研究过嵌入式操作系统,不足以号称为嵌入式软件工程师,本篇文章就详细描述了如何移植ucos的过程。 最近几天,在...

myselfzhangji
2018/02/08
0
0
ucos在M3中的中断嵌套机制

M3的中断控制器特性 可嵌套中断支持的作用范围很广,覆盖了所有的外部中断和绝大多数系统异常。外在表现是,这些异常都可以被赋予不同的优先级。当前优先级被存储在xPSR的专用字段中。当一个...

liukais
2017/08/08
0
0
uC/OS-II源码分析(六)

μC/OS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个。确定哪个任务优先级最高, 下面该哪个任务运行了的工作是由调度器(Scheduler)完成的。任务级的调度是由函数 OSSched()完成的。中断...

嗯哼9925
2017/12/26
0
0
ucos 和uclinux的区别及各自的特点

uc/os和uclinux操作系统是两种性能优良源码公开且被广泛应用的的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。本文通过对uc/os和uclinux的对比,分析和总结了嵌入式...

clmngu
2018/04/20
0
0
内核同步-锁机制

在Linux系统上,多个进程可以同时运行,以及各种中断发生的中断也在同时得到处理,这种多个上下文宏观上同时运行的情况称为并发。并发具体包括如下几种可能: 1) UP平台上,一个进程正在执行...

kaedehao
2016/03/05
119
0

没有更多内容

加载失败,请刷新页面

加载更多

【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
13
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
15
0
【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式

原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 译者:秉心说 View 和 ViewModel 分配责任 理想情况下,ViewModel 应该对 Android 世界一无所知。...

秉心说
昨天
16
0
重学计算机组成原理(十二) - 异常和中断

1 概览 完好的程序都满足以下特征 自动运行 我们的程序和指令都是一条条顺序执行,不需要通过键盘或者网络给这个程序任何输入 正常运行 没有遇到计算溢出之类的程序错误。 不过,现实的软件世...

JavaEdge
昨天
11
0
程序设计基础(C)第06讲例程

1summing.c /* summing.c -- 根据用户键入的整数求和 */#include <stdio.h>int main(void){ long num; long sum = 0L; /* 把sum 初始化为0 */ int status; p......

树人大学数字媒体吴凡
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部