MPS - 嵌入式软件工程师 - 笔试
❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗
本文所涉及的题目均为基于个人学习和理解重新表述的内容,仅供学习交流之用,不代表任何实际考试题目。如有雷同,纯属巧合。
岗位:嵌入式软件工程师(成都)
题型:10 道填空题,3 道编程题,4 道问答题
1、填空题
1.1
一些代码量较小的函数可以使用关键字 (1) 说明该函数是内联函数,其优点 (2),缺点 (3)。
解答:
- inline
- 减少函数调用开销,提高程序运行效率
- 可能导致代码膨胀,增加编译后的代码体积
1.2
假设串口波特率为 9600,设置数据位 8,起始位 1,奇偶校验位 1,停止位 2。则每秒钟串口可以传输 (1) 个字节数据。
解答:
- 800
1.3
知某外设的基地址为 0x800_0000,内部控制寄存器信移地址 0x8000,请用一条指令设置控制寄存器的BIT[6:7]
位域清零,其它位不变 (1)
解答:
BIC [0x8008000], #0xc0
1.4
Linux下常用命令使用:
- 新建一个名字为 Test 的目录:(1)
- 删除内有文件和子目录的名字为 Test 的目录:(2)
- 列出当前目录下的所有文件和子目录:(3)
解答:
- mkdir Test
- rm -r Test
- ls
1.5
在 ARM M0 MCU 编程开发环境中,下面结构体变量 a 所占内存大小是(1)
struct Member {
char name[30];
int age;
double score;
} a = {"Lucky", 18, 90.5};
解答:
48
1.6
FreeRTOS 是一种实时可抢占式操作系统,FreeRTOS 内核采用的调度算法(1)
解答:
- 时间片轮询的优先级抢占式调度算法
1.7
正常的中断服务程序中,其最后执行的一条指令是(1),中断服务程序的入口地址是(2)
解答:
BX LR
0x08000000
1.8
有数组 int a[X];
其中 x 为大于 0 的某一未知常数,请用通用公式计算出数组长度等于:(1),所占内存大小:(2)
解答:
sizeof(a) / sizeof(a[0])
sizeof(a)
1.9
MCU 中一个 12bit 精度 adc 模块,参考电压为 3.3V,采样电路使用 90.9K/10K 电阻分压,请使用宏定义一个函数,根据 ADC 采样结果 x,求解实际被采样电压(单位:mV)大小:(1)
解答:
#define ADC_TO_VOLTAGE(x) (x)*3300*1009 / (4096*10)
1.10
I2C 是一种串行通信协议,用于在芯片之间传输数据。其起始信号 SCL 和 SDA 变化是:(1)
解答:
- SCL 保持高电平,SDA 产生下降沿
2、编程题
2.1
题目:
请根据流程图用伪代码实现状态机切换及事件响应。
解答:
#include <stdio.h>
#include <stdbool.h>
#include <time.h>
// 定义状态枚举
typedef enum {
IDLE_STATE,
PE_SEND_ALERT,
PE_WAIT_FOR_GET_STATUS,
PE_GIVE_STATUS
} State;
// 定义事件枚举
typedef enum {
EVENT_TIMEOUT,
EVENT_RX_CMD_SEND_ALERT,
EVENT_TX_ALERT_MSG_SUCCESS,
EVENT_RX_GET_STATUS_MSG,
EVENT_TX_STATUS_MSG_SUCCESS,
EVENT_TX_RETRY_FAILED
} Event;
// 当前状态
State currentState = IDLE_STATE;
// 状态机函数
void stateMachine(Event event) {
switch (currentState) {
case IDLE_STATE:
if (event == EVENT_RX_CMD_SEND_ALERT) {
currentState = PE_SEND_ALERT;
}
break;
case PE_SEND_ALERT:
if (event == EVENT_TX_ALERT_MSG_SUCCESS) {
currentState = PE_WAIT_FOR_GET_STATUS;
}
else if (event == EVENT_TX_RETRY_FAILED) {
currentState = IDLE_STATE;
}
break;
case PE_WAIT_FOR_GET_STATUS:
if (event == EVENT_RX_GET_STATUS_MSG) {
currentState = PE_GIVE_STATUS;
}
else if (event == EVENT_TIMEOUT) {
currentState = I
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。