嵌入式微处理器体系结构复习资料_第1页
嵌入式微处理器体系结构复习资料_第2页
嵌入式微处理器体系结构复习资料_第3页
嵌入式微处理器体系结构复习资料_第4页
嵌入式微处理器体系结构复习资料_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式微处理器体系结构嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构,指令系统可以选用精简指令系统RISC和复杂指令集系统CISC。冯·诺依曼体系结构和哈佛体系结构;(1)冯·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是CPU内部指示指令和数据的存储位置的寄存器。(2)哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。提高执行速度,提高数据的吞吐率,具有较高的执行效率。2、CISC和RISC类别 CISC RISC指令系统 指令数量很多 较少,通常少于100执行时间 有些指令执行时间很长,如整块的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器 没有较长执行时间的指令编码长度 编码长度可变,1-15字节 编码长度固定,通常为4个字节寻址方式 寻址方式多样 简单寻址操作 可以对存储器和寄存器只能对寄存器对行算术和逻辑操作,进行算术和逻辑操作Load/Store体系结构编译 难以用优化编译器生成高效的目标代码程序 采用优化编译技术,生成高效的目标代码程序二、ARM状态各模式下的寄存器

1、所有的37个寄存器,分成两大类:(1)31个通用32位寄存器;(2)6个状态寄存器。2、R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。3、寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器4、寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度5、寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。处理器工作模式ARM处理器有7种工作模式;●usr(用户模式):ARM处理器正常程序执行模式。●fiq(快速中断模式):用于高速数据传输或通道处理●irq(外部中断模式):用于通用的中断处理●svc(管理模式):操作系统使用的保护模式●abt(数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。●sys(系统模式):运行具有特权的操作系统任务。●und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes);其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。2、除用户模式外,其它模式均为特权模式。ARM内部全部系统资源和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。3、此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。ARM异常处理1、当异常产生时,ARM核:(1)拷贝CPSR到SPSR_<mode>(2)设置适当的CPSR位:a.改变处理器状态进入ARM态b.改变处理器模式进入相应的异常模式c.设置中断禁止位禁止相应中断(如需要)(3)保存返回地址到LR_<mode>(4)设置PC为相应的异常向量地址2、返回时,异常处理程序需要:(1)从SPSR_<mode>恢复CPSR(2)从LR_<mode>恢复PC(3)注意:这些操作只能在ARM态执行.ARM指令集ARM寻址方式:掌握ARM微处理器9种寻址方式的特点。(1).寄存器寻址操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编号,寄存器的内容是操作数,指令执行时直接取出寄存器值操作。例如指令:MOVR1,R2;R1←R2SUBR0,R1,R2;R0←R1-R2(2).立即寻址在立即寻址指令中数据就包含在指令当中,立即寻址指令的操作码字段后面的地址码部分就是操作数本身,取出指令也就取出了可以立即使用的操作数(也称为立即数)。立即数要以“#”为前缀,表示16进制数值时以“0x”表示。例如指令:ADDR0,R0,#1;R0←R0+1MOVR0,#0xff00;R0←0xff00(3).寄存器移位寻址IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,PC指针跳入到中断服务子程序,进行中断处理。(4)多个中断请求处理。在ARM系统中,可以存在多个中断请求源,比如串口中断、AD中断、外部中断、定时器中断及DMA中断等,所以可能出现多个中断源同时请求中断的情况。为了更好地区分各个中断源,通常为这些中断定义不同的优先级别,并为每一个中断设置一个中断标志位。当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别哪一个中断发生了,进而调用相应的函数进行中断处理。(5)中断返回,恢复现场。当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,继续执行被中断的程序。了解S3C2410的DMA控制器的基本工作原理。DMA(DirectMemoryAcess,直接存储器存取)方式是指存储器与外设在DMA控制器的控制下,直接传送数据而不通过CPU,传输速率主要取决于存储器存取速度。在DMA传输过程中,DMA控制器负责管理整个操作,并且无须CPU介入,从而大大提高了CPU的工作效率。DMA方式为高速I/O设备和存储器之间的批量数据交换提供了直接的传输通道。由于I/O设备直接同内存发生成块的数据交换,可以提高I/O效率。现在大部分计算机系统均采用DMA技术。许多输入/输出设备的控制器都支持DMA方式。采用DMA方式进行数据传输的具体过程如下。外设向DMA控制器发出DMA请求。DMA控制器向CPU发出总线请求信号。(3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。(4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。(5)DMA控制器向外部设备发出DMA请求回答信号。(6)进行DMA传送。(7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。CPU在接收到中断信号后,转人中断处理程序进行后续处理。(8)中断处理结束后,CPU返回到被中断的程序继续执行。CPU重新获得总线控制权。每个DMA控制器可以处理以下4种情况:(1)源和目的都在系统总线上;(2)源在系统总线上,目的在外围总线上;(3)源在外围总线上,目的在系统总线上;(4)源和目的都在外围总线上。5、嵌入式存储系统的特点。(1)高速缓冲存储器原理及特点。高速缓冲存储器(cache)用来提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。cache能够减少内存平均访问时间。Cache可以分为统一cache和独立的数据/程序cache。存储器管理单元MMU主要完成的功能。(1)虚拟存储空间到物理存储空间的映射。采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。(2)存储器访问权限的控制。(3)设置虚拟存储空间的缓冲的特性。嵌入式系统I/O设备接口1、掌握S3C2410的I/O接口的编程要求:掌握I/O口编程,能编写实现LED1、LED2、LED3、LED4轮流闪烁的程序。实现LED1和LED2轮流闪烁的程序代码voidMain(void){intflag,i;TargetInit();//进行硬件初始化操作,包括对I/O口的初始化操作for(;;){if(flag==0){for(i=0;i<1000000;i++);//延时rGPGCON=rGPGCON&0xfff0ffff|0x00050000;//配置第8、第//9位为输出引脚rGPGDAT=rGPGDAT&0xeff|0x200;//第8位输出为低电平//第9位输出高电平for(i=0;i<10000000;i++);//延时flag=1;}else{for(i=0;i<1000000;i++);//延时rGPGCON=rGPGCON&0xfff0ffff(0x00050000;//配置第8、//第9位为输出引脚rGPGDAT=rGPGDAT&Oxdff|0x100;//第8位输出为高电平//第9位输出低电平for(i=0;i<1000000;i++);//延时flag=0;}}}2、掌握S3C2410的A/D转换器接口的原理要求:掌握A/D转换器接口的原理,能编写A/D转换器初始化函数和获取A/D的转换值的程序。(1)A/D转换器(模/数转换器)完成电模拟量到数字量的转换。实现A/D转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法等。(2).对A/D转换器进行初始化程序中的参数ch表示所选择的通道号,程序如下:voidAD_Init(unsignedcharch){rADCDLY=100;//ADC启动或间隔延时rADCTSC=0;//选择ADC模式rADCCON=(1<<14)|(49<<6)|(ch<<3)|(0<<2)|(0<<1)|(0);//使能前置分频器,设置前置分频值为49,正常模式,禁止读操作启动,不启动。}(3).获取A/D的转换值程序中的参数ch表示所选择的通道号,程序如下:intGet_AD(unsignedcharch){inti;intval=0;if(ch>7)return0;//通道不能大于7for(i=0;i<16;i++){//为转换准确,转换16次rADCCON|=0x1;//启动A/D转换rADCCON=rADCCON&0xffc7|(ch<<3);//设置通道号while(rADCCON&0x1);//等待启动位清零while(!(rADCCON&0x8000));//等待转换结束val+=(rADCDAT0&0x03ff);Delay(10);}return(val>>4);//为转换准确,除以16取均值}掌握四线式电阻式触摸屏的工作原理,能分析触摸点的X轴坐标和Y轴坐标是如何测量出来的。触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红外线式和表面声波式5类。在嵌入式系统中常用的是电阻式触摸屏。四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线:X+、X-,Y+、Y-分别连到触摸屏的X电极对和Y电极对上。四线电阻屏触摸寿命小于100万次。当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。同理,当给Y电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y坐标。四线电阻触摸屏的分辨方法是将四线电阻触摸后变化的模拟量转换成数字量,经过软件计算得出不同的屏幕上不同的X,Y坐标。此工作主要是靠S3C2440A芯片中的模数转换器来实现的。了解S3C2410的UART串行接口的工作原理,掌握S3C2410的UART发送和接收数据的程序设计。UART(通用异步收发器)主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、发送部分和接收部分组成,采用异步串行通信方式,采用RS-232C9芯接插件(DB-9)连接,是广泛使用的串行数据传输方式.本程序实例实现从UART0接收数据,然后分别从UART0和UART1发送出去。其功能可以把键盘敲击的字符通过PC机的串口发送给ARM系统上的UART0,ARM系统上的UART0接收到字符后,再通过UART0和UART1送给PC机,这样就完成了串口间的收发数据。要实现以上数据的收发功能,需要编写的主要代码如下。(1)发送数据其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节的代码如下:voidUart_SendByte(intdata){if(whichUart==0){if(data==‘\n’){while(!(rUTRSTAT0&0x2));Delay(10);//延时,与终端速度有关WrUTXH(‘\r’);}while(!(rUTRSTAT0&0x2));//等待,直到发送状态就绪Delay(10);WrUTXH0(data);}elseif(whichUart==1){if(data==‘\n’){while(!(rUTRSTAT1&0x2));Delay(10);//延时,与终端速度有关rUTXH1=‘\r’;}while(!(rUTRSTAT1&0x2));//等待,直到发送状态就绪Delay(10);rUTXH1=data;}elseif(whichUart==2){if(data==‘\n’){while(!(rUTRSTAT2&0x2));Delay(10);//延时,与终端速度有关rUTXH2=‘\r’;}while(!(rUTRSTAT2&0x2));//等待,直到发送状态就绪Delay(10);rUTXH2=data;}}(2).接收数据如果没有接收到字符则返回0。使用串口接收一个字符的代码如下:charUart_GetKey(void){if(whichUart==0){if(rUTRSTAT0&0x1)//UARTO接收到数据returnRdURXH0();else return0;}elseif(whichUart==1){if(rUTRSTAT1&0x1)//UART1接收到数据returnRdURXH1();elsereturn0;}elseif(whichUart==2){if(rUTRSTAT2&0x1)//UART2接收到数据returnRdURXH2();elsereturn0;}elsereturn0;}5、掌握键盘接口设计的方法。要求:掌握矩阵式键盘的扫描原理,能设计一个与S3C2410连接的4X4的矩阵式键盘的接口电路,并编写键盘扫描程序。矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。矩阵键盘可以减少与微控制器I/O接口的连线数,是常用的一种键盘结构形式。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。一个用I/O口实现的键盘接口,为了识别键盘上的闭合键,常采用行扫描法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如果列值中有某位为低电平,则表明行列交点处的键被按下;否则扫描下一行,直到扫描完全部的行线为止。根据行扫描法的原理,识别矩阵键盘按键闭合分两步进行:a.识别键盘哪一行的键被按下:让所有行线均为低电平,检查各列线电平是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。b.如果某列有键被按下,识别键盘哪一行的键被按下:逐行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。1.键盘控制初始化程序voidkeyboard_test(void){UINT8TucChar;UINT8TszBuf[40];uart_printf(“\nKeyboardTestExample\n”);uart_printf(“Pressanykeytoexit…\n”);Keyboard_init();g_nKeyPress=0xFE;While(1){f_nKeyPress=0;while(f_nKeyPress==0){if(uart_tetkey())//PressanykeyfromUART0toexitreturn;elseif(ucChar==7)//orpress5*4Key-7toexitreturn;elseif(g_nKeyPress!=0xFE)//orSB1202/SB1203toexitreturn;}iic_read_keybd(0x70,0x1,&ucChar);//getdatafromZLG7290If(ucChar!=0){ucChar-key_set(ucChar);//keymapforEdukitIIif(ucChar<16)sprintf(&szBuf,”presskey%d”,ucChar);elseif(ucChar<255)sprintf(&szBuf,”presskey%d”,ucChar);if(ucChar==0xFF)sprintf(&szBuf,”presskey%c”,ucChar);if(ucChar==0xFF)sprintf(&szBuf,”presskeyFUN”);#ifdefBOARDTESTprint_lcd(200,170,0x1c,&szBuf);#endifuart_printf(szBuf);uart_printf(“\n”)}}uart_printf(“end.\n”);}嵌入式软件及操作系统正确理解进程、线程的概念,掌握进程及进程的主要特点,并能说明进程和程序有什么区别。(1)进程(process)是在描述多道系统中并发活动过程引入的一个概念。进程和程序是两个既有联系又有区别的概念,两者不能混为一谈。而进程则是一次执行过程,它是暂时的,是动态地产生和终止的。一个进程通常包含有以下几个方面的内容:①相应的程序;②CPU上下文;③一组系统资源。进程的特点:①进程具有动态性;②进程具有独立性;③进程具有并发性。(2)线程(thread)是一个比进程更小的能独立运行的基本单位。所谓的线程,就是进程当中的一条执行流程。包括运行上下文、内存地址空间、打开的文件等。可以用线程来作为CPU的基本调度单位,使得各个线程之间可以并发执行。对于同一个进程当中的各个线程来说,运行在相同的资源平台上,可以共享该进程的大部分资源,但也有一小部分资源是不能共享的,每个线程都必须拥有各自独立的一份。任务的实现(1).任务的层次结构;(2).任务的创建与终止;(3).任务的状态;(4).任务控制块;(5).任务切换;(6).任务队列.任务的状态:了解任务的状态是如何转换的,转换的过程。一般来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论