应用程序一般是个无限循环,循环中的函数看做后台行为,而终端服务程序看作前台行为。
2.操作系统
3.实时操作系统RTOS
4.代码的临界区
不允许被打断的那部分
5.资源
6.共享资源
7.任务(线程)
8.任务切换
9.内核
10.调度
11.占先式内核,非占先式内核
12.任务优先级
13.中断
14.时钟节拍:周期性中断
前后台系统
应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)
代码的临界段
代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。
资源
任何为任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量,一个结构或一个数组等。
共享资源
可以被一个以上任务使用的资源叫做共享资源。
任务
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU
每个任务都处在以下5
休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。
就绪意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。
运行态的任务是指该任务掌握了CPU
挂起状态也可以叫做等待事件态WAITING
发生中断时,CPU
内核(Kernel)
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU
调度(
调度(Scheduler),英文还有一词叫dispatcher,也是调度的意思。就是要决定该轮到哪个任务运行了。
多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。
基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。然而,究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥夺型的还是可剥夺型内核。
不可剥夺型内核(Non-Preemptive
不可剥夺型内核允许每个任务运行,直到该任务自愿放弃CPU
可重入性(
可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU
时间片轮番调度法
当两个或两个以上任务有同样优先级,内核允许一个任务运行事先确定的一段时间,叫做时间额度(
静态优先级
应用程序执行过程中诸任务优先级不变,则称之为静态优先级
动态优先级
应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。
TTL和CMOS电平
1,TTL电平:
=2.0V,输入低电平<=0.8V,噪声容限是0.4V。
2,CMOS电平:
1逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。3
1)TTL
2)TTL
ISP
IAP
ISP
先进微控制器总线架构AMBA是ARM公司为高性能片上微控制器定义的一套总线标准,是一种中央多路选择器互连方案,它读数据和写数据的总线分开,完成片上数据传送。AMBA包括先进高性能总线(AHB)、先进系统总线(ASB)和先进外设总线(APB)。AHB和ASB都是高性能总线,采用高性能、高带宽系统设计,它支持多个主