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

news2024/11/6 4:18:46

文章目录

  • -1、背景
  • 0、笔试
  • 1、面经汇总
    • 1.1、综合面试(HR面)
    • 1.2、专业面试(技术面)
      • 十一
  • 2、综合面试(10min)- 20240728
  • 3、专业面试(40min)- 20240801


-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. 中断能不能传递参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划 —— dp问题-按摩师

1. 按摩师 题目链接: 面试题 17.16. 按摩师 - 力扣(LeetCode)https://leetcode.cn/problems/the-masseuse-lcci/description/ 2. 算法原理 状态表示:以某一个位置为结尾或者以某一个位置为起点 dp[i]表示:选择到i位置…

python爬取旅游攻略(1)

参考网址: https://blog.csdn.net/m0_61981943/article/details/131262987 导入相关库,用get请求方式请求网页方式: import requests import parsel import csv import time import random url fhttps://travel.qunar.com/travelbook/list.…

C++设计模式创建型模式———原型模式

文章目录 一、引言二、原型模式三、总结 一、引言 与工厂模式相同,原型模式(Prototype)也是创建型模式。原型模式通过一个对象(原型对象)克隆出多个一模一样的对象。实际上,该模式与其说是一种设计模式&am…

基于STM32的智能温室环境监测与控制系统设计(代码示例)

一、项目概述 在现代农业中,智能大棚能够通过环境监测、数据分析和自动控制等技术手段,实现对作物生长环境的精细化管理。本项目旨在设计一个基于STM32单片机的智能大棚系统,能够实时监测光照强度、空气温湿度及土壤湿度,并根据设…

(五)Web前端开发进阶2——AJAX

目录 1.Ajax概述 2.Axios库 3.认识URL 4.Axios常用请求方法 5.HTTP协议——请求报文/响应报文 6.HMLHttpRequest对象 7.前后端分离开发(接口文档) 8.Element组件库 1.Ajax概述 AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。…

进程信号——信号的保存

信号的概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注意,阻塞和忽略是不同的,只要信号…

基于SSM的“房屋租赁系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“房屋租赁系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SSM,JSP 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 房屋租赁系统首页 管理员后台管理页面 报告故障管…

无需懂代码!用AI工具Bolt一键生成网站的入门指南!

​ ​ 随着AI技术的不断发展,许多原本需要技术门槛的操作正在被大大简化,甚至零基础的用户也可以轻松实现。 例如,AI生成网站工具Bolt就是这样一个可以帮助我们快速创建、实时预览并自动部署网站的平台。接下来,本文将带你深入了…

Elasticsearch中时间字段格式用法详解

Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能,广泛…

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“,改变轻提示宽度

关于我的编程语言——C/C++——第四篇(深入1)

(叠甲:如有侵权请联系,内容都是自己学习的总结,一定不全面,仅当互相交流(轻点骂)我也只是站在巨人肩膀上的一个小卡拉米,已老实,求放过) 字符类型介绍 char…

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜:解法一:解法二: CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中,允许未经认证的远程攻击者通过特定 API 端…

AI 写作(一):开启创作新纪元(1/10)

一、AI 写作:重塑创作格局 在当今数字化高速发展的时代,AI 写作正以惊人的速度重塑着创作格局。AI 写作在现代社会中占据着举足轻重的地位,发挥着不可替代的作用。 随着信息的爆炸式增长,人们对于内容的需求日益旺盛。AI 写作能够…

快速构建数据产品原型 —— 我用 VChart Figma 插件

快速构建数据产品原型 —— 我用 VChart Figma 插件 10 种图表类型、24 种内置模板类型、丰富的图表样式配置、自动生成图表实现代码。VChart Figma 插件的目标是提供 便捷好用 & 功能丰富 & 开发友好 的 figma 图表创建能力。目前 VChart 插件功能仍在持续更新中&…

源鲁杯 2024 web(部分)

[Round 1] Disal F12查看: f1ag_is_here.php 又F12可以发现图片提到了robots 访问robots.txt 得到flag.php<?php show_source(__FILE__); include("flag_is_so_beautiful.php"); $a$_POST[a]; $keypreg_match(/[a-zA-Z]{6}/,$a); $b$_REQUEST[b];if($a>99999…

【ArcGIS】绘制各省碳排放分布的中国地图

首先&#xff0c;准备好各省、自治区、直辖市及特别行政区&#xff08;包括九段线&#xff09;的shp文件&#xff1a; 通过百度网盘分享的文件&#xff1a;GS&#xff08;2022&#xff09;1873 链接&#xff1a;https://pan.baidu.com/s/1wq8-XM99LXG_P8q-jNgPJA 提取码&#…

C++《list的模拟实现》

在上一篇C《list》专题当中我们了解了STL当中list类当中的各个成员函数该如何使用&#xff0c;接下来在本篇当中我们将试着模拟实现list&#xff0c;在本篇当中我们将通过模拟实现list过程中深入理解list迭代器和之前学习的vector和string迭代器的不同&#xff0c;接下来就开始…

讲讲⾼可用的原则?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲⾼可用的原则&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲讲⾼可用的原则&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在当今信息化时代&#xff0c;随着互联网技术的快速发展&#xff0…

003-Kotlin界面开发之声明式编程范式

概念本源 在界面程序开发中&#xff0c;有两个非常典型的编程范式&#xff1a;命令式编程和声明式编程。命令式编程是指通过编写一系列命令来描述程序的运行逻辑&#xff0c;而声明式编程则是通过编写一系列声明来描述程序的状态。在命令式编程中&#xff0c;程序员需要关心程…

Ubuntu 20.04 部署向量数据库 Milvus + Attu

前言 最开始在自己的办公电脑&#xff08;无显卡的 windows 10 系统&#xff09; 上使用 Docker Desktop 部署了 Milvus 容器&#xff0c;方便的很&#xff0c; 下载 Attu 也很方便&#xff0c;直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来&#xff0c;使用起来感…