乐鑫2025嵌入式笔试必刷100题(带完整答案解析)_第1页
乐鑫2025嵌入式笔试必刷100题(带完整答案解析)_第2页
乐鑫2025嵌入式笔试必刷100题(带完整答案解析)_第3页
乐鑫2025嵌入式笔试必刷100题(带完整答案解析)_第4页
乐鑫2025嵌入式笔试必刷100题(带完整答案解析)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

乐鑫2025嵌入式笔试必刷100题(带完整答案解析)

一、单项选择题(总共10题,每题2分)1.C语言中,以下关于指针数组和数组指针的描述,正确的是()A.intp[5]是数组指针,指向包含5个int的数组B.int(p)[5]是指针数组,元素为int类型C.intp[5]的元素是int,可存储多个int变量的地址D.int(p)[5]的大小与intp[5]相同2.ESP32的WiFi工作模式不包括()A.STA模式(站点)B.AP模式(热点)C.混杂模式D.SoftAP+STA混合模式3.FreeRTOS中,任务优先级的表述正确的是()A.优先级数值越大,任务优先级越高B.优先级0是最高优先级C.优先级范围是1到configMAX_PRIORITIESD.同一优先级任务无法同时运行4.MQTT协议的QoS等级不包含()A.0级(最多一次)B.1级(至少一次)C.2级(恰好一次)D.3级(多次确认)5.ESP32的低功耗模式中,CPU完全停止运行的是()A.活跃模式B.轻睡眠模式C.深度睡眠模式D.待机模式6.UART通信中,波特率的定义是()A.每秒传输的字节数B.每秒传输的比特数C.每秒传输的帧数D.每秒传输的校验位数量7.C语言中,volatile关键字的主要作用是()A.防止编译器对变量进行优化B.定义全局只读变量C.修饰函数参数为指针类型D.提高变量访问速度8.FreeRTOS中,用于创建任务的函数是()A.xTaskCreateB.vTaskStartSchedulerC.xQueueCreateD.xSemaphoreCreateBinary9.ESP32支持的蓝牙功能包括()A.仅BLE4.2B.仅经典蓝牙C.BLE5.0和经典蓝牙D.仅BLE5.010.嵌入式系统中,栈溢出的常见原因不包括()A.递归函数调用过深B.局部变量数组过大C.任务栈大小设置过小D.全局变量存储过多二、填空题(总共10题,每题2分)1.ESP32的双核架构中,负责WiFi/BLE通信的核心称为______核心,负责用户应用程序的核心称为______核心。2.FreeRTOS中,任务优先级的最大值为______(用宏表示)。3.MQTT协议中,用于维持客户端与服务器连接的报文是______。4.ESP32设置WiFi为STA模式的函数是______(仅写函数名)。5.C语言中,const修饰的变量具有______特性(只读/读写)。6.FreeRTOS中,用于创建队列的函数是______。7.UART通信的起始位为______电平(高/低)。8.ESP32深度睡眠模式的唤醒源包括定时器、外部中断和______(至少写1个)。9.嵌入式系统中,ROM主要用于存储______(固件/临时数据)。10.SPI通信中,时钟极性CPOL=1表示时钟空闲时为______电平(高/低)。三、判断题(总共10题,每题2分)1.ESP32可以同时开启WiFi和BLE功能。()2.FreeRTOS中,优先级数值越小,任务优先级越高。()3.MQTT的主题名称中可以包含空格字符。()4.ESP32的轻睡眠模式下,CPU完全停止运行。()5.C语言中,指针变量的大小由系统位数决定(32位为4字节,64位为8字节)。()6.FreeRTOS中,任务可以调用vTaskDelete(NULL)来删除自身。()7.UART通信不需要单独的时钟线。()8.ESP32的经典蓝牙模式支持A2DP音频传输协议。()9.嵌入式系统中,全局变量默认存储在RAM中。()10.SPI通信是全双工通信方式(主从可同时收发数据)。()四、简答题(总共4题,每题5分)1.简述ESP32的PRO核心与APP核心的主要区别及分工。2.解释FreeRTOS任务调度的基本原理(含时间片轮转机制)。3.对比MQTT协议QoS0、1、2级的差异及适用场景。4.简述ESP32低功耗设计的3个关键要点。五、讨论题(总共4题,每题5分)1.如何排查和解决ESP32项目中WiFi连接不稳定的问题?2.FreeRTOS中任务间通信的常用方式有哪些?各有什么优缺点?3.嵌入式系统中栈溢出的常见原因及有效的排查方法?4.简述ESP32BLE开发中,实现设备与手机双向数据传输的步骤。答案及解析一、单项选择题答案及解析1.答案:C解析:intp[5]是指针数组,元素为int类型;int(p)[5]是数组指针,指向5个int的数组。两者大小不同,数组指针大小为系统地址位数,指针数组为5×sizeof(int)。2.答案:C解析:ESP32WiFi模式含STA、AP、SoftAP+STA,无混杂模式(混杂模式用于网卡抓包,ESP32未开放)。3.答案:A解析:FreeRTOS优先级数值越大优先级越高,最高为configMAX_PRIORITIES-1;同优先级任务可通过时间片轮转调度。4.答案:D解析:MQTT仅0(最多一次)、1(至少一次)、2(恰好一次)三级QoS,无3级。5.答案:C解析:深度睡眠时CPU完全停止,仅RTC运行;轻睡眠CPU仍工作,活跃模式全功耗。6.答案:B解析:波特率定义为每秒传输的比特数(bit/s),非字节数。7.答案:A解析:volatile防止编译器优化硬件寄存器等变量的访问(避免缓存导致错误)。8.答案:A解析:xTaskCreate创建任务;vTaskStartScheduler启动调度器;xQueueCreate创建队列;xSemaphoreCreateBinary创建二进制信号量。9.答案:C解析:ESP32支持BLE5.0和经典蓝牙(BR/EDR),可同时开启。10.答案:D解析:栈溢出与局部变量、递归、栈大小有关,全局变量存于全局数据区,与栈无关。二、填空题答案及解析1.答案:PRO;APP解析:PRO核心负责WiFi/BLE实时通信,APP核心负责用户应用逻辑。2.答案:configMAX_PRIORITIES-1解析:FreeRTOS优先级范围0~configMAX_PRIORITIES-1,数值越大优先级越高。3.答案:PINGREQ解析:客户端发PINGREQ,服务器回PINGRESP维持连接。4.答案:wifi_station_config解析:ESP-IDF中设置STA模式的核心函数。5.答案:只读解析:const变量运行时不可修改(ROM中无法修改,RAM中强制修改不推荐)。6.答案:xQueueCreate解析:创建队列,参数为队列长度和消息大小。7.答案:低解析:UART起始位为低电平(逻辑0),表示数据开始。8.答案:触摸传感器(或GPIO中断、外部按键)解析:ESP32深度睡眠唤醒源含定时器、外部中断、触摸传感器等。9.答案:固件解析:ROM存储固化固件(如bootloader),临时数据存RAM。10.答案:高解析:CPOL=1表示时钟空闲时为高电平,CPOL=0为低电平。三、判断题答案及解析1.答案:对解析:PRO核心可同时处理WiFi和BLE,APP核心运行应用。2.答案:错解析:FreeRTOS优先级数值越大优先级越高。3.答案:错解析:MQTT主题不能含空格、通配符(+、)等。4.答案:错解析:轻睡眠时CPU仍工作,深度睡眠CPU停止。5.答案:对解析:指针大小由系统位数决定(32位4字节,64位8字节)。6.答案:对解析:vTaskDelete(NULL)删除当前任务,需确保栈未释放。7.答案:对解析:UART异步通信,通过起始/停止位同步,无需时钟线。8.答案:对解析:ESP32经典蓝牙支持A2DP音频传输。9.答案:对解析:全局变量默认存RAM的.data/.bss段,const全局变量可存ROM。10.答案:对解析:SPI通过MOSI/MISO同时收发,属于全双工。四、简答题答案及解析1.答案:ESP32双核分工明确:-PRO核心:负责WiFi/BLE等实时通信,处理低延迟协议栈(TCP/IP、蓝牙),优先级高,由乐鑫固件管理。-APP核心:负责用户应用逻辑(数据处理、外设控制),可完全自定义,与PRO核心通过共享内存、队列通信。区别:PRO侧重实时通信,APP侧重应用开发;PRO资源由固件管控,APP可灵活开发。2.答案:FreeRTOS调度基于抢占式优先级,核心原理:-优先级抢占:高优先级任务随时抢占低优先级任务(除非低优先级在临界区)。-时间片轮转:同优先级任务按固定时间片(默认10ms)轮流执行(需开启configUSE_TIME_SLICING)。-调度启动:调用vTaskStartScheduler()后,从就绪队列选最高优先级任务运行,无就绪任务则进入空闲任务。-上下文切换:通过PendSV异常实现,保存当前任务上下文,加载下一个任务上下文。3.答案:MQTTQoS三级差异:-QoS0:发送后不确认,可能丢失,适用于非关键数据(如传感器广播)。-QoS1:发送后等PUBACK确认,未收到则重发,可能重复,适用于需可靠但可接受重复的数据(如状态上报)。-QoS2:四次握手(PUBLISH→PUBREC→PUBREL→PUBCOMP),确保不丢不重,适用于关键数据(如支付指令)。差异:可靠性逐级提升,开销逐级增大(QoS2开销最大)。4.答案:ESP32低功耗关键要点:1.模式选择:根据需求用深度睡眠(CPU停止)、轻睡眠(CPU工作,关外设)或待机。2.外设优化:关闭未使用外设(WiFi、BLE),用低功耗GPIO(输入模式)。3.唤醒优化:合并数据上报,减少通信次数;合理设置定时器唤醒间隔,避免频繁唤醒。4.CPU负载:活跃模式下优化代码,减少循环占用,利用空闲任务降功耗。五、讨论题答案及解析1.答案:排查解决WiFi不稳定步骤:-硬件检查:天线连接良好,电源稳定(纹波≤50mV),远离干扰源(电机、无线设备)。-软件配置:选空闲信道(避免同频干扰),开启WiFi功率调整,增加重连机制(失败后延迟1-3秒重试)。-调试分析:开启WiFi日志(ESP_LOG_LEVEL(WIFI,DEBUG)),查看连接失败原因;用WiFi分析仪检测信道干扰。-固件更新:升级ESP-IDF到最新版本,修复已知稳定性问题。2.答案:FreeRTOS任务间通信常用方式及优缺点:-队列:支持多任务收发,带阻塞机制;缺点:消息大小固定,不适合大数据。-信号量:二进制(同步任务)、计数(资源计数)、互斥量(解决优先级反转);优点:轻量;缺点:仅传状态,互斥量易反转(需优先级继承)。-共享内存:传大数据快;缺点:需手动同步(互斥量),易数据不一致。-事件组:传多个事件(位表示);缺点:仅传状态,无具体数据。3.答案:栈溢出原因及排查:-常见原因:局部变量过大、递归过深、任务栈大小不足、函数调用层级过深。-排查方法:1.静态分析:检查局部变量大小、递归深度,确认任务栈大小(WiFi任务≥2048字)。2.动态调试:开启栈溢出检测(configSTACK_CHECKING_ENABLED=y),GDB查看栈指针越界,日志打印栈指针变化。3.工具辅助:ESP-IDFmonitor查看栈溢出异常,内存分析工具检测栈使用。4.答案:ESP32BLE双向传输步骤(ESP-IDF):1.初始化BLE:调用esp_ble_init(),配置设备名称、UUID。2.创建服

温馨提示

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

评论

0/150

提交评论