433 Linux 启动过程中,BootLoader(U-Boot)主要负责哪些工作?典型启动流程是什么?U-Boot 如何加载内核和设备树并跳转到内核?考察候选人对嵌入式Linux启动链路的整体理解,包括BootLoader职责、启动阶段划分以及内核与设备树的加载跳转机制。 查看学习思路
434 什么是原子操作?它解决了什么问题?Linux 中常见的原子操作有哪些?原子操作适合保护一组复杂操作吗?如果不适合,应该用什么?考察对原子操作语义、适用边界及替代同步机制的理解,判断候选人能否正确选择并发保护手段。 查看学习思路
435 在单核 CPU 上,如果当前正在执行低优先级任务,此时高优先级实时任务进入就绪态,CPU 会如何调度?如果当前处于禁止抢占、关中断或不可抢占临界区,会发生什么?考察对单核实时调度、抢占时机以及禁止抢占/关中断对调度延迟影响的理解。 查看学习思路
436 Tasklet 执行过程中如果需要访问共享数据,应该如何保证临界区安全?为什么不能简单使用互斥锁?应该使用自旋锁的哪种变体?考察对软中断/tasklet 执行上下文、睡眠限制以及自旋锁变体选择的理解。 查看学习思路
443 请介绍你最近做的嵌入式项目,并说明你负责的模块边界以及与其他模块的接口约定。考察候选人能否清晰描述项目目标、硬件平台与系统架构,明确个人职责边界,并说明模块间输入输出、时序与验收标准,判断其工程闭环能力。 查看学习思路
444 如果Flash里的程序偶尔跑飞或跳到未知地址,你会如何排查?考察候选人对HardFault、复位原因、栈与向量表、链接脚本、DMA/中断破坏等底层问题的系统排查能力,以及按复现路径缩小范围的工程方法。 查看学习思路