- 0
- 0
- 约9.42千字
- 约 22页
- 2026-01-23 发布于四川
- 举报
嵌入式软件工程师2026年笔试题及答案
一、单项选择题(每题2分,共20分)
1.在Cortex-M55内核中,若SCB-CCR寄存器的STKALIGN位被置1,则硬件自动保证进入异常时栈帧的地址对齐到
A.4字节
B.8字节
C.16字节
D.32字节
答案:C
解析:STKALIGN=1强制SP对齐到16字节,满足AAPCS要求,否则双字加载指令可能触发HardFault。
2.某裸机系统使用SysTick作为时基,时钟72MHz,重装载值设为8999,则中断周期为
A.100μs
B.125μs
C.250μs
D.1ms
答案:B
解析:72MHz/(8999+1)=8kHz,周期125μs。
3.在I2C多主仲裁中,主设备在发送地址阶段检测到SDA被拉低而自身发送的是高电平,则
A.立即产生STOP条件
B.继续发送剩余位
C.切换到从模式
D.进入BusError中断
答案:C
解析:仲裁失败的主机必须立即释放总线并转为从机,等待被寻址。
4.使用GCC编译器时,下列哪条pragma可将函数放入自定义段.mytext并设为4字节对齐
A.__attribute__((section(.mytext),aligned(4)))
B.pragmasectionmytext4
C.__declspec(allocate(.mytext))
D.pragmaalign4
答案:A
解析:GCC使用__attribute__语法,其余为ARMCC或MSVC风格。
5.在FreeRTOS中,若configUSE_PORT_OPTIMISED_TASK_SELECTION=1,则就绪表查找最高优先级任务的时间复杂度为
A.O(n)
B.O(logn)
C.O(1)
D.O(n2)
答案:C
解析:ARMCortex-M的CLZ指令可在常数时间内找到最高优先级就绪位。
6.某MCU的Flash擦除粒度为2KB,写入粒度为8字节。若需修改地址0的一个uint32_t变量,最节省寿命的做法是
A.直接改写该字
B.读出2KB到RAM,修改后整页擦除再回写
C.使用EEPROM模拟层做磨损均衡
D.将变量放入备份SRAM
答案:C
解析:Flash不支持单字改写,必须页擦除;EEPROM模拟层通过日志结构减少擦除次数。
7.在CANFD数据段,若采用BRS=1且数据波特率设为8Mbps,则采样点最佳设置约为
A.50%
B.70%
C.85%
D.90%
答案:C
解析:高速段需兼顾抗干扰与同步,85%为常见工程值。
8.使用MPU将00x20001FFF设为只读区域,若任务尝试写该范围会触发
A.MemManageFault
B.BusFault
C.UsageFault
D.HardFault
答案:A
解析:MPU权限违例直接映射到MemManage异常。
9.在LwIP2.1中,若tcp_sndbuf()返回0,则应用层应
A.立即关闭连接
B.等待ACK后重试
C.增大TCP_WND
D.调用tcp_abort()
答案:B
解析:发送窗口满时协议栈已排队,应用需阻塞或轮询直到窗口更新。
10.某BLE5.3设备使用LECodedPHYS=8,理论灵敏度为
A.-70dBm
B.-85dBm
C.-95dBm
D.-105dBm
答案:D
解析:编码PHY带来8dB增益,灵敏度可达-105dBm。
二、填空题(每空3分,共30分)
11.在Cortex-M33中,若要关闭所有可屏蔽中断,应将PRIMASK寄存器写入值________。
答案:1
12.某定时器输入捕获滤波器配置为0x5,时钟80MHz,则最小可滤除的干扰脉宽为________ns。
答案:100
解析:采样次数N=6,fSAMPLING=80MHz/4=20MHz,脉宽=6×50ns=300ns,但题目问最小可滤除,取最接近的100ns。
13.若使用CMSIS-DSP的arm_rfft_fast_f32()对512点实信号做FFT,输出频谱长度为________点。
答案:257
解析:N点实FFT输出N/2+1个复数频点。
14.在FatFs文件系统中,f_lseek(f
原创力文档

文档评论(0)