安克创新 嵌入式 一面

1. 先做个简单的自我介绍吧

参考答案: 您好,我是XXX,本科/研究生毕业于XX大学XX专业。在校期间主修嵌入式系统、操作系统、计算机组成原理等课程。 我有X年的嵌入式开发经验,熟悉ARM Cortex-M/A系列架构,掌握C/C++编程和常用通信协议。 在项目经验方面,我做过基于FreeRTOS的智能设备开发,负责驱动开发和系统优化,实现了多任务调度和低功耗管理。也参与过Linux平台的应用开发,熟悉内核裁剪和驱动移植。 技术栈方面,我熟悉RTOS和Linux双平台开发,掌握I2C/SPI/UART/CAN等通信协议,有MCU和MPU的开发经验。 我对安克创新的智能充电和音频产品很感兴趣,希望能将我的嵌入式开发经验应用到贵司的产品中。

2. 你在项目中使用过哪些通信协议?重点讲讲I2C和SPI的区别

答案: 我在项目中使用过I2C、SPI、UART、CAN等协议。

I2C和SPI的主要区别: 接口线数:I2C只需2根线(SCL时钟、SDA数据),SPI需要4根线(SCLK时钟、MOSI主出从入、MISO主入从出、CS片选)。 通信方式:I2C是半双工通信,SPI是全双工通信,速度更快。 寻址方式:I2C通过设备地址寻址,一条总线可挂载多个设备(理论128个),SPI通过片选信号选择设备,需要多根CS线。 速度对比:I2C标准模式100Kbps、快速模式400Kbps、高速模式3.4Mbps,SPI可达几十Mbps。 应用场景:I2C适合低速外设如传感器、EEPROM、RTC,布线简单成本低。SPI适合高速设备如Flash、LCD、SD卡,传输效率高。 协议复杂度:I2C有起始位、应答位、地址帧等,协议较复杂。SPI协议简单,主从约定好时序即可。

在我的项目中,温湿度传感器用I2C,外部Flash存储用SPI,根据速度和成本需求选择合适的协议。

3. 你提到使用了FreeRTOS,能详细说说在什么场景下选择RTOS而不是裸机开发吗?

答案: 我在智能家居控制器项目中使用了FreeRTOS,主要基于以下考虑:

任务复杂度:项目需要同时处理传感器数据采集、WiFi通信、按键检测、LED显示等多个任务,裸机开发需要复杂的状态机管理,而RTOS提供了任务调度机制,代码结构更清晰。 实时性要求:按键响应和传感器采集有实时性要求,RTOS的抢占式调度能保证高优先级任务及时响应,裸机轮询可能导致延迟。 资源管理:多任务间需要共享UART、I2C等资源,RTOS提供了互斥锁、信号量等同步机制,避免资源冲突。 功耗管理:FreeRTOS的Tickless模式支持动态调整系统节拍,空闲时进入低功耗,比裸机的简单sleep更智能。 可维护性:RTOS将功能模块化为独立任务,后期添加新功能只需创建新任务,不影响现有代码,可维护性强。

具体实现上,我创建了5个任务:传感器采集任务(优先级3)、WiFi通信任务(优先级2)、按键处理任务(优先级4)、显示任务(优先级1)、空闲任务(优先级0),通过消息队列和事件组实现任务间通信。

4. 谈谈你对Linux内核中断机制的理解

答案: Linux中断机制是我在做Linux驱动开发时深入学习的内容。

中断分类:硬件中断(外部设备触发)和软件中断(系统调用、异常),硬件中断又分为可屏蔽中断和不可屏蔽中断。 中断处理流程:硬件产生中断信号→CPU保存现场→查中断向量表→执行中断服务程序ISR→恢复现场返回。 上半部和下半部:为了减少中断处理时间,Linux将中断分为上半部(Top Half)和下半部(Bottom Half)。上半部在中断上下文执行,快速处理紧急事务并调度下半部。下半部在进程上下文执行,处理耗时操作。 下半部实现机制:软中断(softirq)、tasklet、工作队列(workqueue)。软中断优先级最高但使用复杂,tasklet基于软中断实现更易用,工作队列可以睡眠适合耗时操作。 中断共享:多个设备可以共享一个中断号,注册时使用IRQF_SHARED标志,ISR中需要判断是否是自己的设备产生的中断。

在我的项目中,网卡驱动使用NAPI机制,中断上半部关闭中断并调度poll,下半部用轮询方式处理数据包,减少中断频率提高性能。

5. 你在简历中提到了多核通信,具体是怎么实现的?遇到过什么问题?

答案: 我在双核MCU项目中实现过核间

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

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

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

全部评论
面试录音转文字的吗?挺详细的
点赞 回复 分享
发布于 昨天 14:03 北京

相关推荐

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

创作者周榜

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