CVTE - 嵌入式软件开发工程师(Linux方向)- 面经(12)

❗❗如果本文对您有帮助,请不要吝啬您的评论、点赞、收藏与小花,这对我非常重要!谢谢!❗❗

alt

部分内容为牛客其他同学分享,单击小标题即可跳转至对应链接

如果侵犯了您的权益,请与我取得联系,我将立刻删除对应部分

-1、背景

职位:嵌入式软件开发工程师(Linux方向)

项目:2025 届校园招聘提前批

岗位职责:

嵌入式开发工程师会参与全球市场显示类产品的开发,工作包括了系统底层驱动的调试、相关功能模块的代码实现、用户交互设计和上层应用开发等内容。

  1. 负责全球市场显示类产品的系统设计、实现、优化与调试
  2. 负责产品需求分析,功能设计与代码编写
  3. 负责在嵌入式平台上的应用以及用户交互设计开发
  4. 负责客户反馈问题的处理

岗位要求:

  1. 有良好的编程基础,熟练掌握 C/C++ 语言
  2. 掌握操作系统、数据结构等软件开发必备知识
  3. 具有良好的团队协作、亲和力、乐意与人交往
  4. 有 Linux/Android 系统平台的开发经验者优先

时间线:

0701(投递) -> 0719(笔试) -> 0728(一面)-> 0801(二面)-> ✅(后续有为期一周的体验实习)

0、笔试

20240719 - CVTE - 笔试

1、面经汇总

1.1、综合面试(HR面)

基本情况面试,不涉及技术知识,具体可看 [[#2、综合面试(10min)- 20240728]]

  1. 为什么选择这个岗位
  2. 最满意的项目,怎么实现
  3. 10-15 年职业规划
  4. 理想的工作和家庭状态
  5. 接受的工作时长

1.2、专业面试(技术面)

  1. static 关键字有什么作用
  2. final 关键字的作用
  3. 虚函数和程序函数的区别
  4. 内存划分
  5. mmap 的原理,映射到哪块区域
  6. 堆存的什么,如何扩展堆的内存大小
  7. 宏定义和函数
  8. C 和 C++ 的区别
  9. C 语言的文件操作,fopen 和 open 的区别
  10. C++ 的三大特性
  11. 重写和重载的区别
  12. 模板
  13. STL 容器,list 对应的数据结构
  14. C++ 中怎么使用 C 语言的库
  15. 大端存储小端存储
  16. 交叉编译原理,makefile
  17. 中断流程,区分硬中断和软中断
  18. I2C 原理,如何保证数据的准确性
  19. 串口通信,如何保证通信成功。波特率修改
  20. 进程和线程的区别
  21. 进程的创建和销毁
  22. 判断父进程与子进程
  23. 父进程比子进程先死,子进程会变成什么(没爸爸了,孤儿)
  24. 线程的创建和销毁
  25. Linux 操作系统常用指令
  26. 查看物理内存
  27. TCP 传输协议,客户端与服务端的编写流程
  28. listen 是阻塞的还是非阻塞的
  29. select
  30. 怎么保证客户端能够正确连接到服务端
  31. UDP 编程
  32. TCP 和 UDP 的区别
  33. 三次握手和四次挥手是什么流程
  34. 数组和链表的区别
  35. 判断环形链表
  36. 栈和队列的区别
  37. 判断循环队列是空的还是满的
  38. 排序算法例举
  39. 快速排序
  40. 介绍项目
    1. .ko 文件的加载与卸载
    2. 音频部分的开发做了什么工作
    3. 开发流程
    4. 音频编解码
    5. 项目开发完成后,是否存在一些遗留问题
  41. 本科生与研究生的生活是怎么过的
  42. 如何平衡研究工作与私下生活
  43. 未来发展
  44. 从事算法类的岗位和工作
  45. 工作地点和工作时间
  46. 是否忍受的长期加班的时间生活,怎么看加班10点以后常态化
  47. 工作内容和学到的内容以及期望的工作内容不匹配
  48. 手撕:给定一个字符串,将字符串中的每个单词逐个翻转

比如输入:blue is sky the
输出:the sky is blue
输入:a good example!
输出:example! good a (如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个)。

  1. 遇到的新的技术难点怎么解决
  2. 反问

  1. 进程和线程的区别
  2. 共享内存的原理
  3. 谈一谈进程通信
  4. 哪些通信方式是单向的(管道和信号),哪些需要借助内核
  5. 中断的概念
  6. 中断有传参和返回值吗,为什么
  7. 串口数据帧格式
  8. Linux 的设备:字符设备、块设备、网络设备
  9. 手撕代码:求素数
  10. volatile
  11. 对待加班看法,职业规划等等
  12. Linux 的一些基本命令(ifconfig、touch、vim等)

  1. 自我介绍
  2. 三极管和 MOS 管如何识别
  3. 链表和数组的区别
  4. 常用的数据结构有哪些
  5. 一个物品开 3 个线程,100 个物品开多少个线程
  6. 什么是线程池、select 和 epoll 的区别
  7. GPIO 口配置分为那几种
  8. 如何处理按键误触
  9. 如何开一个新线程
  10. C 语言分配内存有几种方式
  11. C++ 分配内存
  12. new 和 malloc 区别
  13. 如何判断堆栈内存大小
  14. 如何证明函数栈大小
  15. 进程间通信的方式
  16. 用户态的函数向内核态调用主要有几种方式
  17. 什么是系统调用
  18. 排序算法的时间复杂度
  19. 内存比较吃紧用那种排序算法
  20. 什么是 shell 脚本
  21. Linux 中软连接和硬连接
  22. 在 Linux 中如何查找指定后缀的进程名称
  23. 解释一下 I2C 协议中止信号
  24. Socket 滑动窗口
  25. 一个服务端对应多个客户端机制
  26. 断点传输
  27. 手撕:C 语言实现链表的逆序排序不能用递归(可以用二分法实现)

  1. 自我介绍
  2. 你怎么理解嵌入式,嵌入式对你来说意味着什么
  3. 项目介绍
  4. 电容屏的驱动是自己写的吗,怎么写的
  5. 我看你第一个项目是偏应用层一点,为什么想要做底层
  6. 说一下 SPI 和 I2C 的时序以及特点、选用场景、区别
  7. 自电容和互电容
  8. 你在做项目的过程中有考虑过抗电磁干扰(抗静电干扰)
  9. 技术栈有哪些
  10. Linux 你常用什么命令,用的都熟吗
  11. 如果要你在 Linux 中使用命令找出 “xxx” 前缀的文件,该怎么找呢?
  12. 怎么查看当前所有进程、内存占用量怎么查看
  13. 我看你写过驱动,详细描述下驱动是咋写的呢
  14. 手写几个指针数组、数组指针、引用
  15. 常量指针和指针常量
  16. 共享屏幕,看 IDE 环境,看项目触摸驱动代码部分,询问是否使用联合体
  17. 反问:
    1. 什么时候出结果?(大概3、4天)
    2. 后续流程?(本轮面试通过要去公司实习一周再决定是否录用)
    3. 培养制度?

  1. 自我介绍
  2. 问做驱动还是应用
  3. LCD 驱动的编写过程(简历上的)
  4. 驱动的匹配机制
  5. Linux的启动过程
  6. 设备树
  7. 设备树是为了解决什么问题
  8. 输入子系统

2023.10

  1. 自我介绍
  2. 什么时候开始学 Linux 的
  3. 最近在看什么书
  4. 你是怎么学习 Linux 的
  5. 学了什么开发板
  6. 更倾向于驱动还是应用
  7. Uboot 之前是什么
  8. 开发板的启动流程是什么
  9. Uboot 中的步骤
  10. 你编写代码的流程是怎么样的
  11. C++ 移动构造函数和复制构造函数的区别
  12. 常用的 Linux 命令
  13. Linux find 命令所需要的参数,如果在 find 之后执行删除操作呢?
  14. 你有用过锁吗,用的最多的是什么锁,读写锁有了解过吗
  15. C++ 浅拷贝和深拷贝
  16. C++ 如何避免浅拷贝
  17. C++ 多态
  18. C++ vector/list/map 介绍一下异同
  19. C++ 创建一个类的时候,默认生成的函数是什么
  20. 如何创建一个线程?需要什么参数?
  21. 如何创建一个进程?
  22. 进程和线程的区别
  23. 进程在什么时候会崩溃
  24. 如何调试进程的崩溃
  25. 手撕:字符串转换为数字

  1. 自我介绍
  2. 项目介绍
  3. 编译运行过程中常用的调试手段
  4. 嵌入式开发有哪些特点,限制,有哪些需要注意的地方
  5. 传输 float 数据,怎么设计
  6. float 数据可以移位吗?
  7. 中断的概念和优缺点、什么是时候使用软中断
  8. 一个函数,在 main 和中断中都要同时调用,这个函数要做什么设计?
  9. 一个全局变量 a,在 main 和中断中要传递数据,这个变量要注意什么问题?
  10. volatile 的本质以及作用有哪些?
  11. 串口波特率有用过更大的传输速度吗? 串口传的数据包的格式?
  12. GPIO的工作模式有哪些?实际使用的例子举例说明

  1. Linux 和 Windows 的换行符有什么不同
  2. I2C 设备的地址多少位 (7/10)
  3. I2C 读时序
  4. 宏函数定义写一个交换数据 不能用 temp
  5. 宏定义写循环
  6. UART 怎么确定数据正确性
  7. TCP 中大端小端的问题
  8. 了解 Shell 脚本吗?写过什么?
  9. ABC 类网络分类
  10. 了解多线程多进程吗?怎么写多进程编程?
  11. 假如中断函数要返回一个值,怎么写?
  12. 用过 fgets 等读取文件的函数吗?
  13. open 函数传入什么参数?什么模式?参数怎么写?
  14. 有没有试过用 USB 等给 IO 设备等写数据?
  15. 给你一个不联网的电脑 怎么找关于 grep 的用法?
  16. TCP、UDP 异同?函数?
  17. I2C 的特点?速度?硬件软件 I2C 有什么异同?
  18. 中断要传入什么参数?中断可以有返回值吗?
  19. 堆栈的区别?内存不 free 会怎样?
  20. 若栈的长度较小有什么注意事项
  21. 程序还可以存放在哪里
  22. 链表和顺序表的区别?
  23. 怎么确定该用链表还是数组
  24. 反问

25分钟

  1. TCP/IP 协议讲一下
  2. 用过哪些基于 TCP/IP 协议的,例如抓包啥的?
  3. 项目介绍
  4. 了解哪些设计模式?
  5. Linux 内核空间与用户空间的区别?通信方式?
  6. Linux 中堆栈的区别?
  7. 回调函数了解吗?
  8. 了解哪些 Linux 驱动模型,讲一下?
  9. 讲一下外设总线,I2C、SPI、UART ?
  10. 内核同步机制有哪些?

  1. 怎么理解嵌入式,嵌入式的概念
  2. 写自己的驱动,做修改和功能怎么确保在目标板正常运行
  3. 编译运行过程中常用的调试手段
  4. 开发功能时,嵌入式开发有哪些特点,有哪些限制,有哪些需要注意的地方
  5. 除了串口,还了解哪些?
  6. 传输 float 数据,怎么设计,四个字节?
  7. 两边大小端不一致怎么办?
  8. float 数据可以移位吗?
  9. 中断的概念?
  10. 中断的优缺点是什么?
  11. 软中断的概念?写代码什么时候用软中断?
  12. 软中断和函数调用的区别?
  13. 一个函数,在 main 和中断中都要同时调用,这个函数要做什么设计?
  14. 一个全局变量 a,在 main 和中断中要传递数据,这个变量要注意什么问题?
  15. volatile 的本质以及作用有哪些?
  16. 串口波特率有用过更大的传输速度吗?
  17. 串口传的数据包的格式?是自己定义的吗?
  18. 串口发送数据量比较大的时候或者传输比较频繁的时候,怎么保证每个包的数据完整?
  19. GPIO 的工作模式有哪些?用过哪几种?
  20. I2C 需要几根线?分别是什么线?
  21. I2C 优势有哪些?
  22. I2C 总线可以挂多少个从设备?

十一

50 分钟左右

  1. 自我介绍
  2. 职业规划,以前在那家公司为什么不继续做
  3. 手撕:字符串分割,程序检错
  4. pritnf() 底层实现原理,是如何打印到控制台上的
  5. newmalloc 的区别(内存分配,分配位置,返回值类型等)
  6. 数组和指针的区别
  7. Linux 下创建子进程的方式,创建进程的 API 函数
  8. 介绍下 Linux 下创建线程的方式,以及创建线程的 API 函数
  9. Linux 下的内核空间和用户空间有什么区别,内核空间为什么要和用户空间隔离
  10. ARM+Linux 的嵌入式开发板是如何启动的,Linux 是如何跑在 ARM 开发板上的
  11. Linux 中文件系统是如何启动的?挂载文件系统时步骤?如何挂载?
  12. U-boo t如何引导启动?
  13. 什么是多态?如何实现多态?
  14. 项目演示(问项目技术实现,算法原理)
  15. 反问

2、综合面试(10min)- 20240728

基本情况面试,无任何技术知识

  1. 还在学校?最近找工作进展如何?
  2. 都是投的嵌入式方向的工作吗?
  3. 为啥会选择嵌入式这个方向?
  4. 过往你经历过的一个最有技术难度或者挑战性的项目是什么?
  5. 当时遇到的具体难点是什么?
  6. 项目中你还有哪些遗憾吗?觉得还有能做的更好地方?
  7. 你最近一次意见或者观点跟身边的人有不一致是什么时候?
  8. 做项目的时候会出现大家观点不一致的时候吗?
  9. 遇到过什么不太公平的事情吗?
  10. 过往压力最大的时间是什么时候?
  11. 这段时间状态会和现在有什么不一样吗?
  12. 你性子比较着急还是比较慢?
  13. 对未来求职的工作地点,时间长度,薪资有什么要求?
  14. 未来十年之后你自己理想的生活和工作状态是什么样子的?
  15. 为什么会想做领导?

3、专业面试(40min)- 20240801

  1. 自我介绍
  2. 项目介绍
  3. 画图板和音乐播放器怎么实现的?
  4. 音乐播放器如何实现拖动进度条改变音乐进度?
  5. UBoot 启动流程
  6. Linux Kernel 和设备树如何加载到 CPU RAM 中的?
  7. bootargs 参数里面一般都有什么内容?
  8. 进程和线程的区别?
  9. GPIO 有哪几种模式?
  10. I2C 能挂载多少个设备?
  11. 手撕:用 C 实现自己的 memcpy() 函数?(写出来后让再换一种高级写法)
  12. 项目里面最难忘的一个问题是什么?怎么解决的?
  13. 中断能不能传递参数
#CVTE##嵌入式软件##面试#

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。//即将开始更新八股知识,预计增加12篇左右文章,内容涵盖C/C++基础、嵌软常见通信协议、ARM、FreeRTOS、Linux OS相关问题汇总,本人能力有限,虽不能100%涵盖,但面试可以。

全部评论
CVTE这么拉胯了吗,全是八股,项目基本没拷打
点赞 回复 分享
发布于 02-16 20:53 湖北

相关推荐

发邮件催了,网上喷CVTE的不少,感觉这公司。。。还是要注意点影响吧,都不敢去的感觉。当然人家可能看不上我。20道选择,2道编程,1道视频题20道选择前几道是单选,后面是多选,通过选项前面是圈圈和方框可以判断是单选还是多选。范围涉猎很广,linux、单片机、iic、uart通讯,交叉编译啥的都有以下是通过本次笔试记录下的相关知识点。帮住记忆与复习。1.Linux中可以查看内存使用情况的指令cat /proc/meminfo选项还有其他的文件和指令组成的干扰选项,好像有个 vi /proc/meminfo ,,这么说也可以?补充:  free -h2.嵌入式系统中断函数,有返回值吗,可以传递参数(形参,实参)吗无返回值,不可以传递参数 3.ARM的寻址方式  多选立即寻址 、寄存器间接寻址、相对寻址等4.SRAM和DRAM的区别功耗、存储密度、性能速度、成本什么的SRAM(静态随机存取存储器)和DRAM(动态随机存取存储器)SRAM: 触发器存储,不需要定期刷新  速度快    功耗高    成本高  小容量   常用于计算机CPU高速缓存DRAM: 电容存储,需要定期刷新        速度较快 功耗稍低 成本低 容量大    适用于大容量存储需求5.通讯协议之类的uart是全双工SPI的最大速度            IIC什么的,最大速度,写只能100k6.这个没太懂, 字长为32位,存储容量位256MB,按字长编址,寻址范围是多少?哦哦,是不是存储容量256MB,一个字长为32 ,就是4B,也就是一个地址对应位置存储256/4 = 64那就是了,题目一开始有点没看懂。7、GPIO的特性?什么方向和速度什么的可以接SDRAM,高速通信吗  NO8.单片机定时器控制的寄存器 多选TMOD、TCON我记得是这两,选的也是这两  TMOD工作模式选择TCON控制定时器的启动、停止、中断请求标志。9、嵌入式系统在宿主机上开机,目标机上运行需要什么环境交叉编译10、中断的中断优先级,会不会打断,抢占什么的用户程序可以打开中断接收中断向量吗中断会使程序进入内核态?判断正确,中断是会让程序进入内核态吧,好像用户程序无法直接打开中断什么的?由内核完成。11、设置绝对地址0x1234的整型数值为0x5678正确的方式给了些指针,和赋值语句比较简单,分的清哪个是地址,哪个是值就可以选出,多选*(int*) 0x1234 = 0x5678;好像这样就可以,他还有涉及到const一些东西const修饰指针,指针指向不可变吧,常量指针12、4个io口,电平为0或1,最多可以扫描多少个按键按键矩阵好像就是四个口,16其他一些不记得了编程题1.两个字符串  Src  Des,记录两字符串种的,大小写字母,数量Des中的大小写字母是否满足组成Src中的字符,满足输出True不满足输出False  考虑两个因素(大小写,数量)2.找商人you 出发, you有很多朋友,节点,朋友也有节点先找你的朋友,如果你朋友中没有商人,就再从你朋友中找直到找到那个商人,商人的特点是名字结尾是‘M’挺模棱两可的,给出的图和节点名字都是小写,有个小写m,所以不知道是不是题目打错了。。。能说会道视频题static关键字的作用,运用场景有哪些。就是给你题目 ,你有两分钟准备和构思两分钟后开始视频录制, 你对着摄像头回答问题时间有五分钟,可以提前结束。static 申明静态变量静态局部变量静态全局变量静态函数静态类成员变量#牛客AI配图神器#
投递CVTE等公司9个岗位
点赞 评论 收藏
分享
一共一个小时多一点点,两个面试官轮流进来,面试体验一般。中间问了很久的英语**面试官1:**1.上来就说我们公司做蓝牙,wifi的,不做Linux也不用高性能板子方向可能不是很匹配(我直接懵了,什么意思?)2.讲一下第一个项目3.讲一下第二个项目4.讲完了他说都是linux,有没用过简单一点的51 32板子,然后我说第三个项目是32的5.怎么移植的freertos,步骤是什么6.了解wifi 蓝牙吗(我说蓝牙之前有使用过,比较久了)7.然后就问了一下编程能力怎么样,我说还可以C/C++比较熟练8.然后问对他们公司有什么了解(我提前查过了,就说了啥,他也跟着说了说)9.然后问英语怎么样?(我说口语一般,读写看没问题,之前的一段工作经历,就是纯英文办公的)10.Please introduce you self? (自我介绍)11.What is your favorite sport (喜欢的运动)12.What are your strengths and weaknesses (优点和缺点)13.我优点英文说的,缺点我就说的中文,比较较真,比较执着,有时候可能就钻了牛角尖。然后追问我那你怎么就不执着了 (我????)14.反问**面试官2:**1.自我介绍2.讲一下实习干了啥3.BMS这个项目介绍一下4.你使用了哪些硬件外设5.你说你用gpio模拟了i2c,怎么做的,为什么要这样做6.STM32的采样率和采样深度是多少7.rtos都做了哪些工作8.怎么配置rtos9.你说你做了保护功能,怎么保护的(解释看电压啥的)10.监测功能主要是监测什么东西11.gpio灯是咋控制的12.rtos都做什么工作了13.充电放电是怎么处理的,什么时候就认为满了14.充放电的曲线你知道是什么样子吗15.音视频同步怎么实现的16.时间基 时间戳能不能详细说说17.怎么进行推流的,网络呢还是别的啥的18.说了rtmp,这个协议有啥特点呢19.最大的困难,怎么解决的,怎么排查的20.让用英文解释一个最熟悉的项目22.还有没有使用过别的开发板,我说有用过esp32啥的23.讲一下蓝牙协议24.反问
点赞 评论 收藏
分享
评论
11
125
分享

创作者周榜

更多
牛客网
牛客企业服务