安克创新 嵌入式 二面

1. 简单介绍一下你自己和你的项目经历

参考答案:

我是XXX,毕业于XX大学XX专业,有X年嵌入式开发经验。我的技术栈主要包括C/C++编程、ARM架构、Linux和RTOS双平台开发,熟悉常用通信协议和驱动开发。

在项目经验方面,我主要做过三类项目。第一类是基于Linux的智能设备开发,负责应用层和驱动层的开发工作,实现了设备的网络通信和数据处理功能。第二类是基于FreeRTOS的实时控制系统,主要做传感器数据采集和电机控制,对实时性和稳定性要求较高。第三类是智能硬件产品,涉及到低功耗设计、无线通信和用户交互,这让我对产品化开发有了更深的理解。

我比较擅长的是底层驱动开发和系统优化,能够独立完成从需求分析到代码实现的全流程。同时我也注重代码质量,有良好的文档习惯和团队协作能力。

2. 你提到做过Linux和RTOS开发,能对比一下这两个平台的开发差异吗?

参考答案:

1.系统架构差异 Linux是宏内核架构,功能丰富但体积较大,通常运行在MPU上,需要MMU支持虚拟内存管理。而RTOS是微内核架构,代码精简通常几十KB,运行在MCU上,直接操作物理地址,启动速度快资源占用少。

2.实时性对比 RTOS是硬实时系统,任务调度延迟在微秒级,中断响应时间确定可预测,适合对时序要求严格的场合。Linux是软实时系统,虽然有RT-Preempt补丁可以提升实时性,但调度延迟仍在毫秒级,主要适合对实时性要求不那么严格的应用。

3.开发复杂度 Linux开发生态完善,有丰富的库和工具链,支持多进程多线程,文件系统和网络协议栈功能强大,但学习曲线陡峭。RTOS开发相对简单,API精简易学,但很多功能需要自己实现,比如文件系统和网络协议栈需要移植第三方组件。

4.应用场景选择 我在项目中的选择标准是:如果需要运行复杂应用、需要文件系统和网络功能、对成本不敏感,就选Linux。如果对实时性要求高、资源受限、成本敏感、功耗要求严格,就选RTOS。比如我做的网关产品用Linux,而传感器节点用FreeRTOS。

3. 如果让你从零开始设计一个嵌入式产品,你会考虑哪些方面?

参考答案:

1.需求分析阶段 首先要明确产品的功能需求、性能指标、成本预算和上市时间。比如我之前做智能温控器,需求是测温精度±0.5℃、响应时间<1s、电池续航>1年、成本<50元。这些指标直接决定了后续的技术选型。

2.硬件选型 根据需求选择合适的MCU或MPU,考虑主频、内存、外设资源、功耗和价格。比如温控器项目我选择了STM32L系列低功耗MCU,128KB Flash足够用,内置RTC和低功耗模式满足续航要求。同时要选择合适的传感器、通信模块、电源管理芯片等外围器件。

3.软件架构设计 确定使用裸机、RTOS还是Linux系统。如果用RTOS,要规划任务划分、优先级分配、任务间通信方式。比如温控器我用FreeRTOS,划分了温度采集任务、显示任务、按键任务、通信任务和控制任务,通过消息队列传递数据,用互斥锁保护共享资源。

4.通信协议设计 根据应用场景选择合适的通信方式,近距离用I2C/SPI/UART,无线用WiFi/BLE/Zigbee,工业场合用CAN/Modbus。要设计好通信协议格式、错误处理机制、重传策略等。温控器项目我用BLE与手机通信,设计了自定义协议包含帧头、命令码、数据长度、数据和校验和。

5.可靠性设计 要考虑看门狗、异常处理、掉电保护、ESD防护等。软件上要有完善的错误处理和日志记录,硬件上要有过压过流保护。我在温控器中加入了看门狗防死机,用EEPROM保存关键参数防掉电丢失,加入了软件滤波算法提高测温稳定性。

6.功耗优化 对于电池供电产品,功耗是关键指标。要选择低功耗器件,优化软件降低工作电流,合理使用睡眠模式。温控器项目通过动态调整采样频率、关闭不用的外设、使用Stop模式,将平均功耗降到50uA,实现了1年以上续航。

4. 谈谈你在项目中遇到的最复杂的技术问题,以及你的解决思路

参考答案:

1.问题背景 我在做一个多传感器数据采集系统时,遇到了系统偶发性死机的问题。这个问题很难复现,有时运行几小时才出现一次,而且没有明显的规律,给调试带来很大困难。

2.问题排查过程 首先我在HardFault中断处理函数中添加了寄存器打印功能,通过分析栈指针和程序计数器,定位到死机发生在任务切换过程中。然后我怀疑是栈溢出问题,使用FreeRTOS的栈水位检测功能,发现通信任务的栈使用率达到95%,接近溢出边界。但增大栈空间后问题依然存在,说明不只是栈溢出这么简单。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式面试八股文全集 文章被收录于专栏

这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。

全部评论
很详细的面经,应该还得搭配变式,防止面试官追问
点赞 回复 分享
发布于 今天 14:05 北京

相关推荐

01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
02-02 16:01
已编辑
门头沟学院 C++
个人背景:26&nbsp;届双非硕士,嵌入式方向,目前两个&nbsp;offer&nbsp;进入终选,纠结点集中在行业赛道、岗位成长、现金收益、城市补贴,求牛友们从长期发展与短期收益帮分析。一、offer&nbsp;核心信息offer1:厦门&nbsp;-&nbsp;雅讯智联&nbsp;嵌入式软件驱动开发薪资:base&nbsp;16k;试用期&nbsp;6&nbsp;个月,试用期&nbsp;13k社保公积金:五险基数&nbsp;4030,公积金基数&nbsp;7150,比例&nbsp;12%补贴:硕士一次性人才补贴&nbsp;5w,每年租房补贴&nbsp;8000业务:车联网、MCU/Autosar&nbsp;驱动开发,偏车载终端、通信与底层驱动地点:厦门强度:月加班40h以上,无论是否有事都要达到,加班费10几块一小时。offer2:天津&nbsp;-&nbsp;天瞳威视&nbsp;嵌入式工程师薪资:base&nbsp;14k;首月&nbsp;11k,后续全额社保公积金:五险一金全额缴纳,公积金比例&nbsp;11%补贴:无额外人才&nbsp;/&nbsp;租房补贴业务:智能驾驶、域控方向,技术栈&nbsp;Linux/QNX,主要是c++地点:天津强度:询问算法部门基本不加班,嵌入式软件部门不太清楚,周末加班可以1:1调休或者给加班费二、个人梳理的核心对比行业与岗位雅讯智联:车联网赛道,成熟稳定,做&nbsp;MCU&nbsp;驱动、Autosar,偏向底层硬件适配、量产驱动开发,技术更偏传统车载嵌入式,就业面广、稳定性强。天瞳威视:智能驾驶赛道,前沿热门,做域控、Linux/QNX&nbsp;系统开发,技术栈更贴近智驾量产与高阶系统,长期跳槽天花板更高,但行业波动相对大。薪资与福利(含补贴)雅讯:短期现金更高,叠加&nbsp;5w&nbsp;一次性补贴&nbsp;+&nbsp;年租房补贴,前两年总收入比天瞳多10w;但社保公积金基数低,长期保障弱。天瞳:base&nbsp;略低、无补贴,但全额缴纳五险一金,长期账户积累更优,到手差距小于&nbsp;base&nbsp;差距。城市与生活厦门:气候宜居,补贴力度大,生活成本中等。天津:北方城市,生活成本偏低,智驾产业链集中,后续同赛道跳槽选择更多。三、我的纠结点求稳、看重前两年现金与生活质量&nbsp;→&nbsp;偏雅讯看重长期技术成长、智驾赛道溢价、后续跳槽空间&nbsp;→&nbsp;偏天瞳不确定驱动岗与智驾嵌入式的&nbsp;3-5&nbsp;年薪资差距、职业路径差异求大家从行业前景、岗位含金量、薪资性价比、跳槽难度、城市发展给建议,感谢!(本人嵌入式技术一般,害怕试用期过不了,据我了解雅迅的转正率是100%,天瞳不清楚但是3个月试用期)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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