联发科 - 软件开发工程师 - 面经(12)

alt

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

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

-1、背景

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

项目:2025秋招正式批

工作职责:

  1. Android 平台相关设备的驱动程序设计、开发与验证 ;
  2. Android 平台多媒体系统框架和驱动程序设计、开发与验证。

岗位要求:

  1. 2025届硕士毕业生,计算机、通讯、自动化及电子相关;
  2. 具有熟练的 C 语言编程能力,具备良好的 C++ 编程基础,掌握操作系统知识;
  3. 工作严谨细致, 主动性强, 具有良好的沟通能力和抗压能力;
  4. 具有以下条件者优先考虑:
    1. 熟悉Linux操作系统,有Linux driver开发经验;
    2. 具备多媒体专业背景与开发经验。

意向地:北京市

时间线:

0718(投递) -> 0730(笔试) -> 0816(一面)-> 0828(二面)-> ?

0、笔试

20240730 - 联发科 - 笔试

1、面经

1.1、一面

  1. 自我介绍
  2. 手撕:标准库函数(strcpy、strcmp、memcpy、memcmp)
  3. 手撕:翻转链表
  4. TCP 三次握手?
  5. Linux 内核空间与用户空间的区别?

  1. 自我介绍
  2. 项目
  3. 操作系统调度

20 分钟

  1. 自我介绍
  2. 拷打项目
    1. 用了哪些命令
    2. 出现问题怎么解决
    3. Linux 的内核是怎么实现之类的

  1. 自我介绍

  2. 实习里用了 SPI、I2C、UART 请描述一下工作机制或时序?

  3. I2C 总线挂载多个设备怎么处理?

  4. bootloader 更新固件的流程?(我的某个项目涉及)

  5. 介绍一下 FreeRTOS,出现长时间饥饿应该怎么处理,任务优先级反转,有哪些任务间通信机制?

  6. 了解课程,数据结构描述一种排列算法

  7. 计算机组成原理学过吗?阐述一些大概知识点(貌似对计组非常感兴趣)

  8. 对汇编和 ARM 架构的了解?(简历上写了)

50 分钟

  1. 自我介绍
  2. 项目
  3. TCP UDP 区别
  4. 驱动开发的基本流程
  5. BootLoader 启动流程
  6. 系统加载流程
  7. objdump 如何反汇编 如何查看堆栈段
  8. 系统启动会如何加载程序
  9. 工作意向岗位方向地方等

1.2、二面

主管面,35 分钟左右

  1. 自我介绍(打断了两次,问了一些问题,学生会经历、奖学金什么的)
  2. 项目:
    1. 项目介绍
    2. 遇到的难点及如何解决
    3. 挖一些细节问题
  3. 聊天:
    1. 研究生期间代码量有多少(多少行,多少个字节)
    2. 对自己code能力的评估
    3. 对联发科的了解
    4. 城市选择的优先级(给了五个城市让排序)
    5. 有没有女朋友等
    6. 反问

  1. 自我介绍
  2. 了解联发科吗
  3. 期盼什么样的生活工作
  4. 领导布置的任务怎么安排
  5. 了解产品之后的东西吗?
  6. 有什么兴趣爱好

以聊天为主

  1. 你简历有这么多奖项,你是如何获得这些成就的
  2. 在团队合作中,如果发生了争执,你怎么处理的
  3. 说一个你人生中最有创新点的地方
  4. 你周围朋友,亲戚有说过你的优点嘛,具体是什么
  5. 那你的缺点又是什么
  6. 你接受加班,你能承受的最大加班强度是多少

  1. 自我介绍
  2. 介绍项目 (挑一个最熟悉的)
    1. 做了什么
    2. 有什么难点
    3. 怎么做的
    4. 你在里面具体在从 0 到有做了什么工作
    5. 如何调研
    6. 如何解决问题
  3. 所做的项目里和计算机相关的展开说说
  4. 项目开发环境 语言
  5. Linux 的了解程度
  6. C 语言掌握和使用情况
  7. 写过多少代码
  8. 平时爱好
  9. 打算考公吗

30 分钟

  1. 自我介绍
  2. 介绍项目(自己最拿得出手的)
  3. 自己的优缺点,同学老师是怎么评价你的
  4. 有没有团队协作的项目
  5. 自己跟其他人比的优势
  6. 对加班的看法
  7. 你是一个很拼的人吗?
  8. 为什么不拼一些呢?
  9. 团队相处的怎么样,有没有吵过架?

2、一面(45min) - 20240816

  1. 自我介绍
  2. 项目介绍
  3. I2C 驱动框架

3、二面(45min) - 20240828

  1. 自我介绍
  2. 项目介绍?项目背景?
  3. Qt 项目中驱动开发都做了哪些?
  4. SPI 总线协议你了解吗?你写的驱动是从设备驱动吗?
  5. SPI 总线驱动是别人已经写好的?
  6. V4L2 是指应用而不是驱动开发对吗?
  7. V4L2 的应用流程介绍一下?
  8. 你申请了多少 buffer 来采集?
  9. 图像分辨率是多少?采集到图像显示在哪里?LCD上吗?
  10. 采集时主要用了哪些 ioctrl,开始采集用的什么?
  11. 如何判断采集完成?
  12. 1 秒采集多少帧?
  13. 如何把图像送到 LCD 上的?
  14. Linux 从什么时候开始接触的?
  15. 你对 Linux 的认知是什么?驱动都知道哪些?内核知道哪些?
  16. 毕业后想从事的方向是什么?
  17. 在找到工作之前你还有哪些要做的事情,规划吗?
  18. 求职工作地点?
  19. 有其他的 offer 吗?
  20. 对未来的工作有什么期望吗?
  21. 反问
#软件开发笔面经##联发科##嵌入式软件#

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论

相关推荐

嵌入式软件工程师则主要负责嵌入式设备上的软件开发工作,与传统软件工程师不同。传统的软件工程师通常开发PC或服务器上运行的应用程序,所依赖的操作系统大多是Windows、Linux等,而嵌入式软件工程师的工作环境则是诸如Wince、VxWorks、Linux等嵌入式操作系统。一、嵌入式软件工程师的工作通常包括:1. 应用程序开发:根据客户需求开发嵌入式设备上的应用程序,如智能家居设备、医疗仪器的用户界面等。2. 嵌入式开发工具的使用:使用专门的开发工具,如Wince下的EVC(Embedded Visual C++)或Linux下的QT等。3. 底层软件设计:尽管嵌入式软件工程师的主要工作在上层软件,但有时也需要参与到底层驱动的设计和调试中,确保上层应用与硬件的协调。二、嵌入式硬件工程师与嵌入式软件工程师的区别1. 工作性质的区别嵌入式硬件工程师主要负责设计和搭建硬件平台,为软件工程师提供开发环境。硬件工程师的工作更像建筑师,设计并构建产品的硬件基础;而嵌入式软件工程师则像室内设计师,为产品增添功能和美感。硬件工程师的工作重点在于确保电路的正常工作以及各种外设和芯片的兼容性,他们在设计时需要考虑以下几个关键问题:- 功耗:控制电路设计的功耗,特别是在便携式设备中,这一因素尤为重要。- 电磁干扰(EMI):确保电路不会干扰其他设备,也不容易受到外部干扰的影响。- 生产可行性:电路设计不仅要满足功能需求,还需考虑生产的便捷性和成本。- 可靠性:设计要能经受住长时间的使用和环境考验。而软件工程师则专注于通过编写代码实现产品的功能,他们的主要职责包括应用程序开发、操作系统移植、以及优化软件性能等。2. 项目依赖的差异硬件的设计在整个项目中尤为关键。没有硬件,软件无法运行;但是在某些嵌入式系统中,硬件产品可以独立工作,比如简单的单片机应用无需操作系统支持。这种情况下,硬件工程师往往需要负责从硬件设计到功能实现的所有工作。而软件工程师在某些项目中可以缺席,特别是在没有复杂操作系统或用户交互界面的系统中。3. 就业形式的差异国内嵌入式软件工程师的就业市场较为广泛,培训资源也多,因此入门较为简单。硬件工程师由于门槛较高,需要深入的电路设计知识和实践经验,因此市场需求相对较少,但核心硬件开发人员的需求始终存在。一旦硬件产品定型,软件的升级和维护成本较低,因此在后期,企业会更依赖软件开发来提高产品的功能和竞争力,这也导致嵌入式软件工程师在企业中的需求量较大。我面试看的是大佬的面经,链接放下边了https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务