根据面经准备面试第四期-2026经纬恒润嵌入式软开

1.传感器和mcu通信(i2c)

2.gpio设置开漏输出还是推挽输出,为什么设置开漏输出

3.调试i2c遇到什么困难,主机怎么和不同从机通信

4.adc采集多少位12bit参考电压

5.定时器打开的流程

6.spi协议介绍,主从spi通信、除了时钟频率还有哪些要注意

7.tcp哪些特征支持稳定可靠、三次握手、四次挥手,在数据传输过程中、怎么避免丢包

8.多个。c文件需要共同引用一个。h文件,怎么避免重复引用

9.static是否用static修饰函数区别

10.进程间通信有哪些方法,线程间通信

11.volatie

12、memcpy底层怎么实现的

13、进程和线程的区别

14.const和define区别

15.编译四个阶段

16.bss和data区别

17全局变量和局部变量区别

18.堆栈溢出怎么办

19.内联函数

1.传感器和mcu通信(i2c)

通过SCL(时钟线)和SDA(数据线)进行半双工同步通信,支持多从机设备,通过地址寻址。

2.gpio设置开漏输出还是推挽输出,为什么设置开漏输出

开漏输出可避免总线冲突,支持线与功能,适用于I2C等总线协议;推挽输出适用于高速高低电平切换场景。

开漏输出,i2c总线是多主多从架构,有多个器件可能同时拉低sda/scl,

如果用推挽输出,一个器件拉高、一个器件拉低、会造成总线短路,有烧毁风险

开漏输出+上拉电阻,只负责拉低,释放时候交给上拉电阻拉高,保证总线安全

3.调试i2c遇到什么困难,主机怎么和不同从机通信

可能遇到时序冲突或地址错误;主机通过发送不同从机地址(7/10位)选择通信对象。

4.adc采集多少位12bit参考电压

12位分辨率,参考电压通常为MCU供电电压(如3.3V)或外部基准源,决定采集电压范围。

5.定时器打开的流程

配置时钟源→设置分频系数→加载计数值→开启中断(可选)→启动定时器。

1.开启定时器时钟、先打开定时器对应的外设时钟、

2.配置定时器参数、计数模式、向上计数

6.spi协议介绍,主从spi通信、除了时钟频率还有哪些要注意

全双工同步通信,主从模式通过CS片选;除时钟频率外,需注意模式(CPOL/CPHA)、数据位序(MSB/LSB)。

7.tcp哪些特征支持稳定可靠、三次握手、四次挥手,在数据传输过程中、怎么避免丢包

通过三次握手建立连接、四次挥手释放;可靠依赖序列号、确认重传、流量控制和拥塞控制避免丢包。

tcp、传输控制协议、面向连接的可靠的、基于字节流的传输层协议,用于http、ftp

三次握手/四次挥手,保证连接建立与释放的可靠性

序列号和确认号ack,保证数据有序、完整

超时重传,丢包能自动重发

滑动窗口+流量控制,避免接受端被压垮

拥塞控制,慢启动、拥塞避免

避免丢包,协议层面,tcp本身机制,序列号+确认机制,确认丢包时候会重传

超时重传机制

8.多个。c文件需要共同引用一个。h文件,怎么避免重复引用

用ifndef/define/endif,头文件保护,避免重复包含

9.static是否用static修饰函数区别

不加static,函数具有全局可见性,可以被其他。c文件调用,加了static,函数作用域仅限于当前。限制函数作用域为本文件,避免与其他文件同名函数冲突;无static的函数全局可见。c文件,外部不可见

10.进程间通信有哪些方法,线程间通信

进程/线程通信:进程间通信(IPC)包括管道、消息队列、共享内存等;线程间通信可通过全局变量、互斥锁、条件变量等

11.volatie

告知编译器变量可能被意外修改(如硬件寄存器),禁止优化,确保每次访问均从内存读取。

12、memcpy底层怎么实现的

通常按机器字长(如32位)逐字节或块复制数据,可能使用汇编优化效率。

13、进程和线程的区别

进程是资源分配单位,线程是CPU调度单位;同一进程的线程共享内存空间,进程间内存独立。

14.const和define区别

const定义类型安全常量,占用存储空间;define为预处理替换,无类型检查。

15.编译四个阶段

预处理(宏展开)→编译(生成汇编)→汇编(生成目标文件)→链接(合并库及目标文件)。

16.bss和data区别

BSS段存储未初始化全局/静态变量(清零);DATA段存储已初始化全局/静态变量。

17全局变量和局部变量区别

全局变量生命周期为整个程序,存储在静态区;局部变量限于作用域,存储在栈区。

18.堆栈溢出怎么办

检查递归深度/动态分配大小;使用静态分析工具;增加栈空间或改用堆内存。

19.内联函数

编译时将函数体直接嵌入调用处,减少函数调用开销,但可能增加代码体积。

#秋招笔面试记录##面试问题记录#
全部评论
这家好像不太友好
1 回复 分享
发布于 09-01 22:42 江苏
我是小菜
点赞 回复 分享
发布于 09-06 21:06 湖北
大佬开了吗
点赞 回复 分享
发布于 09-06 19:46 上海
佬,结果怎么样
点赞 回复 分享
发布于 09-06 16:24 湖北

相关推荐

8.22 秋招第一面,面了一小时,那会八股还是完全不熟的状态,直接裸面上了,答的非常无敌糟糕,全程汗流浃背,面完是真的快虚脱了...1. 自我介绍2. 聊目前华为实习内容之后就开始了八股盛宴😭😭😭3. 什么是中断上下文,为什么在中断处理函数中不能休眠(第一个问题我就没听清,我回答的是中断上下半部内容,被点出来后慌的我,补充说的也不是很好)4. 继续问什么是进程上下文(那会完全不了解)5. 介绍DMA(只点到了概念的大概意思),继续追问是什么驱使我用DMA而不是CPU6. 如果遇到IIC读写错误的问题,你会怎么排查7. 如果一个当驱动模块发生panic时,如何调试(没遇过,只回答了日志抓取),继续问有没有做过rundump或者kkdump?8. 有无用过中断下半部的工作队列和Tasklet(没用过,那会我连tasklet是什么都不知道😰)9. 在工作队列中可以休眠吗10.工作队列是工作在进程上下文还是中断上下文(这一块那时的我依旧完全不了解)11.驱动能直接访问用户空间的内存吗(默认不能),那如何实现间接访问(我只了解用户访问驱动的那套流程,反过来的实现完全不了解😇,后面面试官告诉我Linux有提供专门的内核函数copy_from_user/copy_to_user)12.c和c++哪个熟13.介绍c++的RAII机制,追问实现自动释放内存的原理,动态管理内存的底层逻辑是?14.介绍一下多态,虚函数表是干嘛的(多态和继承那块我是真的经不起问,一问一个不知道)15.介绍堆栈的区别16.有没有分析过内存泄露的问题17.介绍一下之前用gdb调试的经历18.有没有用gdb调试过踩内存的问题(🈚)19.什么是优先级反转(又一个当时完全不知道的问题...)20.线程间有哪些同步机制,怎么解决并发竞争的问题21.进程间的通信方式有哪些22.谈谈你遇到过的印象深刻的技术难题23.问我自学看了哪些书(Linux设备驱动开发详解、c++ primer…)有什么收获24.有接触过Linux启动这块吗25.反问就是现在的我回头再复盘这一面,依旧还是心累的😥😥秋招第一面直接来了个巨大暴击,一下就看到了很多不足,那会给我的直观感觉就是,是真的要把重心放到秋招面试的准备上来了,原本还打算九月底才结束暑期实习,那会当场就决定必须得早点all in秋招。之后就开始猛猛整理操作系统和c++的八股,无缘了影石,但这场面试非常的有用!
查看24道真题和解析
点赞 评论 收藏
分享
评论
13
75
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务