- 关于Cortex-M处理器的基本特性,下列描述错误的是? A. 采用32位RISC架构 B. 寄存器和内部数据通路都是32位的 C. 采用32位寻址,最大地址空间为4GB D. 只能处理32位的字(word)数据
- Cortex-M4处理器默认采用的数据存储顺序是? A. 大端模式 (Big-Endian) B. 小端模式 (Little-Endian) C. 由编译器决定 D. 可在运行时任意切换
- 在Cortex-M中,为了保证数据访问效率,一个半字(Half-word)变量的存放地址应该是? A. 任意地址 B. 2的整数倍 C. 4的整数倍 D. 8的整数倍
- Cortex-M3/M4处理器的指令流水线是几级? A. 二级 B. 三级 C. 四级 D. 五级
- Cortex-M处理器支持的Thumb-2指令集,其指令长度是? A. 只能是16位 B. 只能是32位 C. 同时支持16位和32位指令 D. 只能是8位
- 在GPIO的复位状态上,Cortex-M与8051的主要区别是? A. Cortex-M为高电平,8051为高阻态 B. Cortex-M为低电平,8051为高电平 C. Cortex-M为高阻态,8051为高电平 D. 两者都是高电平
- Cortex-M处理器采用了哪种计算机体系结构? A. 普林斯顿结构 B. 改进型哈佛结构 C. 典型的冯·诺依曼结构 D. 纯粹的哈佛结构
- 关于Cortex-M的通用寄存器,下列描述正确的是? A. R0-R12都可以被所有16位指令访问 B. R0-R7被称为高寄存器 C. R8-R12被称为低寄存器 D. 一些16位指令只能访问低寄存器R0-R7
- 在Cortex-M处理器中,R13寄存器的专用功能是? A. 程序计数器 (PC) B. 链接寄存器 (LR) C. 栈指针 (SP) D. 通用数据寄存器
- 在未使用操作系统的情况下,Cortex-M处理器通常使用哪个栈指针? A. 主栈指针MSP B. 进程栈指针PSP C. MSP和PSP交替使用 D. 由用户程序指定任意寄存器
- 当Cortex-M处理器执行一个函数或子程序调用指令(如BL)时,返回地址会自动保存在哪个寄存器中? A. R13 (SP) B. R14 (LR) C. R15 (PC) D. 堆栈中
- 关于Cortex-M中的程序计数器PC (R15),下列说法与8051相比最显著的区别是? A. PC是16位的 B. PC是只读的 C. PC是可读可写的 D. PC不存放下一条指令的地址
- 在Cortex-M中,读取PC寄存器的值,得到的是? A. 当前正在执行指令的地址 B. 下一条将要执行指令的地址 C. 当前指令地址加4 D. 当前指令地址减2
- Cortex-M的程序状态寄存器xPSR不包含哪个部分? A. 应用PSR (APSR) B. 中断PSR (IPSR) C. 执行PSR (EPSR) D. 数据PSR (DPSR)
- APSR中的哪个标志位用于指示ALU运算结果为负数? A. Z (零标志) B. C (进位标志) C. N (负数标志) D. V (溢出标志)
- 在Cortex-M中,哪个寄存器保存了当前正在服务的中断号? A. APSR B. IPSR C. EPSR D. LR
- EPSR中的T位如果被清零,将会发生什么? A. 处理器切换到ARM状态 B. 处理器进入休眠模式 C. 引起异常错误 D. 无任何影响
- Cortex-M的堆栈模型是? A. 向上生长的空栈 B. 向上生长的满栈 C. 向下生长的空栈 D. 向下生长的满栈
- 在Cortex-M的堆栈操作中,执行一次PUSH操作,SP指针会如何变化? A. 先存入数据,SP再自增4 B. SP先自增4,再存入数据 C. 先存入数据,SP再自减4 D. SP先自减4,再存入数据
- 由于对齐要求,Cortex-M的堆栈指针SP的最低两位永远是? A. 00 B. 01 C. 10 D. 11
- Cortex-M的存储器映像中,通常用于存放程序的区域是? A. SRAM区 B. 外设区 C. CODE区 D. 系统控制空间(SCS)
- Cortex-M的存储器保护单元(MPU)的主要作用是? A. 加快存储器访问速度 B. 定义各存储区域的访问权限,防止越界访问 C. 对存储器数据进行加密 D. 减少系统功耗
- Cortex-M处理器复位后,首先执行的操作是? A. 从0x00000004地址处读取复位向量 B. 跳转到主函数main() C. 从0x00000000地址处读取MSP的初始值 D. 清空所有通用寄存器
- Cortex-M的向量表中,每个向量(地址)占多少位? A. 8位 B. 16位 C. 32位 D. 64位
- 向量表中的异常服务例程地址,其最低位必须为1,这是为了指示什么? A. 这是一个中断服务例程 B. 这是一个高优先级异常 C. 处理器处于Thumb状态 D. 这是一个安全区的地址
- 嵌套向量中断控制器(NVIC)不具备以下哪个功能? A. 处理中断的优先级配置 B. 实现中断的嵌套(抢占) C. 管理中断的屏蔽 D. 直接执行中断服务程序中的算术运算
- 在NVIC中,如果两个中断的抢占优先级相同,响应优先级不同,当它们同时到达时,CPU会如何响应? A. 先响应中断号较小的 B. 先响应响应优先级较高的 C. 随机响应一个 D. 产生硬件错误
- 在NVIC的优先级设置中,数值与其优先级的关系是? A. 编号越大,优先级越高 B. 编号越小,优先级越高 C. 编号奇偶决定优先级 D. 编号与优先级无关
- 在Cortex-M中,下列哪个属于内核异常,而不是外部中断(IRQ)? A. GPIO引脚中断 B. 定时器溢出中断 C. SysTick中断 D. DMA传输完成中断
- Cortex-M发生中断响应时,硬件自动压栈的寄存器不包括? A. R0-R3 B. R12 C. R13 (SP) D. R14 (LR)
MOV R0, R1
指令在Cortex-M和8051中的可用性是? A. 两者都允许 B. 两者都禁止 C. Cortex-M允许,8051禁止 D. Cortex-M禁止,8051允许
- 要将一个32位的立即数加载到寄存器R0,通常需要哪两条指令配合使用?
A.
MOV
和ADD
B.LDR
和STR
C.MOVW
和MOVT
D.MVN
和AND
- 指令
MVN R0, R1
的功能是? A. 将R1的值传送到R0 B. 将R1的值按位取反后传送到R0 C. 将R1和R0的值交换 D. 判断R1和R0的值是否相等
- 要从内存地址
[R1]
处读取一个无符号字节(8位)到R0,应使用哪条指令? A.LDR R0, [R1]
B.LDRH R0, [R1]
C.LDRB R0, [R1]
D.LDRSB R0, [R1]
- 指令
LDR R0, [R1, #4]!
的功能描述,正确的是? A. 读取[R1+4]
地址处的数据到R0,然后R1的值不变 B. 读取[R1]
地址处的数据到R0,然后R1的值更新为R1+4
C. 读取[R1+4]
地址处的数据到R0,然后R1的值更新为R1+4
D. 这是一个非法的指令格式
STMIA R0!, {R1-R3}
这条指令属于哪种操作? A. 单寄存器加载 B. 单寄存器存储 C. 多寄存器加载 D. 多寄存器存储
- 在
STMIA R0!, {R1-R3}
指令执行后,R0的值会如何变化? A. 不变 B. 增加4 C. 增加8 D. 增加12
- 指令
B.EQ Label
的含义是? A. 如果Z标志位为0,则跳转到Label B. 如果Z标志位为1,则跳转到Label C. 无论如何都跳转到Label D. 这是一个函数调用指令
- 要实现
if (R0 == R1) R2 = R3;
这样的条件执行,可以使用哪条指令? A.ITE EQ
B.CMP R0, R1
后跟MOVEQ R2, R3
C.BEQ
D. 只能用跳转指令实现
- Cortex-M的位段操作(Bit-banding)提供了一种什么性质的操作? A. 可重入操作 B. 原子操作 C. 异步操作 D. 宏操作
- STM32F4系列MCU中,配置GPIO端口方向模式的寄存器是?
A.
GPIOx_OTYPER
B.GPIOx_PUPDR
C.GPIOx_MODER
D.GPIOx_IDR
- 要快速地将GPIOx端口的第5位置1,同时不影响其他位,最高效的操作是写入哪个寄存器?
A.
GPIOx_ODR
B.GPIOx_BSRR
C.GPIOx_MODER
D.GPIOx_LCKR
- 在
GPIOx_BSRR
寄存器中,要对端口的第n位进行复位(清零),应该怎么做? A. 对该寄存器的BSn
位写1 B. 对该寄存器的BSn
位写0 C. 对该寄存器的BRn
位写1 D. 对该寄存器的BRn
位写0
- 以下哪个定时器是STM32F4系列中的高级控制定时器? A. TIM2 B. TIM6 C. TIM8 D. TIM9
- 在STM32的定时器中,用于设置PWM占空比的寄存器是? A. 预分频寄存器 (PSC) B. 自动重装载寄存器 (ARR) C. 捕获/比较寄存器 (CCR) D. 控制寄存器 (CR)
- 要实现无需CPU干预的内存与外设之间的数据传输,应使用哪个外设? A. NVIC B. MPU C. DMA D. SysTick
- 在C语言中,使用结构体指针来访问外设寄存器有什么优点? A. 可以减少代码量 B. 编译速度更快 C. 将相关寄存器地址映射到结构体成员,使代码更具可读性和可移植性 D. 可以绕过内存保护
- 在Cortex-M处理器中,执行
BX LR
指令通常用于什么目的? A. 从函数中返回 B. 进入中断服务 C. 复位处理器 D. 无条件长跳转
- Cortex-M的位段别名区(Bit-band Alias)的大小是多少? A. 1MB B. 4MB C. 32MB D. 128MB
- 如果要将R1左移2位后作为偏移量,与基址R2相加,从结果地址处加载一个字到R0,应该使用哪条指令?
A.
LDR R0, [R2, R1, LSL #2]
B.LDR R0, [R2, #2]
C.LDMIA R2, {R0, R1}
D.LDR R0, [R2], R1, LSL #2