校招 未知部门 / 硬件工程师 / 未知轮次

[面试日期] 2026-01-12 [面试时长] 未知
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>补发一篇 秋招小米的面经,附自己的复盘解答</h2> <h4>1. 进程和线程的区别?</h4><p><span>进程是程序的一次执行实例,拥有独立的地址空间和系统资源;</span></p><p><span>线程是进程内的执行单元,多个线程共享所属进程的资源,但各自拥有独立的栈和寄存器状态。</span></p><p><span>区别:进程间隔离性强、开销大;线程轻量、通信高效,但需同步机制保障安全。</span></p><h4>2. 什么是死锁?如何预防?</h4><p><span>死锁是多个进程/线程互相等待对方释放资源。</span></p><p><span>预防:按固定顺序加锁、避免持有并等待、使用超时机制。</span></p><h4>3. STM32的GPIO有哪几种工作模式?</h4><p><span>输入(浮空/上拉/下拉)、输出(推挽/开漏)、复用功能、模拟模式。</span></p><h4>4. volatile关键字作用?</h4><p><span>告诉编译器该变量可能被外部(如硬件、中断)修改,禁止优化,每次必须从内存读取。</span></p><h4><span>5. 堆和栈的区别?</span></h4><p><span>栈由系统自动管理,速度快但容量小;</span></p><p><span>堆需手动分配(malloc/new),灵活但易泄漏、速度慢。</span></p><h4>6. TCP和UDP区别?</h4><p><span>TCP面向连接、可靠、有序;</span></p><p><span>UDP无连接、不可靠、低延迟,适用于音视频等实时场景。</span></p><h4>7. 什么是三次握手?</h4><p><span>Client发SYN → Server回SYN+ACK → Client发ACK,建立可靠连接,防止历史请求干扰。</span></p><h4>8. I2C和SPI的区别?</h4><p><span>I2C:两线(SDA/SCL)、半双工、多主多从、速度慢;SPI:四线(MOSI/MISO/SCLK/CS)、全双工、主从结构、速度快。</span></p><h4>9. 为什么析构函数要声明为虚函数?</h4><p><span>确保通过基类指针删除派生类对象时,能正确调用派生类析构函数,避免资源泄漏。</span></p><h4>10. new 和 malloc 的区别?</h4><p><span>new 是C++操作符,调用构造函数、类型安全;malloc 是C函数,只分配内存,返回void*。</span></p><h4>11. 什么是看门狗?作用?</h4><p><span>看门狗是硬件定时器,程序需定期“喂狗”,否则超时复位,用于防止系统死锁。</span></p><h4>12. RTOS的任务调度方式?</h4><p><span>优先级调度(高优先执行)、时间片轮转(同优先级轮流执行),支持抢占。</span></p><h4>13. Linux设备节点在哪?</h4><p><span>在 /dev 目录下,如 /dev/ttyS0、/dev/mmcblk0。</span></p><h4>14. 常量存储在哪个内存区?</h4><p><span>字符串字面量等常量存放在只读数据段(常量区),程序结束由系统回收。</span></p><h4>15. 硬链接和软链接区别?</h4><p><span>硬链接共享inode,不能跨文件系统;</span></p><p><span>软链接是独立文件,指向路径,可跨文件系统。</span></p><h4>16. 中断和异常的区别?</h4><p><span>中断来自外部硬件(异步),异常由CPU内部错误或指令触发(同步)。</span></p><h4>17. C程序编译四阶段?</h4><p><span>预处理 → 编译 → 汇编 → 链接。</span></p><h4>18. static的作用?</h4><p><span>限制作用域(文件内)或延长生命周期(局部静态变量),类中表示共享成员。</span></p><h4>19. 大小端是什么?网络用哪种?</h4><p><span>大端:高位存低地址;</span></p><p><span>小端:低位存低地址。网络字节序为大端。</span></p><h4>20.如何查看Linux系统性能?</h4><p><span>用 top、htop、free -h、iostat、vmstat 等命令监控CPU、内存、IO等。</span></p><h4>21.C/C++程序内存分布情况,常量所在的区 </h4><p><span>C/C++程序内存分为五区:栈(局部变量)、堆(动态分配)、全局/静态区(全局和static变量)、常量区(字符串字面量、const全局/静态变量,只读)、代码区(函数机器指令)。</span></p><p><span>其中常量(如 &quot;hello&quot;、const char* p = &quot;...&quot; 中的字符串)存储在常量区,程序结束时由系统释放。</span></p><p><span></span></p><h2>嵌入式软件工程师面试完全指南</h2><p>面经一共3<strong>2篇文章,12w+字数</strong>,包含全部最新的面试必问考点,<strong>4.7w+同学学习,2800+订阅</strong>,非常适合在找工作面经薄弱的同学,3200+订阅还会涨价,提前订阅提前享受,持续更新中。</p><p>原帖链接:<a href="https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fgw-c.nowcoder.com%2Fapi%2Fsparta%2Fjump%2Flink%3Flink%3Dhttps%253A%252F%252Fgw-c.nowcoder.com%252Fapi%252Fsparta%252Fjump%252Flink%253Flink%253Dhttps%25253A%25252F%25252Fgw-c.nowcoder.com%25252Fapi%25252Fsparta%25252Fjump%25252Flink%25253Flink%25253Dhttps%2525253A%2525252F%2525252Fgw-c.nowcoder.com%2525252Fapi%2525252Fsparta%2525252Fjump%2525252Flink%2525253Flink%2525253Dhttps%252525253A%252525252F%252525252Fgw-c.nowcoder.com%252525252Fapi%252525252Fsparta%252525252Fjump%252525252Flink%252525253Flink%252525253Dhttps%25252525253A%25252525252F%25252525252Fgw-c.nowcoder.com%25252525252Fapi%25252525252Fsparta%25252525252Fjump%25252525252Flink%25252525253Flink%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fgw-c.nowcoder.com%2525252525252Fapi%2525252525252Fsparta%2525252525252Fjump%2525252525252Flink%2525252525253Flink%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Fgw-c.nowcoder.com%252525252525252Fapi%252525252525252Fsparta%252525252525252Fjump%252525252525252Flink%252525252525253Flink%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fgw-c.nowcoder.com%25252525252525252Fapi%25252525252525252Fsparta%25252525252525252Fjump%25252525252525252Flink%25252525252525253Flink%25252525252525253Dhttps%2525252525252525253A%2525252525252525252F%2525252525252525252Fwww.nowcoder.com%2525252525252525252Fcreation%2525252525252525252Fmanager%2525252525252525252FcolumnDetail%2525252525252525252FMJNwoM">https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM</a></p>
AI 推荐面试题