如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
嵌入式系统原理与接口技术本节提要1.1计算机操作系统1.2嵌入式操作系统1.3实时操作系统(RTOS)RTOS与通用计算机OS的区别RTOS的组成RTOS的特点1.4前/后台系统前/后台行为应用程序是一个无限循环,循环中调用相应的函数完成相应的操作,这部分可看成后台行为(background)。中断服务程序处理异步事件,这部分可看成前台行为(foreground)。说明时间相关性很强的关键操作(criticaloperation)一定是靠中断服务来保证的。因为中断服务提供的信息一直要等到后台程序运行到该处理这个信息时,才能得到处理。该系统在处理信息的及时性上,比实际做的要差。处理信息的及时性称做任务级响应时间。最坏情况下,任务级响应时间取决于整个循环的的执行时间。(循环执行时间不是常数)1.5代码的临界段1.6多任务每个任务都是一个无限的循环。每个任务都在以下5种状态之一:休眠态休眠态相当于该任务驻留在内存中,但并不被多任务内核所调用。就绪态就绪态意味着该任务已经准备好,可以运行,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。挂起态(等待某一事件发生)挂起状态也可以叫做等待事件态WAITING,指该任务在等待,等待某一事件的发生。被中断态发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不运行,进入中断处理。多任务任务切换(ContextSwitch)1.7系统内核与调度缺点内核本身也增加了应用程序的额外负荷。代码空间增加了ROM的用量。内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。说明实时内核为使CPU的利用更为有效,提供了必不可少的系统服务:信号量管理,邮箱、消息队列及时间延时等。单片机一般不能运行实时内核,因为单片机的RAM很有限。调度算法基于优先级的调度法每个任务根据其重要程度的不同赋予一定的优先级,CPU总是让处在就绪态的、优先级最高的任务先运行。时间片轮转调度法调度原则总是进入优先级最高、就绪态的任务运行。1.8不可剥夺与可剥夺型不可剥夺型内核的优点响应中断快使用不可剥夺型内核时,任务级响应时间比前/后台系统快得多。此时的任务级响应时间取决于最长的任务执行时间。几乎不需要使用信号量保护共享数据运行着的任务占有CPU,而不必担心被别的任务抢占。但这也不是绝对的,在某种情况下,信号量还是用得着的。处理共享I/O设备时仍需要使用互斥型信号量。不可剥夺型内核的缺点不可剥夺型内核最大缺陷在于其响应时间,即响应高优先级的任务慢。不可剥夺型内核任务级响应时间要大大好于前/后台系统,但仍是不可知的,商业软件几乎没有不可剥夺型内核。可剥夺型内核最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。说明使用可剥夺型内核,最高优先级的任务什么时候可以执行,何时可以得到CPU的控制权,这些是可知的,使得任务级响应时间得以最优化。使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用互斥型信号量来实现。如果调用不可重入型函数时,低优先级的任务的CPU使用权被高优先级任务剥夺,不可重入型函数中的数据有可能被破坏。可剥夺型内核总是让就绪态的高优先级的任务先运行,中断服务程序可以抢占CPU。μC/OS-Ⅱ以及大多数的商业的实时内核都是可剥夺型内核。1.9可重入型函数可重入型函数的例子不可重入型函数的例子把Temp定义为局部变量;调用函数之前关中断,调用后再开中断;用信号量禁止该函数在使用过程中被再次调用。1.10任务优先级动态优先级应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。1.11优先级反转优先级反转优先级继承1.12任务优先级分配单调执行率调度法RMS认为:最高执行率的任务具有最高的优先级;但在某些条件下,最高执行率的任务并非是最重要的任务。1.13互斥条件关中断和开中断测试并置位操作禁止,然后允许任务切换1.14信号量(Semaphores)信号量有两种类型:二进制型:只有两个值1和0。当信号量的值为0时,该任务被挂起;当值为1时,任务得以运行。任务1计数型信号量计数式信号量的值可以是0~255或0~65535或0~4294967295,取决于信号量规约机制使用的