宇树科技嵌入式面试题及参考答案(春晚机器人的公司)
目录
设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程
在资源受限的 MCU 上实现 OTA 升级功能,描述关键设计点
如何实现 OTA(空中升级)功能?描述固件校验和回滚机制的设计要点
推挽输出与开漏输出的区别?举例说明其在 GPIO 控制中的应用
UART、SPI、I2C 协议的核心差异及典型应用场景
如何通过 DMA 减少 CPU 在数据传输中的负载
系统时钟树配置对低功耗设计的意义是什么
嵌入式操作系统(如 FreeRTOS)中任务的状态有哪些?状态切换条件
实时操作系统(RTOS)的 “硬实时” 与 “软实时” 区别,举例说明
实时操作系统(RTOS)的任务调度策略有哪些?如何保证实时性?
描述 VxWorks 与 uC/OS - II 的主要区别及适用场景。
任务间通信方式(信号量、消息队列、管道)的适用场景及优缺点。
进程间通信的 8 种方式及其适用场景(如管道、消息队列、共享内存等)。
任务堆栈大小的估算方法及调试技巧。
如何检测栈溢出?嵌入式系统中栈分配的策略
解释 “自旋锁” 与 “互斥锁” 的区别,嵌入式场景中的选择依据
自旋锁与互斥锁的区别?哪种更适合高优先级任务频繁抢占的场景?
解释优先级反转问题及解决方案(如优先级继承)
malloc 与 free 的使用注意事项,malloc (0) 的行为是什么?
realloc 函数可能引发的内存问题?如何安全使用?
解释内存碎片问题,嵌入式系统中如何优化动态内存分配?
解释 “野指针” 与 “内存泄漏” 的调试方法。
什么是内存对齐?如何通过 #pragma pack 指令控制结构体内存布局?
嵌入式系统中 ROM 与 RAM 运行模式的区别?代码段与数据段如何分配?
在纯 ANSI C 环境下,如何将绝对地址 0x67a9 的整型变量赋值为 0xaa66?
对整型变量 a,编写代码设置其 bit 3,并清除 bit 3(保持其他位不变)
静态全局变量与普通全局变量的区别?静态函数的作用域如何限制?
如何避免中断服务程序(ISR)中的竞争条件?
中断服务函数(ISR)的设计原则?为何要避免在 ISR 中执行复杂逻辑?
机器人运动控制中,如何通过 PID 算法实现电机精准调速?参数整定方法。
多传感器融合(如 IMU、激光雷达)在机器人定位中的实现难点。
字符设备驱动开发的基本流程(从注册设备到用户空间交互)
如何通过设备树(Device Tree)描述硬件资源?举例说明节点定义。
如何优化嵌入式代码的功耗(从硬件选型、时钟配置、休眠策略等多角度分析)?
解释 “可重入函数” 与 “线程安全” 的区别,C 标准库函数是否可重入?
解释 PWM 的工作原理,如何通过定时器实现占空比调节?
死锁的四个必要条件是什么?如何通过银行家算法避免死锁?
信号量的作用是什么?如何实现生产者 - 消费者模型?
设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程
看门狗是嵌入式系统中一种用于监测系统运行状态的机制,当系统出现故障时,它可以自动触发复位操作,使系统恢复正常运行。以下是一个带看门狗的嵌入式系统的