宇树机器人面经(嵌入式/机器人方向)
一面(基础技术面)
自我介绍,然后开始问基础,偏嵌入式底层和RTOS:
设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程
UART、SPI、I2C 协议的核心差异及典型应用场景
推挽输出与开漏输出的区别?举例说明在 GPIO 控制中的应用
如何通过 DMA 减少 CPU 在数据传输中的负载
系统时钟配置对低功耗设计的意义是什么
嵌入式操作系统(如 FreeRTOS)中任务的状态有哪些?状态切换条件
实时操作系统(RTOS)的“硬实时”与“软实时”区别
RTOS 的任务调度策略有哪些?如何保证实时性
任务间通信方式(信号量、消息队列、管道)的适用场景及优缺点
如何避免中断服务程序(ISR)中的竞争条件
中断服务函数(ISR)的设计原则?为什么要避免在 ISR 中执行复杂逻辑
malloc 与 free 的使用注意事项,malloc(0) 的行为是什么
解释“野指针”与“内存泄漏”的调试方法
什么是内存对齐?
静态全局变量与普通全局变量的区别?static 修饰函数的作用
对整型变量 a,编写代码设置 bit3 并清除 bit3(保持其他位不变)
解释 PWM 的工作原理,如何通过定时器实现占空比调节
信号量的作用是什么?如何实现生产者-消费者模型
二面(深入技术面 / 项目深挖)
主要围绕项目展开,结合系统设计、通信、控制:
在资源受限 MCU 上实现 OTA 升级功能,描述关键设计点
如何实现 OTA(空中升级)功能?描述固件校验和回滚机制的设计要点
如何检测栈溢出?嵌入式系统中栈分配的策略
解释内存碎片问题,嵌入式系统中如何优化动态内存分配
解释“自旋锁”与“互斥锁”的区别,嵌入式场景中的选择依据
自旋锁与互斥锁的区别?哪种更适合高优先级任务频繁抢占的场景?
解释优先级反转问题及解决方案(如优先级继承)
realloc 函数可能引发的内存问题?如何安全使用
嵌入式系统中 ROM 与 RAM 运行模式的区别?代码段与数据段如何分配
在纯 ANSI C 环境下,如何将绝对地址 0x67a9 的整型变量赋值为 0xaa66
进程间通信的 8 种方式及其适用场景(如管道、消息队列、共享内存等)
CAN 总线相关:
CAN 总线负载如何计算
为什么会出现 bus off
TEC 增长的原因
机器人运动控制中,如何通过 PID 算法实现电机精准调速?参数整定方法
多传感器融合(如 IMU、激光雷达)在机器人定位中的实现难点
字符设备驱动开发的基本流程(从注册设备到用户空间交互)
如何通过设备树(Device Tree)描述硬件资源?举例说明节点定义
如何优化嵌入式代码的功耗(从硬件选型、时钟配置、休眠策略等多角度分析)
解释“可重入函数”与“线程安全”的区别,C 标准库函数是否可重入
死锁的四个必要条件是什么?如何通过银行家算法避免死锁
当时准备嵌入式面试的时候,最大的问题不是不会,而是:
👉 知识点太散,没有一套成体系的东西
后来我自己把面经和常见考点重新整理了一遍,按模块做成了一个合集(RTOS、通信、内存、驱动这些都有),目前还在持续更新。
对那种想系统梳理一遍嵌入式知识的同学会比较有用👇
https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
