黑芝麻 嵌入式软开技术二面

🏫面试公司:黑芝麻人工智能

面试时间: 2024.10.11,40min,视频面

📍面试岗位:嵌入式软开

📃面试问题:

  1. 自我介绍。
  2. 之前学过什么专业课,为什么学了这么多。
  3. 详细讲一下你的第一个项目。
  4. 系统调用的整个流程。
  5. 缺页异常是什么,什么时候会触发。
  6. 如何实现降低锁的粒度提高并发性能。
  7. 看过Linux源码吗,对Linux熟悉程度如何。
  8. 代码到可执行文件的过程。
  9. 写过链接脚本吗,其功能是什么。
  10. mmap函数的原理,你自己如何实现的。
  11. IIC的时序,读数据的过程是怎样的。
  12. 未来工作方向有什么倾向吗,对Linux驱动开发有兴趣吗。
  13. 协程是什么,你是如何实现的,和线程进程的区别。
  14. 反问。

🙌面试体验:相比一面的八股轰炸,二面很明显就是对项目的挖掘了。不过整体也还好,面试官没有很为难,有不会的地方诚实说就好了。最后反问聊了十几分钟还是挺不错的。

#面试问题记录#
25届嵌入式面经分享 文章被收录于专栏

记录本人在24年秋招及实习(25届毕业)中的面试记录,大部分岗位都是嵌入式软件开发。

全部评论
接好运
点赞 回复 分享
发布于 06-03 13:51 吉林
佬太强啦
点赞 回复 分享
发布于 06-03 13:51 上海
点赞 回复 分享
发布于 06-03 13:41 北京
佬约三面了吗
点赞 回复 分享
发布于 06-03 11:53 北京

相关推荐

这几天在小看一下 Freertos ,了解了内存管理、任务调度、同步互斥、队列及信号量的一些小玩意,写一下小总结:在内存管理方面,Freertos 感觉就是比较灵活,有五种内存分配。每种策略都有不一样的适配场景,像 heap_1 适用于不需要内存释放的简单应用,能在资源受限的小型嵌入式设备中稳定运行;heap_5 则支持动态内存分配,可以管理多个不连续的内存块,对于内存需求复杂多变的系统就比较适用。​任务调度机制是 Freertos 实现多任务高效运行的关键。其中,时间片轮转调度模式按照固定的时间片长度,让处于同一优先级的多个任务轮流获得 CPU ,避免了某一任务长期占用资源的情况;而优先级抢占调度模式则相当于给高优先级任务开小门,当高优先级任务就绪时,能立即打断当前正在执行的低优先级任务,抢 CPU 资源,这种机制保障了系统对紧急事件的快速响应。​同步互斥机制中,就是信号量和互斥锁嘛。信号量本质上是一个具有计数功能的内核对象,它可以用来表示可用资源的数量,信号量还分为二进制和技术型信号量,当多个任务需要访问有限的共享资源时,信号量能有效控制任务的访问顺序和数量,防止资源竞争导致的错误。今天做了个小实验就是小车通行证的,我这里就不多说了,这个方法比较好理解。互斥锁是专门针对优先级反转问题设计,当低优先级任务有着高优先级任务所需要的资源时,互斥锁会将低优先级任务的优先级临时提升至与高优先级任务相同,等到资源释放后再恢复原优先级,这样就可以避免高优先级任务因为等待低优先级任务而被延误的情况,确保了系统的优先级秩序和实时性能。​队列是 Freertos 中任务间通信的东西。它采用先进先出(FIFO)的默认数据处理方式,同时也支持按消息优先级进行排序,满足了不同场景下的数据传递需求。队列可以传递各种类型的数据,不管是简单的整型变量、字符,还是复杂的结构体、指针,都能通过队列在任务间安全、可靠地传递。而且,队列具有异步通信的特点,发送任务和接收任务无需同步等待,发送任务将数据放入队列后即可继续执行其他操作,接收任务在需要时从队列中获取数据,这种特性可以提高了任务间协作的灵活性。​信号量在同步互斥中除了作为资源计数器,还能用于任务间的同步。比如说,在中断服务程序中,当某个事件发生后,可通过释放信号量的方式通知等待该事件的任务,任务在获取到信号量后就知道事件已发生,从而执行相应的处理操作(这里举例就是占厕所,a上厕所,b就上不了,a上完释放信号量厕所可以上了,b去上),实现了中断与任务、任务与任务之间的有效同步。​
点赞 评论 收藏
分享
评论
2
10
分享

创作者周榜

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