嵌入式期末复习题(二)

考试题型:

一、选择题(每小题2分,15题,共30分)   二、填空题(每题2分,10题,共20分)

三、简答题(每题5分,4题,共20分)      四、分析题(每题5分,3题,共15分)

五、程序设计题(1小题,共15分)

选择题和填空题

  1. 了解Cortex-M处理器采用的架构(P14)

    ARMv7

  1. 了解STM32F1xx系列的内核Cortex的哪个系列(P22)

      Cortex-M3

  1. 了解冯诺依曼结构和哈佛结构的区别(P4)

冯诺依曼结构是由一个中央处理单元(CPU)和单存储空间组成的,即这个存储空间存储了全部的数据和程序,它们内部使用单一的地址总线和数据总线。

哈佛结构存储器分为数据和程序两个存储空间,有各自独立的程序总线和数据总线,可以进行独立编址和独立访问。

  1. 了解Cortex-M3的流水线级数(P50)

    三级流水线,分别是取指、解码、执行。

  1. 了解Cortex-M3处理器的寄存器R14的含义(P31)

    R14:链接寄存器(LR)

  1. 了解STM32的3种时钟总线

AHB、APB1、APB2

  1. 了解STM32系列ARM Cortex-M3芯片支持的三种复位形式(P72)

    系统复位、电源复位、备份区域复位。

  1. 了解基于CMSIS标准的软件架构是由哪几层组成的(P84)

    主要分为4层,用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。

  1. 了解GPIO引脚的8种I/O模式(参考P102图5-1)

通用开漏输出、通用推挽输出、复用开漏输出、复用推挽输出

模拟输入、浮空输入、下拉输入、上拉输入

  1. 了解I/O口的输出模式下的3种输出速度2MHz、10MHz、50MHz的含义(P106)

    I/O口驱动电路响应速度

  1. 了解STM32外部中断通道和中断源的关系,例如EXTI线5,可以对应5个中断源PA5、PB5、PC5、PD5、PE5参考(参考P142的图6-5)

    EXTI1→PA1、PB1、PC1、PD1、PE1

    EXTI15→PA15、PB15、PC15、PD15、PE15

  1. 了解STM32的外部中断/事件控制器(EXTI)一共支持多少个中断通道(P140)

    一共支持19个中断通道

  1. 了解STM32的USART的停止位的数量包含哪几种(P160)

    4种,分别是0.5、1、1.5、2

14.了解STM32的串口帧格式包含: 起始位、数据帧、奇偶检验位、停止位。(P161)

15.了解PWM的含义

    PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形

  1. 了解STM32的定时器计数器的位数,最大可计数到多少(P183)

     具有16位计数功能,最大可计数到65535

17.了解ADC转换过程:采样--量化--编码

18.了解STM32 ADC 的含义及位数(P235)

    模数转换器  12位

19.了解ST公司库函数的命名规则,例如对于ADC模块,它的源文件命名为stm32f10x_adc.c     它的头文件命名为stm32f10x_adc.h

20.了解STM32芯片内部集成ADC1可测量多少个外部信号源,多少个内部信号源。(P235)

    可测量16个外部信号源,2个内部信号源。

简答题

  1. 熟悉STM32最小系统的5大部分组成及其作用。(P81)

答:5大部分:电源电路、时钟电路、复位电路、启动电路和程序下载电路。

作用:计算机系统最基本的操作就是执行指令,即在每个指令周期从存储器取出指令译码来执行,所以要有电源能量注入,时钟电路协调处理器和存储器间的信号交换,程序下载电路将程序下载到程序存储器,启动电路通知微处理器程序的存储位置,复位电路初始化内部数据存储器和寄存器。

  1. 熟悉CMSIS层的3大组成部分的作用(P85)

答:核内外设访问层:对寄存器地址的定义,对核寄存器、NVIC、调试子系统的访问接口定义,以及对特殊用途寄存器的访问接口定义。

中间件访问层:主要负责定义一些中间件访问的API函数,如为TCP/IP协议栈、SD/MMC、USB协议,以及实时操作系统的访问与调试提供标准软件接口。

设备外设访问层:负责对硬件寄存器地址及外设访问接口进行定义。

  1. 熟悉中断通道的含义(P127),中断硬件结构的组成(P131)

答:含义:中断通道是处理中断的信号通路,每个中断通道对应唯一的中断向量和唯一的中断服务程序,但该中断通道可具有多个可以引起中断的中断源,这些中断源都能通过对应的“中断通道”向内核申请中断。

中断硬件结构的组成:中断通道、中断处理和中断响应。

  1. 熟悉STM32的通用定时器包含哪些 (P177)定时器有哪几种计数模式(P186)

答:通用定时器包含TIM2、TIM3、TIM4、TIM5

定时器有3种计数模式,分别是向上计数模式、向下计数模式、中央计数模式

分析题

1.熟悉下面代码的功能和出现的场合(该代码类似于实验LAB2_1_WaterLED的LED_Init()函数中的一行代码)

代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

功能:使能GPIOC时钟的功能

出现的场合:常用于硬件初始化代码中

2.熟悉STM32的中断优先级,熟悉占优先级和副优先级的含义,仔细阅读那3段文字(P133),关于NVIC要熟悉以下知识点:

(1)嵌套向量中断控制器(NVIC)的优先级一共占了4位,分为两组,即占有先级和副优先级。如果占优先级占了0位,则副优先级占4位。

(2)嵌套向量中断控制器(NVIC)具有可编程的优先等级 个。

(3)假设STM32配置了2个中断向量,其属性如下表。那么:

1.STM32在响应中断B时,中断A能否打断中断B中的中断服务函数?

2.如果中断B和中断C同时到达,CPU优先响应哪个中断?

3.如果STM32在响应中断C时,中断B能否打断中断C的中断服务函数?

中断向量

    占优先级

   副优先级

       A

      2

       2

       B

      3

       1

       C

      3

       3

小提示:数字越小,优先级越高。

答案:

(1)中断A可以打断中断B的服务函数,因为A的占优先级比B高,可以形成中断嵌套。

(2)如果中断B和中断C同时到达,CPU优先响应中断B,因为中断B的副优先级比C高。

(3)如果STM32在响应中断C时,中断B不能打断中断C中的中断服务函数,因为中断B和中断C的占优先级相同,占优先级相同的2个中断是无法形成中断嵌套的,只有当中断C的中断服务函数执行完后,才会执行中断函数B。

3.熟悉串口结构体初始化函数每一行代码的含义。例如下面一到八行的代码(该代码来自实验LAB_UART1,每一行代码的含义参考书上P167-169)

void UART1_Init(void)

USART_InitTypeDef USART_InitStruct; 1   //声明USART结构体

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//打开USART1的时钟

  USART_InitStruct.USART_BaudRate=9600;   2    //波特率  

  USART_InitStruct.USART_WordLength=USART_WordLength_8b;  3  //数据位数为8

  USART_InitStruct.USART_StopBits=USART_StopBits_1;  4  //一个停止位

  USART_InitStruct.USART_Parity=USART_Parity_No;   5  //无奇偶校验位

  USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;  //发送接收均使能

  USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;  7   //无硬件控制流

  USART_Init(USART1,&USART_InitStruct);  8  //初始化USART_InitStruct结构体

  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//接收使能

  USART_Cmd(USART1,ENABLE);// USART1使能

}

程序设计题

  1. 熟悉STM32实现流水灯的编程设计。具体代码参考实验LAB2_1_WaterLED. 大家要熟悉代码里的LED_Init()函数和主函数中的代码。

考试攻略:大家有事没事就把这2个函数的代码默写个十几遍,评分标准是写对一行代码就给一分。

LED_Init()函数

#include "LED.h"

void LED_Init(void)

{

       GPIO_InitTypeDef  GPIO_InitStruct;

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);  //打开PA、PD端口的时钟

       //设置LED0--PA8的引脚模式

       GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8| GPIO_Pin_2;

       GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

       GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;

       GPIO_Init(GPIOA, &GPIO_InitStruct);

       GPIO_SetBits(GPIOA,GPIO_Pin_8);

       //设置LED1--PD2的引脚模式

       GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;  

       GPIO_Init(GPIOD, &GPIO_InitStruct);

       GPIO_SetBits(GPIOD,GPIO_Pin_2);  

}

主函数

int main()

{                  

       LED_Init();    //初始化LED的引脚          

       while(1)

       {           

           GPIO_ResetBits(GPIOA,GPIO_Pin_8);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
Delay(1000);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
Delay(1000);

       }                  

}

1、 ARM微处理器有 7种工作模式,它们分为两类 非特权模式 、 特权模式 。其中用户模式属于 非特权模式 2、 ARM支持两个指令集, ARM核因运行的指令集不同,分别有两个状态 ARM 、 Thumb ,状态寄存器CPSR的 T 位反映了处理器运行不同指令的当前状态 3、 ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器, R15 寄存器用于存储PC,R13通常用来存储 SP 4、 ARM处理器有两种总线架构,数据和指令使用同一接口的是 冯诺依曼 ,数据和指令分开使用不同接口的是 哈佛结构 1. 下列不是嵌入式系统特点的是: A. 系统内核小 B. 专用性强 C. 系统精简 D. 实时性要求不高 2. 关于ARM汇编和C语言混合编程下列错误的是: A.C语言中可以直接嵌入某些汇编指令 B. C语言中可以调用汇编的子程序 C. 汇编程序中可以调用C语言的函数 D. C语言嵌入的汇编指令时,不可以使用C的变量 3. 关于ATPCS规则,说法错误的是: A. 只能使用R0-R3来传递参数 B. R13为堆栈指针SP,需要保护 C. R14为连接寄存器,用于存放程序返回地址 D. 单字的返回值存放在R0 4. 关于交叉编译描述正确的是: A. 编译器运行在目标机,生成的可执行文件在宿主机上运行 B.编译器运行在宿主机,生成的可执行文件在宿主机上运行 C.编译器运行在目标机,生成的可执行文件在目标机上运行 D.编译器运行在宿主机,生成的可执行文件在目标机上运行 5. 建立嵌入式Linux开发环境中,使用Bootp协议的直接目的是: A. 分配宿主机的IP地址 B. 分配目标机的IP地址 C. 用于宿主机和目标机之间通讯 D. 用于监控目标机的运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chris_Brown

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值