嵌入式系统原理复习题_第1页
嵌入式系统原理复习题_第2页
嵌入式系统原理复习题_第3页
嵌入式系统原理复习题_第4页
嵌入式系统原理复习题_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、复习提纲、嵌入式系统及 ARM(Advaneed RISC machines)处理器概述1. 嵌入式系统的概念(IEEE定义和国内普遍认同的定义)根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”;嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪, 适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用 计算机系统。2. 嵌入式系统的组成(硬件组成和软件组成) 硬件+ 软件硬件:由嵌入式微处理器、外围硬件设备组成 软件:包括底层系统软件和用户应用软件应用软件E嵌入式操作系统硬件设备嵌入式处理器外围设备、CM4体系结构1.

2、 CM4内核三级流水线的三个阶段,如假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为2ms,则执行25条指令需要耗费时间?三级流水线,分别是取指、译码和执行为了兼容Thumb代码,读取PC会返回当前指令地址 +4。偏移量总是4,不管是 执行16位指令还是32位指令, 这保证了 Thumb和Thumb-2指 令之间的一致性。ARM的完整拼写形式为Acorn RISC Machine,CM4处理器内部正在执行的指令的地址为 0x08000100,此时读取 PC的值,该值为 0x08000104。2. CM4内核读取指令及访问数据的三套总线、 CM4内核的两种运行模式、两 种权限级别,上电复

3、位后是什么模式什么级别三套总线:I-code总线D-code总线系统总线CM4处理器有两种模式:线程模式、handler模式,还支持两种操作级 别:特权级、非特权级(用户级)。复位后是特权级下的线程模式3. CM4内核的寄存器组中,各个寄存器的作用及各个寄存器的访问权限级 别、CM4的复位序列R0-R7低组通用寄存器;R8-R12高组通用寄存器;R13堆栈寄存器; (MSP,PSP)R14连接寄存器;R15程序计数寄存器;xPSR程序状态寄存器;程序状态寄存器(xPSR) 程序状态寄存器在其内部又被分为三个子状态寄存器: 应用程序状态寄存器(APSR 中断状态寄存器(IPSR)执行状态寄存器(

4、EPSR)通过MRS/MSF指令,这3个PSRs即可以单独访问,也可以组合访问 (2个组合,3个组合都可以)。当使用三合一的方式访问时,应使用名字“ xPSR”或者“ PSR'CM4程序设计Cortex-M4内核在执行指令时,只有一种状态,那就是Thumb犬态。1. CM4寻址方式、常用指令: MOV ANDORR(有1为1,为0为0)BIC (清 0)EOR(异或,相异出 1) SUB ADD TST TEQ CMPLDR(加载STR (存储LDRB( 8位无符号字加载)STRB( 8位无符号字存储)LDM (多寄存器加载STM (多寄存器存储)B (无条件跳转)BL BX BLXM

5、RS(读取特殊寄存器的值到通用寄存器) MSR(将通用寄存器的值写到特殊寄存器)伪指令:LDR2. 指令的条件码如:NE(不等于)EQ (等于)LT (小于)GT (大于)等, 后缀“ S”“!”,什么样的指令会影响 APSR寄存器的标志位“S”后缀:指令中使用“ S”后缀,指令执行后状态寄存器的条件标志 位将被刷新;不使用“ S”后缀时,指令执行后状态寄存器的条件标志 位不会发生变化。如果指令地址表达式中不含“!”后缀,则基址寄存器中的地址不会发 生变化,指令中含有则变化N E C V S3. 伪操作:伪操作主要有符号定义伪操作、数据定义伪操作、汇编控制伪操作及其杂项伪操作等DCB(字节)、

6、DCD(字)、AREA(用于定义一个代码段或数据段)、END (用于指示源程序结束)、EQU(用于定义字符名称)、IMPORT( IMPORT用 于通知编译器当前符号不在本文件中 )、EXPORT EXPORT或GLOBAL用 于声明符号可以被其他文件引用。)4. ATPCS规则中寄存器的使用、参数传递、子程序返回的规则子程序间通过寄存器 R0 R1、R2 R3来传递参数。如果参数多于4个,则多出的部分用数据栈传递。被调用的子程序在返回前无需恢复寄 存器R0-R3的内容。在子程序中,使用寄存器 R4-R11来保存局部变量如果在子程序中使 用到了寄存器R4-R11中的某些寄存器,子程序进入时必须

7、保存这些寄 存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到 的寄存器则不必进行这些操作。在Thumb程序中,通常只能使用寄存器R4-R7来保存局部变量。寄存器R13用作数据栈指针,记作sp。在子程序中寄存器 R13不能用 作其他用途。寄存器sp在进入子程序时的值和退出子程序时的值必须 相等。连接寄存器R14(lr )。它用于保存子程序的返回地址。如果在子程序 中保存了返回地址,寄存器R14则可以用作其他用途。寄存器R15是程序计数器,记作pc。它不能用作其他用途。ATPCS规定堆栈为FD类型,即满递减堆栈。并且堆栈的操作是8字节对齐。t子程序结果返回规则1. 结果为一个32位的

8、整数时,可以通过寄存器R0返回。2. 结果为一个64位整数时,可以通过R0和R1返回,依此类推。3. 结果为一个浮点数时,可以通过浮点运算部件的寄存器 f0,d0或者s0 来返回。4. 结果为一个复合的浮点数时,可以通过寄存器f0-fN或者d0-dN来返 回。5. 对于位数更多的结果,需要通过调用内存来传递5. C程序如何调用汇编程序,汇编程序如何调用 C程序在汇编程序中使用 EXPORT伪指令声明本子程序,使其它程序可以调 用此子程序。在 C语言程序中使用extern关键字声明外部函数(声明 要调用的汇编子程序),即可调用此汇编子程序。在汇编程序中使用IMPORT伪指令声明将要调用的C程序函

9、数. 在调用C程序时,要正确设置入口参数,然后使用BL调用.四、STM32F439 GPIO1. 重点掌握GPIO相关寄存器的定义方法及各个寄存器的主要功能2. 能够编程操控某一组 GPIO#defi ne GPIOF_MODER (*(volatile un sig ned int *)0x40021400)#defi ne GPIOF_OTYPER(*(volatile un sig ned int *)0x40021404)#defi ne GPIOF_OSPEEDR (*(volatile un sig ned int *)0x40021408)#defi ne GPIOF_PUPDR

10、 (*(volatile un sig ned int *)0x4002140C)#defi ne GPIOF_ODR(*(volatile un sig ned int *)0x40021414)#defi ne RCC_AHB1ENR(*(volatile un sig ned int *)0x40023830)void Delay (un sig ned int nCount)for(; nCount != 0; nCount-);void Port_i nit(void)RCC_AHB1ENR |= 0x20;GPIOF_MODER &= (0xff<<14);GP

11、IOF_MODER |= (0x55<<14);GPIOF_OTYPER &= (0xf<<7);GPIOF_OSPEEDR &= (0xff<<14);GPIOF_OSPEEDR |= (0xaa<<14); GPIOF_PUPDR &= (0xff<<14);int led(void)Port_i ni t();while (1)GPIOF_ODR |= (0xf<<7); /*??e LEDy? */Delay(0xFFFFF);GPIOF_ODR &= (0x8<<7);

12、/* y?ad_ED? */Delay(0xFFFFF);GPIOF_ODR |= (0xf<<7);/* ?" ?e LEDp? */Delay(0xFFFFF);GPIOF_ODR &= (0x4<<7);/* y?ad_ED? */Delay(OxFFFFF);GPIOF_ODR |= (0xf<<7);/* ?" ?e LEDp? */Delay(OxFFFFF);GPIOF_ODR &= (0x2<<7);/*?ad_ED? */Delay(OxFFFFF);GPIOF_ODR |= (0xf<

13、<7);/* ?" ?e LEDp? */Delay(OxFFFFF);GPIOF_ODR &= (0x1<<7);/*?ad_ED? */Delay(OxFFFFF);/五、STM32F439时钟树1 追根溯源,STM32F43的时钟源有哪4个?HSI、HSE、LSI、LSESTM32F439时钟树中,系统时钟SYSCLK的来源有三个,分别是:HSI、HSE和 PLLCLK系统时钟SYSCLK来源有哪些? HSI、HSE通过设置哪个寄存器能对系统时钟 SYSCLK来源进行选择? RCC_CFGR 主锁相环PLL时钟是否就绪通过哪个寄存器判断? RCC_CR

14、要把GPIOF的时钟使能,需要设置哪个寄存器?RCC_AHB1ENR各个不同总线上时钟的分频参数通过哪个寄存器设置?RCC_PLLCFGR六、STM32F439勺串口1. 异步串行通信时的数据格式起始位数据位(8位或9位) 奇偶校验位(第9位)停止位(1,1.5,2 位)波特率设置2. STM32F43的USART是否能够发送数据或是否收到数据可通过哪个寄存 器判断? USART_SR发送数据时需要扌把数据写入哪个寄存器?USART_DR收到的数据通过读取哪个寄存器得知?USART_SR3. 重点掌握串口初始化操作,初始化操作中相关寄存器的设置。七、CM4异常处理、NVIG EXTI1. 哪些

15、异常的优先级不能编程配置?复位、NM、硬fault当CM4处理器的一个异常或中断被触发,硬件自动完成哪些工作? 所有异常都在处理模式中操作。出现异常时,自动将处理器状态保存到堆栈中, 并在中断服务程序(ISR)结束时自动从堆栈中恢复。在状态保存的同时取出向 量快速地进入中断。异常进入当CM4处理器的一个异常或中断被触发,硬件自动完成如工作:(1)CM4中断控制器根据当前状态和中断的抢占级别来确定是响应该中断,还 是先挂起,并更新相应的寄存器状态。(2)通过Dbus保存处理器状态,将下面的 8个寄存器按顺序保存入 SP( MSP 或PSP指向的系统堆栈。(3) CM4!过Ibus从异常向量表取得

16、对应的中断向量,并开始读取ISR指令, 这一步几乎与压栈同时进行。(4)CM4处理器更新到handler模式,SP切换到MSP更新IPSR为新响应的异 常编号,更新PC,更新LR寄存器为EXC_RETURN2. NVIC的寄存器ICTR(用于显示NVIC支持的中断线数目)、NVIC_ISERn设 置中断使能)、NVIC_ICERn(中断使能清除)、NVIC_ISPRn(中断挂起 设置寄存器)、NVIC_ICPRn(中断挂起清除寄存器)、NVIC_IPRn(中断 优先级寄存器)、NVIC_AIRCR勺主要用于什么设置?3. EXTI屏蔽某个中断线的中断请求需要设置哪个寄存器?EXTIMR中断线触

17、发中断的方式(上升沿、下降沿)需要设置的寄存器是? (EXTI_RTSR EXYI_FTSR八、定时器部件通用定时器可以向上(递增)计数、向下(递减)计数、向上向下双向(中 心对齐)计数模式。1. 独立看门狗的时钟来源是?LSI结构框图与工作原理?JS-157独立看门狗框国険分報需弘器IWDG PR状窪斷*誥IWDG SRIWDG RLRIWDG KR;二二二 1 斗二I LSI» IWDG UP.|32KH| 勳*»I VD0诧电区L在键值寄存器(IWDG_KR中写入OxCCCC开始启用独立看门狗。此时计数器开始 从其复位值 OxFFF递减,当计数器值计数到尾值0x000

18、时会产生一个复位信号(IWDG_RESET)无论何时,只要在键值寄存器IWDG_KF中写入OxAAAA (通常说的喂狗),自动重装载寄存器IWDG_RLR勺值就会重新加载到计数器,从而避免看门狗复位。如果程序异常,就无法正常喂狗,从而系统复位。超时时间如何计算?如何喂狗、取消写保护、启动看门狗?Tout=(4*2Frer)*(rlr+1)/32; / 单位为毫秒Tout为看门狗溢出时间(单位为 mS)prer为看门狗时钟预分频值(IWDG_PR PR2:0的值:0-7)4*2Aprer最大不超过256rlr为看门狗的重装载值(IWDG_RL的值)低速内部时钟LSI=32 KHzMIWDG_KR=0xAAAA;/畏狗IWDG_KR =0x5555;IWDG_RLR=0x5555;/取 消写保护IWDG_KR =0xCCCC;启动看门狗2. STM32F439勺定时器有哪几种?高级定时器、通用定时器、基本定时器通用定时器TIM

温馨提示

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

评论

0/150

提交评论