欢迎来到天天文库
浏览记录
ID:14854873
大小:235.50 KB
页数:11页
时间:2018-07-30
《嵌入式系统复习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式系统复习笔记-----增哥注意点:本复习指导基本已包括所有的程序设计以及分析题,每个考点后面均有例题,例题前的所有知识点我已经把他写的尽量通俗易懂,把程序分析的方法也写明,希望大家用几个小时时间来看看,通过考试绝对没有问题!PS:本材料后面所写的参考页码均是以新版书为标准,用旧版书的同学麻烦自己写上旧版书的页码,知识点都是一样的!!!本人能力有限,如有错误,请见谅!!1、状态寄存器CPSR各bit的意义:各位同学只需了解控制位bit0~bit7Mode[4:0]是见表1P29Mode[4:0]100001000110010
2、10011101111101111111模式用户FIQ中断IRQ中断管理中止未定义系统T:为状态:0表示ARM状态,1表示Thumb状态I、F表示IRQ中断FIQ中断的使能。1时中断禁止,0时中断使能(允许该中断)。2、三个特殊用途寄存器SP(R13)LR(R14)PC(R15)R13(SP):堆栈指针,保存当前处理器模式的堆栈栈顶。R14(LR):链接R,保存子程序(含发生异常)的返回地址。R15(PC):程序计数器,保存下一条指令的地址。注意点:PC指针永远指向取值(什么意思?见第3点流水线)3、ARM7的流水线采用三级流水
3、线,即取指→译码→执行例:假设一共有三条指令:0x4000ADDPC,PC,#4;其中第二个PC指针的值为0x4008,将第二个PC+4=0x400C赋给第一个PC指针(回答上述PC指针永远指向取值的问题)0x4004SUB0x4008CMP那么CPU实际执行为:周期取指译码执行T1ADDT2SUBADDT3CMPSUBADD解释:当第一CPU周期T1时先取址,取第一个指令的地址。当第二CPU周期T2时取第二个指令的地址,然后译码,译的是第一个指令的码当第三CPU周期T3时取第三个指令的地址,译第二个指令的码,执行第一个指令所以
4、:PC值=当前程序执行位置+8字节(如果CPSR中的T位为0,则+8;如果T位为1,则+4)114、PLL频率的计算(P133)VPB时钟(pclk)处理器时钟(cclk)晶振或外部时钟源FoscVPB分频器PLL符号说明晶体振荡器的输出频率,即PLL的输入频率PLL电流控制振荡器的输出频率PLL最终的输出频率(即CPU内核需要的频率)经过VPB分频器后的供给外部设备的输出频率值MPLLCFG寄存器中的MSEL位的倍增器值+1P134PPLLCFG寄存器中的PSEL位的分频器值P134PLLCFG寄存器的意义:一个8位的PLL配
5、置寄存器PLLCFG[4:0]为MSEL[4:0],存放的是PLL倍频器值(即M值);例:MSEL[4:0]=00101则表示5,M=5+1=6PLLCFG[6:5]为PSEL[1:0],存放的是PLL的分频器值(即P值;)例:PSEL[1:0]=00则表示P=101则表示P=210则表示P=411则表示P=8PLL频率公式:注意点:的范围为156~320MHZ;例题:晶振的频率为10MHZ,需要输出的系统时钟为60MHZ,请问如何配置?答:=10MHZ,所以,所以M-1=5,所以MSEL[4:0]=0b00101;根据的范围可
6、知,所以,P只能取2,即PSEL[1:0]=0b01;所以根据上述得:PLLCFG=(1<<5)
7、(5);这句话的意思是将2(也就是0b01)向左移5位,也就是将PESL赋值了,然后与5逻辑或,也就是将0b00101赋值给MSEL了。则系统时钟设置为:11#defineFosc11059200;晶振10MHz;#defineFcclk(Fosc*6);系统频率为Fosc的整数M倍#defineFcco(Fcclk*4);cco频率为Fcclk的2P倍#defineFpclk(Fcclk/4)*1;VPB分频,只能为Fcclk/4
8、的1、2、4倍5、引脚连接模块的配置注意点:请各位同学注意LPC2214的引脚描述图P97【1】引脚选择寄存器共3个,每个32位,PINSEL0、PINSEL1、PINSEL2其中每两位控制一个引脚(如何理解?)解释:PINSEL0[1:0]表示该寄存器1位、0位控制P0.0口其中00表示GPIO的功能;01表示TxD(UART0)的功能;10表示PWM1的功能;11保留详细见表P173-P174所以PINSEL0[31:0]控制P0.0~P0.15PINSEL1[31:0]控制P0.16~P0.31【2】例题:将P0.10配置
9、成GPIO,P0.11配置成CTS(UART1),如何配置?解题分析思路:①首先确定是PINSEL0还是PINSEL1来控制?这里是PINSEL0控制;而且P0.10是PINSEL0[21:20]控制,P0.11是PINSEL0[23:22]控制;②再根据P17
此文档下载收益归作者所有