比亚迪嵌入式二面面经

前言:这次比亚迪二面主要围绕嵌入式开发、电动汽车系统和汽车电子相关技术。我在准备过程中,重点复习了BMS、电机控制、SOC估算、CAN通信、OTA升级、功能安全和编码规范等内容。为了顺利应对面试,我把每个核心知识点进行分类整理,并结合项目经验和实际应用进行理解。

面试题目整理:

  1. 请详细介绍一下你在项目中遇到的最难的问题,是如何解决的?
  2. 你对AUTOSAR有了解吗?
  3. CAN总线的报文格式是怎样的?标准帧和扩展帧有什么区别?
  4. 如何保证CAN通信的可靠性?
  5. 什么是OTA?如何实现软件的在线升级?
  6. 请解释一下功能安全ISO 26262,ASIL等级是什么?
  7. 什么是BMS?BMS需要实现哪些功能?
  8. 如何估算电池的SOC?
  9. BLDC电机的控制原理是什么?
  10. 如何进行嵌入式软件的单元测试?
  11. 你对MISRA C编码规范有了解吗?
  12. 如果让你设计一个电动汽车的充电管理系统,你会如何设计?
  13. 你为什么想加入比亚迪?

总结:复盘这次面试,我发现准备的关键是将知识体系化,将嵌入式开发理论、汽车电子原理、BMS功能、SOC估算方法、CAN通信机制、OTA升级流程、功能安全标准和编码规范等整合起来。在准备过程中,我采用了分类整理、查资料、结合项目实践的方法,同时把复杂概念简化成易于表述的逻辑链条,以便在面试中能够快速清晰地回答问题。这次复盘让我明确了自己在知识掌握上的薄弱环节,也为后续深入学习嵌入式系统和电动车技术提供了方向。

准备嵌入式面试八股文就靠这套专栏了(涵盖多个大厂面试题):https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

嵌入式开发必备知识总结

1. 嵌入式系统基础

  • 嵌入式系统组成:通常包括硬件(MCU/CPU、存储器、外设)、固件/驱动、操作系统和应用层软件。
  • 嵌入式操作系统:熟悉实时操作系统(RTOS)和任务调度机制,了解任务优先级、中断处理、信号量、互斥量等同步手段。
  • 资源限制意识:嵌入式系统常受限于内存、计算能力和功耗,开发时需考虑代码优化、内存管理和效率。

2. 编程与编码规范

  • C/C++语言能力:掌握指针、内存操作、数据类型、结构体、宏定义等,理解硬件寄存器操作和位操作。
  • MISRA C:熟悉嵌入式开发规范,保证代码安全性、可维护性和可移植性。
  • 单元测试:掌握模块级测试方法,验证输入输出及边界条件,确保功能可靠。

3. 外设与通信接口

  • 常用接口:GPIO、UART、SPI、I2C、CAN等。
  • CAN通信:理解报文格式(标准帧11位ID,扩展帧29位ID)、优先级、CRC校验机制、重发机制,保证总线可靠性。
  • 调试工具:熟练使用JTAG、逻辑分析仪、示波器等进行硬件调试。

4. 控制与算法基础

  • 电机控制:BLDC、步进电机原理,霍尔传感器和PWM控制,闭环控制思想。
  • 电池管理系统(BMS):SOC/SOH估算、电压/电流/温度监控、充放电控制、均衡管理、保护机制。
  • 滤波与控制算法:卡尔曼滤波、PID控制、电池估算算法等。

5. 软件架构与标准

  • AUTOSAR:理解模块化设计、软件组件和RTE接口,适用于大型汽车嵌入式系统。
  • 功能安全:ISO 26262标准,理解ASIL等级及其对软件开发和验证的要求。
  • OTA升级:理解远程软件升级原理、完整性校验和安全性保证。

6. 开发流程与项目管理

  • 版本控制:Git等工具用于管理代码版本和协作开发。
  • 调试与仿真:通过模拟器和硬件在环(HIL)测试验证软件功能。
  • 性能优化:在内存和CPU受限条件下优化代码,提高系统响应速度和可靠性。

总结嵌入式开发要求工程师具备硬件理解、软件能力和系统思维。除了掌握C/C++编程、操作系统、通信协议和控制算法,还需熟悉行业标准(如MISRA C、ISO 26262、AUTOSAR)和调试工具。通过系统化学习、项目实践和不断复盘,才能在嵌入式开发中快速成长,解决实际问题。

全部评论
社招还是校招
点赞 回复 分享
发布于 今天 17:09 北京

相关推荐

🎓学历背景:单二硕👨‍💻意向职位:嵌入式软件实习oc 快手 九号 momenta秋招oc 百度 理想 轻舟 小米 零跑 泰陵微 事业编求职感受:目前收到的几个offer  最高的超过了50w 平均35w左右 最后上岸事业编 和大家说一下我的情况 一共学了7个月左右 课题组方向偏传统所以从研二上学期开始就开学慢慢摸索学嵌入式 自己没有任何基础 机械专业 代码能力几乎为零开始的  但研二一年一直在外派实习 所以学习时间很短 我自己学习的过程踩了很多坑 下面几个建议希望可以帮助大家避雷 第一个是一定要明确自己到底找那个方向的工作 到底学rtos还是linux 和大家说一下 不要全部都选择 因为大部分公司把rtos和linux岗位分的都比较的清楚 是两个不同的岗位 所以大家如果想学rtos 就直接看rtos 而且rtos据我了解 手撕代码不多 其次就是我选的linux岗位 linux岗位比较考验代码能力 我拿offer的公司 基本上都有手撕 以及我挂了很多公司 也都有手撕 所以linux岗位要重视自己的代码能力 C语言一定要看 不管那个岗位 其次是c++ 我做项目以及实习 大部分都是使用c++ 在coding的时候c++也比较方便 大家最好系统学完 之后就是要把linux应用和驱动学完 最好都看完 学完了要立马找项目做 我是项目是其他课题组实验室项目和实习项目(两段实习 一段小厂一段大厂) 大家细节总结清楚 尤其是调优后的数据 提升了多少 在什么基础上提升的 原来的数据是怎么样的 要说清楚 并且大家可以多多投实习 在面试过程中练习自己的不足 遇到了对你有兴趣的面试官会让你有很大的提升 最后就是coding啦 我是刷的hot100 大概刷了4-5遍 其他的没有刷 面试一般也是出的hot100 自己总结的一句话 不出hot100 就是不想要你 哈哈哈 开玩笑的 但是嵌入式相比于后端 手撕就是容易一些
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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