RTX——第7章 任务管理】的更多相关文章

以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 单任务系统学习多任务系统之前,我们先来回顾下单任务系统的编程框架,即裸机时的编程框架. 裸机编程主要是采用超级循环(super-loops)系统,又称前后台系统.应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看做后台行为,中断服务程序处理异步事件,这部分可以看做是前台行为. 后台也可以叫做任务级,前台也叫作中断级. 对于前后台系统的编程思路主要有以下两种方式: 轮询方式对于一…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 前面的章节我们已经讲解了任务管理和时间管理,从本章节开始讲解任务间的通信和同步机制.首先讲解任务间的通信和同步机制之一,事件标志组. 时间标志组:移植了三个小型嵌入式操作系统了,应该明确一下这个时间标志组用来干什么了. 事件标志组----它是用来同步几个任务,协调几个任务工作而设立的.打个比方你现在要打个电话,打电话这个任务要执行,你必须有手机吧!那你要先执行买手机这个任务,你手机有了,没话费~你也打…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家将介绍 RTX 操作系统支持的任务调度方式,抢占式,时间片和合作式,这部分算是RTX 操作系统的核心了. 对于初学者来说,要一下子就能够理解这些比较困难些,需要多花些时间把这些基本概念搞清楚,然后阅读下源码,深入理解实现方法. RTX 支持的调度方式RTX 操作系统支持三种调度方式: 抢占式调度每个任务都有不同的优先级,任务会一直运行直到被高优先级任务抢占或者遇到阻塞式的 API 函数…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家讲解 RTX 运行模式的一个重要知识点,特权级模式和非特权级模式,有些资料或者书籍将非特权级模式称为用户模式. RTX 任务特权级知识点说明对于初学者只需记住本小节的知识点即可,如果要深入的了解还是需要花些时间去研究下 Cortex-M3或者 M4 权威指南.对于使用 Cortex-M3 或者 M4 内核的芯片来说,RTX 操作系统可以让任务运行在特权级或者非特权级模式,这两种模式是 M…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解如何采用 SVC 中断方式调用用户函数. 当用户将 RTX 任务设置为工作在非特权级模式时,任务中是不允许访问特权级寄存器的,这个时候使用 SVC 中断,此问题就迎刃而解了. SVC 功能介绍SVC 用于产生系统函数的调用请求.例如,操作系统通常不让用户程序直接访问硬件,而是通过提供一些系统服务函数,让用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 内存管理介绍在 ANSI C 中,可以用 malloc()和 free()2 个函数动态的分配内存和释放内存,但是,在嵌入式实时操作系统中,调用 malloc()和 free()却是危险的,因为多次调用这两个函数会把原来很大的一块连续内场区域逐渐地分割成许多非常小而且彼此又不相邻的内存块,也就是内存碎片.由于这些内存碎片的大量存在,使得程序到后来连一段非常小的连续内存也分配不到.另外,由于内存管理算法…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 RTX 支持的定时器组,或者叫软件定时器,或者叫用户定时器均可.软件定时器的功能比较简单,也容易掌握. 被称为定时器组是因为用户可以创建多个定时器,创建的个数是可配置的. 定时器组介绍RTX 提供的定时器功能仅支持单次定时器,也就是用户创建了定时器并启动了定时器后,定时时间到将不再重新执行,此定时器会被删除掉并且就执行一次,下次使用要重新的创建,这个就是单次定时器的含义. 另外就是单…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 前面几个章节主要给大家讲解了任务间的同步和资源共享机制,本章节为大家讲解任务间的通信机制消息邮箱,RTX 的消息邮箱其实就是消息队列,注意和 uCOS-II 中的消息邮箱区分开,uCOS-II 的消息邮箱只能实现一个数据的传递.这里的消息邮箱可以实现多个数据的传递. 消息邮箱的概念及其作用RTX 的消息邮箱实际上就是消息队列,通过内核提供的服务,任务或中断服务子程序可以将一个消息(注意,RTX 消息邮…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节开始讲解 RTX 的另一个重要的资源共享机制---互斥信号量(Mutex,即 Mutual Exclusion的缩写). 注意,建议初学者学习完上个章节的信号量后再学习本章节的互斥信号量. 一定要多思考,二值信号会造成优先级翻转,所以在优先级有严格要求的场合,请使用互斥信号.互斥信号量的概念及其作用互斥信号量就是信号量的一种特殊形式,也就是信号量初始值为 1 的情况. 有些 RTOS 中也将信号…
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节开始讲解 RTX 的另一个重要的任务间的同步和资源共享机制,信号量. 信号量有3种用途: 1) 表达事件的发生次数或者已发生事件的数量. 2) 表达资源可用性,例如有一台打印机,信号量值为1表示打印机空闲, 为0表示打印机被占用.这是资源可用量的一个特例,也可以说,信号量值为1表示有1台打印机空闲,为0表示无打印机空闲. 3) 表达资源可用量,例如有10个串口,信号量值用于表达空闲串口数量 实际…