版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.复习提纲一、嵌入式系统及ARM(Advanced RISC machines)处理器概述嵌入式系统的概念IEEE定义和国内普遍认同的定义根据IEEE国际电气和电子工程师协会的定义:嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置;嵌入式系统是以应用为中心,以计算机技术为根底,软、硬件可裁剪,适应应用系统对功能、可靠性、本钱、体积、功耗等严格要求的专用计算机系统。嵌入式系统的组成硬件组成和软件组成硬件+软件硬件:由嵌入式微处理器、外围硬件设备组成软件:包括底层系统软件和用户应用软件二、CM4体系构造CM4内核三级流水线的三个阶段,如假设*嵌入式处理器有3级流水线,每级流水线所耗时
2、间均为为2ms,则执行25条指令需要消耗时间?三级流水线,分别是取指、译码和执行;为了兼容Thumb代码,读取PC会返回当前指令地址+4。偏移量总是4, 不管是执行16位指令还是32位指令, 这保证了Thumb和Thumb-2指令之间的一致性。ARM的完整拼写形式为Acorn RISC Machine,CM4处理器内部正在执行的指令的地址为0*08000100,此时读取PC的值,该值为 0*08000104 。CM4内核读取指令及访问数据的三套总线、CM4内核的两种运行模式、两种权限级别,上电复位后是什么模式什么级别三套总线:I-code总线 D-code总线 系统总线CM4处理器有两种模式:
3、线程模式、handler模式,还支持两种操作级别:特权级、非特权级用户级。复位后是特权级下的线程模式CM4内核的存放器组中,各个存放器的作用及各个存放器的访问权限级别、CM4的复位序列R0-R7 低组通用存放器;R8-R12高组通用存放器;R13堆栈存放器;(MSP,PSP)R14连接存放器;R15程序计数存放器;*PSR程序状态存放器;程序状态存放器(*PSR)程序状态存放器在其内部又被分为三个子状态存放器:应用程序状态存放器 APSR中断状态存放器 IPSR执行状态存放器 EPSR通过 MRS/MSR 指令,这 3 个 PSRs 即可以单独访问,也可以组合访问 2 个组合, 3 个组合都可
4、以。当使用三合一的方式访问时,应使用名字 *PSR或者 PSR。CM4程序设计Corte*-M4内核在执行指令时,只有一种状态,那就是Thumb状态。CM4寻址方式、常用指令: MOV AND ORR有1为1,为0为0 BIC清0 EOR异或,相异出1 SUB ADD TST TEQ CMP LDR加载 STR存储 LDRB8位无符号字加载 STRB8位无符号字存储 LDM多存放器加载 STM多存放器存储 B无条件跳转 BL B* BL* MRS读取特殊存放器的值到通用存放器 MSR将通用存放器的值写到特殊存放器伪指令:LDR指令的条件码如:NE不等于 EQ等于 LT小于 GT大于等,后缀S!
5、,什么样的指令会影响APSR存放器的标志位S后缀:指令中使用S后缀,指令执行后状态存放器的条件标志位将被刷新;不使用S后缀时,指令执行后状态存放器的条件标志位不会发生变化。如果指令地址表达式中不含!后缀,则基址存放器中的地址不会发生变化,指令中含有则变化N E C V S伪操作:伪操作主要有符号定义伪操作、数据定义伪操作、汇编控制伪操作及其杂项伪操作等DCB字节、DCD字、AREA用于定义一个代码段或数据段、END用于指示源程序完毕、EQU用于定义字符名称、IMPORTIMPORT用于通知编译器当前符号不在本文件中、E*PORTE*PORT或GLOBAL用于声明符号可以被其他文件引用。ATPC
6、S规则中存放器的使用、参数传递、子程序返回的规则子程序间通过存放器R0、R1、R2、 R3来传递参数。如果参数多于4个,则多出的局部用数据栈传递。被调用的子程序在返回前无需恢复寄存器R0-R3的内容。在子程序中,使用存放器R4-R11来保存局部变量如果在子程序中使用到了存放器R4-R11中的*些存放器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些存放器的值;对于子程序中没有用到的存放器则不必进展这些操作。在Thumb程序中,通常只能使用存放器R4-R7来保存局部变量。存放器R13用作数据栈指针,记作sp。在子程序中存放器R13不能用作其他用途。存放器sp在进入子程序时的值和退出子程
7、序时的值必须相等。连接存放器R14lr。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,存放器R14则可以用作其他用途。存放器R15是程序计数器,记作pc。它不能用作其他用途。ATPCS规定堆栈为FD类型,即满递减堆栈。并且堆栈的操作是8字节对齐。t子程序结果返回规则1.结果为一个32位的整数时,可以通过存放器R0返回。2.结果为一个64位整数时,可以通过R0和R1返回,依此类推。3.结果为一个浮点数时,可以通过浮点运算部件的存放器f0,d0或者s0来返回。4.结果为一个复合的浮点数时,可以通过存放器f0-fN或者d0-dN来返回。5.对于位数更多的结果,需要通过调用内存来传递.C程
8、序如何调用汇编程序,汇编程序如何调用C程序在汇编程序中使用E*PORT 伪指令声明本子程序,使其它程序可以调用此子程序。在C 语言程序中使用e*tern 关键字声明外部函数(声明要调用的汇编子程序),即可调用此汇编子程序。在汇编程序中使用IMPORT 伪指令声明将要调用的C 程序函数.在调用C 程序时,要正确设置入口参数,然后使用BL 调用.四、STM32F439 GPIO重点掌握GPIO相关存放器的定义方法及各个存放器的主要功能能够编程操控*一组GPIO #define GPIOF_MODER (*(volatile unsigned int *)0*40021400)#define GPI
9、OF_OTYPER (*(volatile unsigned int *)0*40021404)#define GPIOF_OSPEEDR (*(volatile unsigned int *)0*40021408)#define GPIOF_PUPDR (*(volatile unsigned int *)0*4002140C)#define GPIOF_ODR (*(volatile unsigned int *)0*40021414)#define RCC_AHB1ENR(*(volatile unsigned int *)0*40023830)void Delay(unsigned i
10、nt nCount) for(; nCount != 0; nCount-);void Port_init(void)RCC_AHB1ENR |= 0*20;GPIOF_MODER &= (0*ff14);GPIOF_MODER |= (0*5514);GPIOF_OTYPER &= (0*f7);GPIOF_OSPEEDR&= (0*ff14);GPIOF_OSPEEDR |= (0*aa14);GPIOF_PUPDR &= (0*ff14);int led(void) Port_init(); while (1) GPIOF_ODR |= (0*f7); /*LED*/ Delay(0*F
11、FFFF); GPIOF_ODR &= (0*87); /*LED*/ Delay(0*FFFFF); GPIOF_ODR |= (0*f7); /*LED*/ Delay(0*FFFFF); GPIOF_ODR &= (0*47); /*LED*/ Delay(0*FFFFF); GPIOF_ODR |= (0*f7); /*LED*/ Delay(0*FFFFF); GPIOF_ODR &= (0*27); /*LED*/ Delay(0*FFFFF); GPIOF_ODR |= (0*f7); /*LED*/ Delay(0*FFFFF); GPIOF_ODR &= (0*17); /*
12、LED*/ Delay(0*FFFFF);/ 五、STM32F439 时钟树追根溯源,STM32F439的时钟源有哪4个?HSI 、HSE 、LSI 、LSESTM32F439时钟树中,系统时钟SYSCLK的来源有三个,分别是:HSI、HSE和PLLCLK。系统时钟SYSCLK的来源有哪些?HSI 、HSE通过设置哪个存放器能对系统时钟SYSCLK的来源进展选择?RCC_CFGR主锁相环PLL时钟是否就绪通过哪个存放器判断?RCC_CR要把GPIOF的时钟使能,需要设置哪个存放器?RCC_AHB1ENR各个不同总线上时钟的分频参数通过哪个存放器设置RCC_PLLCFGR六、STM32F439的
13、串口异步串行通信时的数据格式 起始位 数据位8位或9位 奇偶校验位第9位 停顿位1,1.5,2位 波特率设置STM32F439的USART1是否能够发送数据或是否收到数据可通过哪个存放器判断?USART_SR发送数据时需要把数据写入哪个存放器?USART_DR收到的数据通过读取哪个存放器得知?USART_SR重点掌握串口初始化操作,初始化操作中相关存放器的设置。七、CM4异常处理、NVIC、E*TI哪些异常的优先级不能编程配置?复位、NMI、硬fault当CM4处理器的一个异常或中断被触发,硬件自动完成哪些工作?所有异常都在处理模式中操作。出现异常时,自动将处理器状态保存到堆栈中,并在中断效劳
14、程序ISR完毕时自动从堆栈中恢复。在状态保存的同时取出向量快速地进入中断。异常进入当CM4处理器的一个异常或中断被触发,硬件自动完成如工作:1CM4中断控制器根据当前状态和中断的抢占级别来确定是响应该中断,还是先挂起,并更新相应的存放器状态。2通过Dbus保存处理器状态,将下面的8个存放器按顺序保存入SPMSP或PSP指向的系统堆栈。3CM4通过Ibus从异常向量表取得对应的中断向量,并开场读取ISR指令,这一步几乎与压栈同时进展。4CM4处理器更新到handler模式,SP切换到MSP,更新IPSR为新响应的异常编号,更新PC,更新LR存放器为E*C_RETURN。NVIC的存放器ICTR(
15、用于显示NVIC支持的中断线数目)、NVIC_ISERn设置中断使能、NVIC_ICERn中断使能去除、NVIC_ISPRn中断挂起设置存放器、NVIC_ICPRn中断挂起去除存放器、NVIC_IPRn中断优先级存放器、NVIC_AIRCR的主要用于什么设置?E*TI屏蔽*个中断线的中断请求需要设置哪个存放器?E*TI_IMR中断线触发中断的方式上升沿、下降沿需要设置的存放器是?(E*TI_RTSR、E*YI_FTSR)定时器部件通用定时器可以向上递增计数、向下递减计数、向上向下双向中心对齐计数模式。独立看门狗的时钟来源是?LSI构造框图与工作原理?在键值存放器IWDG_KR)中写入0*CCC
16、C,开场启用独立看门狗。此时计数器开场从其复位值0*FFF递减,当计数器值计数到尾值0*000时会产生一个复位信号IWDG_RESET)。无论何时,只要在键值存放器IWDG_KR中写入0*AAAA通常说的喂狗, 自动重装载存放器IWDG_RLR的值就会重新加载到计数器,从而防止看门狗复位。如果程序异常,就无法正常喂狗,从而系统复位。超时时间如何计算?如何喂狗、取消写保护、启动看门狗?Tout=(4*2prer)*(rlr+1)/32; /单位为毫秒Tout为看门狗溢出时间单位为msprer为看门狗时钟预分频值(IWDG_PR PR2:0的值:0-7)4*2prer最大不超过256 rlr为看门
17、狗的重装载值IWDG_RLR的值低速内部时钟LSI=32 KHz M IWDG_KR=0*AAAA;/喂狗IWDG_KR =0*5555;IWDG_RLR=0*5555;/取消写保护IWDG_KR =0*CCCC;/启动看门狗STM32F439的定时器有哪几种?高级定时器、通用定时器、根本定时器通用定时器TIM3、TIM14分别由哪些局部组成?时钟选择与触发控制电路时基单元输入捕获通道输出比拟通道选择内部时钟源时,溢出时间如何计算?Tout= (ARR+1)*(PSC+1)/Fck_psc;其中:Fck_psc :TIM3的输入时钟频率单位为MhzTout:TIM3溢出时间单位为usARR:自动重载值PSC:预分频器值TIM14输出PWM波形的原理定时器TIM14工作在向上计数 PWM模式,且当T=CCR1 时输出1。则就可以得到如上的 PW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西总代合同协议
- 汽修学徒合同范本
- 汽车代销合同范本
- 汽车居间协议合同
- 沙石承包合同范本
- 没调解赔偿协议书
- 河北供电合同范本
- 河道施工合同范本
- 油漆代购合同范本
- 厂院守卫协议书
- 上海财经大学2026年辅导员及其他非教学科研岗位人员招聘备考题库带答案详解
- 2026湖北恩施州建始县教育局所属事业单位专项招聘高中教师28人备考笔试试题及答案解析
- 心肺康复课件
- 2025人民法院出版社社会招聘8人(公共基础知识)测试题附答案解析
- 上海市奉贤区2026届高三一模英语试题
- 设施设备综合安全管理制度以及安全设施、设备维护、保养和检修、维修制
- 2025年山东省夏季普通高中学业水平合格考试物理试题(解析版)
- 胸痛中心联合例会与质控分析会-ACS患者如何更好的管理时间
- 北京师范大学珠海校区
- 竖窑控制系统手册
- 煤矿投资可行性研究分析报告
评论
0/150
提交评论