禾赛嵌入式软件实习面经(MCU)

1. 请大概说一下CAN总线的仲裁和通信逻辑。
2. CAN总线的显性电平跟隐性电平是怎么区分的?
3. CAN总线的通信波特率是多少?
4. 实际传输过程中是否遇到过CAN总线错误(如发送或接收错误、数据丢失等)相关问题?
5. 如何对不同ID的CAN消息做过滤?
6. CAN消息过滤器的屏蔽规则(过滤规则)是什么?
7. IMU模块通过什么方式通信?
8. 从IMU获取数据的整个流程是什么?
9. IMU数据多久同步一次?
10. 接收IMU数据是在任务中周期性地查询吗?
11. 查询IMU数据的频率是多高?
12. 任务是通过OS delay来实现延时的吗?
13. 创建task后,task里面都会做哪些处理,任务运行的结构是什么样的?
14. 读取IMU数据时,查询过程中会发什么指令,IMU如何回应?
15. IMU发送数据的触发动作是什么?
16. IMU的发送频率是多少?
17. 在不清楚IMU发送频率的情况下,如何决定接收任务的周期以避免丢包?
18. 接收IMU数据时,buffer是怎么设置的?如果一包数据接收完但未处理,后续再来数据会怎么处理?
19. FreeRTOS的任务调度机制是什么样的?
20. task有几个状态?
21. 任务从运行态切到就绪态的切换条件是什么?
22. 任务从运行态到阻塞态的情况中,等待的资源有哪些?主动进入阻塞态的方式有哪些?
23. 通过消息队列传输数据时,接收端是怎么处理的?
24. 就绪态的任务是通过什么方式管理的?
25. 任务上下文切换的过程是什么?会保存哪些变量?
26. ARM架构的通用寄存器有哪些?
27. 任务栈空间是怎么分配的?
28. 是否对栈的使用率(使用了多少)做过检测?
29. 电机控制是通过什么方式实现的(如何控制电机的转速和方向)?
30. 电机转速调节的具体实现方式是什么?
31. 实现DMA功能需要配置哪些内容?
32. DMA从外设(如IMU数据接收)搬运到RAM时,源地址和目的地址配置的差异(尤其是增长方向方面)有哪些?
33. 给了一段数组和指针运算的代码,给出输出结果并说明推导过程。
题目还行,没有手撕
全部评论
不是,怎么一场面试问这么多,何意味
点赞 回复 分享
发布于 昨天 12:18 北京
结果挂了,何意味
点赞 回复 分享
发布于 12-19 22:19 江西

相关推荐

dian3b:挺妙的,如果上纲上线显得不合人心,但是这样以来既能监督适当摸鱼,也有一定的人文关怀。
摸鱼被leader发现了...
点赞 评论 收藏
分享
19 年,山东最后一届文理分科。我理科省排三万六千名左右。这个名次,说不上好,也不算坏,但足够让我在填志愿的时候,对未来一无所知。家里给不了什么建议。后来才知道,高考出分后,父母花了一千多块,找了县城里一个“老师”给我算志愿。那个人说:> 一定要报某某师范大学,将来当老师,不然以后没出息。我当时没反驳,也没太往心里去。只是自己对着一本厚厚的报考书,一页一页翻,看城市,看分数线,最后把志愿投向了济南、青岛、天津、北京这些名字听起来稍微亮一点的地方。---大学一志愿被调剂到化学。实验室、试剂瓶、反复重复的实验步骤,让我很快意识到:这不是我想要的生活。于是转专业,阴差阳错,去了机械。后来才发现,很多当初一起读化学的同学,已经在申博的路上走得很远了。庆幸自己跑得早——不是说化学不好,只是它不适合我。机械至少现实一些。就业稳定,方向清晰,大学期末考试也算友好,成绩还可以,虽然没有竞赛、没有亮眼履历,却也意外地被学校“收留”了。那一年,我意外保研。说到底,还是因为心虚——简历做过,但几乎没东西可写。---研究生入学后,才第一次真正面对“方向”这个问题。课题组方向很杂:仿真、算法、硬件、FPGA、偏嵌入式。想来想去,还是觉得嵌入式更适合自己。毕设从 PCB 开始。画板、打样、调试、返工。一个做 FPGA 的师兄给了我很多帮助,我到现在都很感激他,真的!他秋招拿了 30W+ 的 offer,那一刻我第一次意识到:> 原来,这条路是走得通的。后来又听说一个转嵌入式的师兄,只会 MCU,没有 RTOS,也能在武汉拿到年包 30 左右。那一瞬间,我突然觉得——也许我也可以。---于是开始学 STM32。一开始看的是江科大的教程,讲得很细,但我太浮躁了。索性直接上手,用 HAL 库实现功能,外设一个一个复现,却没再回头看底层。学完外设,摆烂了一阵。直到课题组来了一个新的博士师兄。单 9 出身,水平极高,秋招拿了不少 30~40 的 offer,最后却选择继续读博。我去请教他,他说:> 可以继续学 RTOS,再看看 NFC、蓝牙、文件系统。我点头答应。但最终——只学了 RTOS 🙄。---等真正上手 RTOS,已经是研二下学期了。跟着韦东山老师,用“瑞士军刀”板子做 Demo,能跑任务,能切换,却始终停留在 “会用 API”的阶段。底层原理,几乎一无所知。后来又听说 Linux 工资更高。一边犹豫要不要转,一边发现自己连 RTOS 都没真正吃透。那段时间,说不上努力,也谈不上放弃。更多是摇摆。---研二下,被通知 955 工位打卡。白天在实验室,晚上回家继续学。也是在这段时间,认识了一些同行的人。一起交流、互相打气。3 月到 5 月,学了一些 Linux,刷 LeetCode,背八股,开始认真准备简历。4 月底才投暑期实习。漫长的等待中,焦虑、自我怀疑反复出现。直到 7 月,才收到第一个实习 offer。---第一次一个人去实习。本来想着能学很多东西,结果发现自己能力太弱,没被分配太多任务。但幸运的是,mt、ld、同事都很好。他们把岗位需要的资料一点点帮我整理出来,遇到问题,也总能及时帮忙解决。那一个月很短。却像是有人替我在黑暗里点了一盏灯。---8 月就开始投简历,半个多月后才迎来第一场面试。第一家,就走到了终面。虽然最后挂了,但我还是很开心——因为我终于确认:我不是完全不行。9 月回校,正式进入秋招。之后陆续收到了几家心仪公司的面试,也拿到了一些 offer。最终,选择了上海的一家公司。---至此,我的职业探索,暂时告一段落。从迷茫、逃避、摇摆,到一步一步确认方向。走得不快,也谈不上漂亮,但至少没有停下。未来的路还很长。希望自己能在嵌入式这条路上,走得更稳,也走得更远。朋友们,如果你也正在路上——一起加油。
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

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