版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 冯·诺依曼体系结构和哈佛体系结构答:冯·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。冯诺依曼结构的CPU和微控制器品种有很多,例如Intel公司的8086系列及其他CPU,ARM公司的ARM7、MIPS公司的MIPS处理器等 哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统中具有
2、程序的数据总线与地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高执行速度,提高数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠,具有较高的执行效率。哈佛结构的CPU和微控制器品种有很多,除DSP处理器外,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。2. CISC和RISC类别CISCRISC指令系统指令数量很多较少,通常少于100执行时间有些指令执行时间很长,如整块
3、的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器对行算术和逻辑操作,Load/Store体系结构编译难以用优化编译器生成高效的目标代码程序 采用优化编译技术,生成高效的目标代码程序 3. ARM状态各模式下的寄存器1.所有的37个寄存器,分成两大类:31个通用32位寄存器:包括程序计数器(PC指针),均为32位的寄存器。 6个状态寄存器:用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。寄存器R13
4、常作为堆栈指针(SP)。R14为链接寄存器(LR)。寄存器R15为程序计数器(PC)。2、R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。3、寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器4、寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度5、寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。三、处理器工作模式1
5、、ARM处理器有7种工作模式:用户 (usr)、系统 (sys)、快中断(fiq)、中断 (irq)、管理 (svc)、中止 (abt)、未定义 (und)正常模式:用户(USR)、系统(SYS)。其他都是异常模式系统(复位)和软件中断响应时进入(管理)模式2、除用户模式外,其它模式均为特权模式。ARM内部全部系统资源和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。 3、此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。四、ARM异常处理l 当异常产生时, ARM 核:l 拷贝 CPSR 到 SPSR_<mode>l 设置适当的 CPSR
6、 位: l 改变处理器状态进入 ARM 态l 改变处理器模式进入相应的异常模式l 设置中断禁止位禁止相应中断 (如需要)l 保存返回地址到 LR_<mode>l 设置 PC 为相应的异常向量地址l 返回时, 异常处理程序需要:l 从 SPSR_<mode>恢复CPSRl 从LR_<mode>恢复PC l 注意:这些操作只能在 ARM 态执行.五、ARM指令集1、ARM寻址方式:掌握ARM微处理器9种寻址方式的特点。 1.寄存器寻址 操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。 例如指令:
7、MOV R1,R2 ;R1R2 SUB R0,R1,R2 ;R0R1- R22立即寻址 在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。立即数要以“”为前缀,表示16进制数值时以“0x”表示。 例如指令: ADD R0,R0,#1 ;R0R0 + 1 MOV R0,#0xff00 ;R00xff003寄存器移位寻址 寄存器移位寻址是ARM指令集特有的寻址方式。第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。 例如指令: MOV R0,R2,LSL #3 ;R2的值左移3位,结果放入
8、R0,即R0=R2 * 8 ANDS R1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相与操作,结果放入R1可采用的移位操作如下: LSL:逻辑左移(Logical Shift Left),寄存器中字的低端空出的位补0。LSR:逻辑右移(Logical Shift Right),寄存器中字的高端空出的位补0。ASR:算术右移(Arithmetic Shift Right),移位过程中保持符号位不变,即如果源操作数为正数,则字的高端空出的位补0,否则补1ROR:循环右移(Rotate Right),由字的低端移出的位填入字的高端空出的位RRX:带扩展的循环右移(Rotate Ri
9、ght extended by 1 place),操作数右移一位,高端空出的位用原C 标志值填充。4寄存器间接寻址 指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针,操作数存放在存储器中。 例如指令 : LDR R0,R1 ;R0R1(将R1中的数值作为地 址,取出此地址中的数据保存在R0中) STR R0,R1 ;R1 R0 5变址寻址 变址寻址是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址,变址寻址用于访问基址附近的存储单元,常用于查表,数组操作,功能部件寄存器访问等。例如指令: LDR R2,R3,#
10、4 ;R2R3 + 4(将R3中的数值加4作为地址,取出此地址的数值保存在R2 中) STR R1,R0,#-2 ;R0-2 R1(将R0中的数值减2作为地址,把R1中的内容保存到此地址位置)采用变址寻址方式的指令又可以分为以下几种形式:前变址模式:LDR R0,R1,4;R0R14后变址模式: LDR R0,R1 ,4;R0R1、R1R14自动变址模式:LDR R0,R1,4!;R0R14、 ; R1R14基址寄存器的地址偏移可以是一个立即数,也可以是另一个寄存器,并且在加到基址寄存器前还可以经过移位操作,如下所示: LDR R0,R1,R2 ;R0 R1+R2 LDR R0,R1,R2,L
11、SL #2 ;R0 R1+R2*46多寄存器寻址(LDM/STM) LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送,这种寻址方式用一条指令最多可以完成16个寄存器值的传送。格式为: LDM(或STM)条件类型 基址寄存器!,寄存器列表 7堆栈寻址 堆栈是一种数据结构,堆栈是特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”,堆栈寻址时隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆
12、栈),指针所指向的存储单元就是堆栈的栈顶。存储器生长堆栈可分为两种: 向上生长:向高地址方向生长,称为递增堆栈(Ascending Stack)。 向下生长:向低地址方向生长,称为递减堆栈(Decending Stack)。 堆栈指针指向最后压入堆栈的有效数据项,称为满堆栈(Full Stack);堆栈指针指向下一个要放入数据的空位置,称为空堆栈(Empty Stack)。8块复制寻址 块复制寻址用于把一块从存储器的某一位置复制到另一位置,是一个多寄存器传送指令。例如指令: STMIA R0!,R1-R7 ;将R1R7的数据保存到存储器中,存储器指针在保存第一个值之后增加,增长方向为向上增长。
13、 STMDA R0!,R1-R7 ;将R1R7的数据保存到存储器中,存储器指针在保存第一个值之后增加,增长方向为向下增长。9相对寻址 相对寻址是变址寻址的一种变通,由程序计数器PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后得到的地址即为操作数的有效地址。 例如指令: BL ROUTE1 ;调用到ROUTE1子程序 BEQ LOOP ;条件跳转到LOOP标号处 LOOP MOV R2,#2 ROUTE1 2、堆栈寻址F 满递增堆栈(FA):堆栈指针指向最后压入的数据,且由低地址向高地址生成。F 满递减堆栈(FD):堆栈指针指向最后压入的数据,且由高地址向低地址生成。F 空递增堆栈(E
14、A):堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。F 空递减堆栈(ED):堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。六、多寄存器寻址(块拷贝寻址)1、块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式。LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。2、 LDM/STM指令依据其后缀名的不同其寻址的方式也有很大不同。七多寄存器寻址(块拷贝寻址)LDMIA R1!,R0,R2,R3指令执行后,R1的值变为 R1+12>
15、R1;注:!决定Rn的值是否随着传送而改变寻址模式描述起始地址结束地址Rn!IA执行后增加RnRn+4*NRn+4*NIB执行前增加Rn+4Rn+4*NRn+4*NDA执行后减少RnRn-4*NRn-4*NDB执行前减少Rn-4Rn-4*NRn-4*N八ARM状态与Thumb状态 的转换实现ARM工作状态转换的指令,其句法如下: BX 目标地址1.BX指令将引起处理器转移到目标地址所指向的地址处执行。2.目标地址的位0不用来作为地址的一部分。3.若目标地址的位0为1,则指令将CPSR中的标志T置位,且将目标地址的代码解释为Thumb代码;4.若目标地址的位0为0,则指令将CPSR中的标志T复位
16、,且将目标地址的代码解释为ARM代码。九、 ARM的硬件系统结构 1、S3C2410的存储器系统l S3C2410支持大、小端模式,可通过软件选择大小端模式;l 存储空间分成8个Bank,每个Bank 128Mbytes,总共 1GB;Ø 6个Bank用于控制 ROM, SRAM, etc.Ø 剩余的2个Bank用于控制 ROM, SRAM, SDRAM, etc .l 除 Bank0 (16/32-bit) 外,所有的Bank都可以通过编程选择总线宽度= (8/16/32-bit) ;l 7个Bank固定起始地址,最后一个Bank可调整起始地址;l 最后两个Bank大小可
17、编程l 所有Bank存储周期可编程控制;l 如果同时使用Bank6/ Bank7,则要求连接相同容量的存储器,而且其地址空间在物理上是连续的。2、S3C2410的I/O口配置 答: S3C2410有117个多功能口,掌握如何通过软件编程对每个I/O口进行配置。如将端口C的最低2为设置为01,既设置成输出模式,其余位不变。 rGPCCON = rGPCCON&0xfffffffc|0x00000001; rGPCDAT= rGPCDAT |0x001; /PC0口电平输出高3、掌握ARM微处理器的中断系统的特点 (了解:一旦有中断发生,ARM的中断系统将如何处理)。 答:(1)保存现场。
18、保存当前的PC值到R14,保存当前的程序运行状态到SPSR。 (2)模式切换。根据发生的中断类型,进入IRQ模式或FIQ模式。 (3)获取中断服务子程序地址。PC指针跳到异常向量表所保存的IRQ或FIQ地址处,IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。 (4)多个中断请求处理。在ARM系统中,可以存在多个中断请求源,比如串口中断、AD中断、外部中断、定时器中断及DMA中断等,所以可能出现多个中断源同时请求中断的情况。为了更好地区分各个中断源,通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判
19、断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。 (5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。4、了解S3C2410的DMA控制器的基本工作原理。DMA工作原理l DMA(Direct Memory Acess,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。在DMA传输过程中,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。
20、DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。现在大部分计算机系统均采用DMA技术。许多输入输出设备的控制器都支持DMA方式。l 在进行DMA数据传送之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出。因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。采用DMA方式进行数据传输的具体过程如下。 1)外设向DMA控制器发出DMA请求。 (2)DMA控制器向CPU发出总线请求信号。 (3)CPU执行完现行的总线周期后,向DMA控制器
21、发出响应请求的回答信号。 (4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。 (5)DMA控制器向外部设备发出DMA请求回答信号。 (6)进行DMA传送。 (7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转人中断处理程序进行后续处理。 (8)中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。5、嵌入式存储系统的特点。(1)高速缓冲存储器原理及特点。(2)存储器管理单元MMU主要完成的功能。八、 嵌入式系统I/O设备接口1、掌握S3C2410的I/O接口的编程( 要求:掌握I/O口编程,能编写实现LED1、 L
22、ED2 、 LED3、 LED4 轮流闪烁的程序。下面是实现LED1和LED2轮流闪烁的程序代码。) void Main(void) int flag,i; Target Init();/进行硬件初始化操作,包括对IO口的初始化操作 for(;) if(flag = = 0) for(i = 0;i < 1000000;i+); /延时 rGPGCON rGPGCON0xfff0ffff | 0x00050000;/配置第8、第 /9位为输出引脚 rGPGDAT rGPGDAT0xeff | 0x200; /第8位输出为低电平 /第9位输出高电平 for(i = 0;i< 1000
23、0000;i+); /延时 flag = 1; else for(i = 0;i< 1000000;i+); /延时 rGPGCONrGPGCON0xfff0ffff(0x00050000;/配置第8、 /第9位为输出引脚 rGPGDATrGPGDATOxdff | 0x100;/第8位输出为高电平 /第9位输出低电平 for(i = 0;i< 1000000;i+); /延时 flag = 0; 2、掌握S3C2410的A/D转换器接口的原理(要求:掌握A/D转换器接口的原理,能编写A/D转换器初始化函数和获取A/D的转换值的程序。)A/D转换器接口的原理:A/D转换器(模数转换
24、器)完成电模拟量到数字量的转换。实现A/D转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法等。1计数式A/D转换器原理l 计数式A/D转换器结构如图5.2.1所示。其中,Vi是模拟输入电压,VO是D/A转换器的输出电压,C是控制计数端,当C=1(高电平)时,计数器开始计数,C=0(低电平)时,则停止计数。D7D0是数字量输出,数字输出量同时驱动一个D/A转换器。计数式A/D转换器的转换过程如下: 首先/CLR(开始转换信号)有效(由高电平变成低电平),使计数器复位,计数器输出数字信号为00000000,这个00000000的输出送至8位D/A转换器,8位D/A转换器也输出0V模拟信号。
25、 当/CLR恢复为高电平时计数器准备计数。此时,在比较器输入端上待转换的模拟输入电压Vi大于VO(0V),比较器输出高电平,使计数控制信号C为1。这样,计数器开始计数。 从此计数器的输出不断增加,D/A转换器输入端得到的数字量也不断增加,致使输出电压VO不断上升。在VOVi时,比较器的输出总是保持高电平,计数器不断地计数。 当VO上升到某值时,出现VO>Vi的情况时,此时,比较器的输出为低电平,使计数控制信号C为0,计数器停止计数。这时候数字输出量D7D0就是与模拟电压等效的数字量。计数控制信号由高变低的负跳变也是A/D转换的结束信号,表示已完成一次A/D转换。 计数式A/D转换器结构简
26、单,但转换速度较慢。2双积分式A/D转换器原理l 双积分式A/D转换器对输入模拟电压和参考电压进行两次积分,将电压变换成与其成正比的时间间隔,利用时钟脉冲和计数器测出其时间间隔,完成A/D转换。双积分式A/D转换器主要包括积分器、比较器、计数器和标准电压源等部件,其电路结构图如图5.2.2(a)所示。l 双积分式A/D转换器的转换过程如下: 首先对输入待测的模拟电压Vi进行固定时间的积分; 然后转换到标准电压VR进行固定斜率的反向积分(定值积分 ),如图5.2.2(b)所示。反向积分进行到一定时间,便返回起始值。从图5.2.2(b)中可看出对标准电压VR进行反向积分的时间T2正比于输入模拟电压
27、,输入模拟电压越大,反向积分回到起始值的时间T越长,有Vi(T2/T1)VR。 用标准时钟脉冲测定反向积分时间(如计数器),就可以得到对应于输入模拟电压的数字量,实现A/D转换。l 双积分式A/D转换器具有很强的抗工频干扰能力,转换精度高,但速度较慢。3逐次逼近式A/D转换器原理l 逐次逼近式A/D转换器电路结构如图5.2.3所示,其工作过程可与天平称重物类比,图中的电压比较器相当于天平,被测电压Ux相当于重物,基准电压Ur相当于电压法码。该方案具有各种规格的按8421编码的二进制电压法码Ur,根据Ux<Ur和Ux>Ur,比较器有不同的输出以打开或关闭逐次逼近寄存器的各位。输出从大
28、到小的基准电压法码,与被测电压Ux比较,并逐渐减小其差值,使之逼近平衡。当Ux=Ur时,比较器输出为零,相当于天平平衡,最后以数字显示的平衡值即为被测电压值。l 逐次逼近式A/D转换器转换速度快,转换精度较高,对N位A/D转换只需N个时钟脉冲即可完成,可用于测量微秒级的过渡过程的变化,是在计算机系统中采用最多的一种A/D转换方法。A/D转换器进行初始化程序中的参数ch表示所选择的通道号,程序如下: void AD_Init(unsigned char ch) rADCDLY=100; /ADC启动或间隔延时 rADCTSC=0; /选择ADC模式 rADCCON=(1<<14)|(
29、49<<6)|(ch<<3)|(0<<2)|(0<<1)|(0); /设置ADC控制寄存器 获取A/D的转换值程序中的参数ch表示所选择的通道号,程序如下:int Get_AD(unsigned char ch) int i; int val= 0; i f (ch>7) return 0; /通道不能大于7 for(i=0; i< 16; i+) /为转换准确,转换16次 rADCCON |=0x1; /启动A/D转换 rADCCON= rADCCON0xffc7 |(ch<<3); while (rADCCON0x1)
30、; /避免第一个标志出错 while(!(rADCCON0x8000); /避免第二个标志出错 val +=(rADCDAT00x03ff); Delay(10); return(val >> 4); /为转换准确,除以16取均值3、掌握四线式电阻式触摸屏的工作原理,能分析触摸点的X轴坐标和Y轴坐标是如何测量出来的。答:四线式电阻式:电阻触摸屏结构如图5.6.1(c)所示,最上层是一层外表面经过硬化处理、光滑防刮的塑料层,内表面也涂有一层导电层(ITO或镍金);基层采用一层玻璃或薄膜,内表面涂有叫作ITO的透明导电层;在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们
31、隔开绝缘。在每个工作面的两条边线上各涂一条银胶,称为该工作面的一对电极,一端加5V电压,一端加0V,在工作面的一个方向上形成均匀连续的平行电压分布。当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y(或Y)电极上反映出来,通过测量Y电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。同理,当给Y电极对施加电压,而X电极对不加电压时,通过测量X电极的电压,通过A/D转换便可得知触点的Y坐标。当手指或笔触摸屏幕时(如图5.6.1(c)所示),两个相互绝缘的导电层在触摸点处接触,因其中一面导电层(顶层)接通X轴方向的5V均匀电压场(如图5.
32、6.1(a)所示),使得检测层(底层)的电压由零变为非零,控制器检测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的X轴坐标为(原点在靠近接地点的那端): 同理也可以得出Y轴的坐标。4、了解 S3C2410的UART串行接口的工作原理,掌握S3C2410的UART发送和接收数据的程序设计。工作原理: S3C2410A的UART提供3个独立的异步串行I/O口(SIO),它们都可以运行于中断模式或DMA模式。UART可以产生中断请求或DMA请求,以便在CPU和UART之间传输数据。在使用系统时钟的情况下,UART可以支持最高230.4Kbps的传输速率。如果外部设备通过UE
33、XTCLK为UART提供时钟,那么UART的传输速率可以更高。每个UART通道包含两个用于接收和发送数据的16字节的FIFO缓冲寄存器。 S3C2410A的UART由波特率发生器、发送器、接收器以及控制单元组成。波特率发生器的时钟可以由PCLK或UEXTCLK提供。发送器和接收器包含16字节的FIFO缓冲寄存器和数据移位器。发送时,数据被写入FIFO,然后拷贝到发送移位器中,接下来数据通过发送数据引脚(TxDn)被发送。接收时,接收到的数据从接收数据引脚(RxDn)移入,然后从移位器拷贝到FIFO中。 发送数据:其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节
34、的代码如下: void Uart_SendByte(int data) if(whichUart= =0) if(data= =n) while(!(rUTRSTAT00x2); Delay(10); /延时,与终端速度有关 WrUTXH。(r); while(!(rUTRSTAT00x2); /等待,直到发送状态就绪 Delay(10); WrUTXH0(data); else if(whichUart= =1) if(data=n) while(!(rUTRSTAT10x2); Delay(10); /延时,与终端速度有关 rUTXH1=r; while(!(rUTRSTAT10x2);
35、/等待,直到发送状态就绪 Delay(10); rUTXH1data; else if(whichUart= =2) if (data= =n) while(!(rUTRSTAT20x2); Delay(10); /延时,与终端速度有关 rUTXH2r; while(!(rUTRSTAT20x2); /等待,直到发送状态就绪 Delay(10); rUTXH2data; 接收数据:如果没有接收到字符则返回0。使用串口接收一个字符的代码如下: char Uart_GetKey(void) if(whichUart0) if(rUTRSTAT00x1) /UARTO接收到数据 return RdU
36、RXH0(); else return 0; else if(whichUart= =1) if(rUTRSTAT10x1) /UART1接收到数据 return RdURXH1(); else return 0; else if(whichUart= =2) if(rUTRSTAT20x1) /UART2接收到数据 return RdURXH2(); else return 0; else return 0; 5、掌握键盘接口设计的方法。( 要求:掌握矩阵式键盘的扫描原理,能设计一个与S3C2410连接的4X4的矩阵式键盘的接口电路 ,并编写键盘扫描程序。)工作原理:矩阵键盘的按键按N行M列
37、排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。矩阵键盘可以减少与微控制器I/O接口的连线数,是常用的一种键盘结构形式。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。l 非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法3种。l 编码键盘主要用硬件(键盘和LED专用接口芯片)来实现键的扫描和识别,例如使用8279专用接口芯片。九、嵌入式软件及操作系统 1、正确理解进程、线程的概念,掌握进程及进程的主要特点,并能说明进程和程序有什么区别。 答:进程(process)是在描
38、述多道系统中并发活动过程引入的一个概念。进程和程序是两个既有联系又有区别的概念,两者不能混为一谈。例如:一个程序主要由代码和数据两部分内容组成。而进程是正在执行的程序,它是由程序和该程序的运行上下文两部分内容组成。程序是静态的,而进程是一个动态的,变化的。进程和程序之间并不是一一对应的。一个进程在运行的时候可以启动一个或多个程序,同一个程序也可能由多个进程同时执行。程序可以以文件的形式存放在硬盘或光盘上,作为一种软件资源长期保存。而进程则是一次执行过程,它是暂时的,是动态地产生和终止的。 l 总而言之,进程包含了正在运行的一个程序的所有状态信息,具有下述特点:进程具有动态性,进程是一个正在运行
39、的程序,程序的运行状态都在不断地变化,如PC寄存器的值、堆和栈的内容、通用寄存器存放数据和地址等。进程具有独立性,一个进程是一个独立的实体,占有计算机的系统资源,每个进程都有自己的运行上下文和内部状态,在它运行的时候独立于其他的进程。进程具有并发性,在系统中同时有多个进程存在,它们相互独立地运行。线程(thread)是一个比进程更小的能独立运行的基本单位。所谓的线程,就是进程当中的一条执行流程。l 线程的特点:在一个进程当中,或者说在一个资源平台上,可以同时存在多个线程。可以用线程来作为CPU的基本调度单位,使得各个线程之间可以并发执行。对于同一个进程当中的各个线程来说,运行在相同的资源平台上
40、,可以共享该进程的大部分资源(如内存地址空间、代码、数据、文件等),但也有一小部分资源是不能共享的,每个线程都必须拥有各自独立的一份(如CPU运行上下文(如PC寄存器、PSW寄存器、通用寄存器和栈指针等)和栈)。 任务:在一些嵌入式系统中,把能够独立运行的实体称为“任务”(task),并没有使用“进程”或“线程”这两个概念。任务到底是进程还是线程,在研究一个具体的嵌入式操作系统的时候,要注意加以区分。l 在任务的创建过程需要定义的主要参数有任务的优先级、栈空间的大小和函数名。任务具有独立的优先级和栈空间,CPU上下文一般也是存放在栈空间中。对于不同的任务,它们也能够访问相同的全局变量,在这些任
41、务之间,可以很方便地、直接地去使用共享的内存,而不需要经过系统内核来进行通信。l 通常认为,在嵌入式操作系统中“任务”就是线程,如在VxWorks、µC/OS-II、 Jbed、嵌入式Linux等嵌入式操作系统中。2、任务的实现(1)任务的状态:了解任务的状态是如何转换的,转换的过程。l 在多道程序系统中,任务是独立运行的实体,需要竞争系统资源,而任务所拥有的资源是在不断变化中的,使得任务的状态也在不断的变化。一般来说,任务具有运行(running)、就绪(ready)和阻塞(blocked)三种基本状态。l 任务在运行状态时占有CPU并在CPU上运行,在任何一个时刻,处于运行状态的
42、任务个数必须小于或等于CPU的数目。如果在一个系统中只有一个CPU的话,那么最多只能有一个任务处于运行状态。l 当一个任务已具备运行条件,但由于CPU正在运行其他的任务,暂时不能运行该任务时,称为就绪状态。不过,只要把CPU分给该任务,它就能够立刻执行。l 任务因为正在等待某种事件的发生而暂时不能运行称为阻塞状态,也叫等待状态(waiting)。此时,即使CPU已经空闲下来了,该任务也还是不能运行。l 如图8.3.4所示,在一定条件下,任务会在不同的状态之间来回转换,存在运行阻塞、运行就绪、就绪运行、阻塞就绪四种转换关系。(2)什么是任务控制块TCB,任务控制块包括哪些主要内容 。答:TCB(
43、Task Control Block,任务控制块)是在操作系统当中用来描述和管理一个任务的数据结构。通过对各个任务的TCB的操作来实现任务管理。利用TCB这个数据结构可以描述任务的基本情况,以及它的运行变化过程。可以把TCB看成是任务存在的唯一标志。当需要创建一个新任务的时候,就为它生成一个TCB,并初始化这个TCB的内容;当需要终止一个任务的时候,只要回收它的TCB即可。对任务的组织和管理可以通过对它们的TCB的组织和管理来实现。TCB主要包括任务的管理信息、CPU上下文信息、资源管理信息等内容。 (1)任务的管理信息任务的管理信息包括任务的标识ID、任务的状态、任务的优先级、任务的调度信息、任务的时间统计信息、各种队列指针等。2)CPU上下文信息CPU上下文信息包括通用寄存器、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 驾校场地硬化施工合同2025年
- 实习生人身安全合同
- 租房合同含转租协议
- 应收账款质押合同
- 公司中高层管理人员任职劳动合同补充协议
- 平房房屋租赁合同样本
- 安全设施设计专篇合同
- 足球教练员聘用合同书
- 房屋承租居间合同
- 小学教师聘用合同王撰
- 2025年上半年河南省西峡县部分事业单位招考易考易错模拟试题(共500题)试卷后附参考答案-1
- 深交所创业板注册制发行上市审核动态(2020-2022)
- 手术室护理组长竞聘
- 电力系统继电保护试题以及答案(二)
- 小学生防打架斗殴安全教育
- 网络运营代销合同范例
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 学生请假外出审批表
- 疼痛诊疗与康复
- T∕ACSC 01-2022 辅助生殖医学中心建设标准(高清最新版)
- 新版【处置卡图集】施工类各岗位应急处置卡(20页)
评论
0/150
提交评论