小米相机驱动一面

1.先自我介绍➕问项目
2.死锁怎么产生,产生的几大条件
3.iic,串口,spi的区别
4.spi怎么跟多个设备通信的
5.iic引脚是怎么设置的
6.开漏输出,推挽输出的区别
7.手撕大小端转化
全部评论
乃神又要拿下一家
点赞 回复 分享
发布于 2024-09-29 12:57 湖北
佬通知二面了吗,是不是base北京
点赞 回复 分享
发布于 2024-09-29 13:38 辽宁

相关推荐

Timeline:一面        2025-02-14  14: 00    当天 15: 30 通过二面        2025-02-17  11: 15    当天 15: 10 通过三面        2025-02-18  14: 00    当天 14: 50 通过hr面        2025-02-18  17: 00    当天通过oc            2025-02-19  10: 45呃啊啊啊啊啊啊啊,对比一面难度飙升二面主要过程:1. 自我介绍2. 首屏优化有哪些方法(tree-shaking  http2  懒加载  gzip  SSG ......),    看的是哪个指标(LCP),LCP具体是怎么计算的(完全没了解)3. 业务组件和基础组件的区别(??根本不知道),如何保证组件的稳定性(希腊奶,应该是指组件测试)4. 拷打 css: - 重绘重排(浏览器渲染原理,结合 visibility: hidden 和 display: none) - flex 垂直布局如何使得三个子盒子间隔 10px(不是 margin / space-between,叫我去了解一下,应该是 row-gap) - position: sticky(没用过),position 和包含块5. 拷打 vue: - vue2 和 vue3 有什么区别(setup,defineProperty 和 proxy) - vnode 和实际 dom 有什么区别,为什么要用 vnode(为了高效 diff 和跨平台支持包括 ssr),为什么不直接修改 dom(因为早期对 signal 理念实现不够彻底,vue3.6 的 vapor mode 正在改进,我的回答不一定对哈) - computed 的更新机制是怎么样的(脏值检测懒更新),使用时和 watch 有什么区别(问的就是依赖多的时候用 watch 指定需要的依赖)6. 拷打 js: - var let const window 以及多 script 标签(一定要注意 let 和 const 的变量不会挂载到 window 哇),var 的变量提升机制(先定义后赋值),变量未声明默认为 var - 手写 Promise.all(应该直接 return 一个 new Promise,我用了 Promise.withResolvers;还有打印的时候用 then,习惯了用 setTimeout 打印了,被狠狠地批评了) - 说说 async 和 await 的实现(是说源码),如果没有 async 的时候使用 await 会不会报错(旧版 node 的 commonjs 会,要用立即调用函数的方式使用,新的和 esmodule 默认支持) - Promise A+规范怎么定义一个 Promise(我只知道要 then 方法,叫我回去看)7. 算法题:二叉树中的最大路径和,返回其路径(力扣 124 改编,无负数,卡了很久都没完全写对,路径递归返回写错了极力狡辩)8. 反问: - 主要技术栈(vue3,node) - 工作时间(11点前上班,12点到2点休息,6点到7点晚饭,8 9点下班,包三餐) - 最近有碰到什么技术难点吗(听不懂我也忘了)
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
1.1 Linux 驱动程序的功能是什么?(1)对设备初始化和释放。(2)进行内核与硬件的数据交互。(3)检测和处理设备出现的错误。1.2内核程序中申请内存使用什么函数?答案:kmalloc()、kzalloc()、vmalloc()。解读:(1)void *kmalloc(size_t size, gfp_t flags);①申请连续的物理内存,这对于要进行DMA的设备十分重要,但大小不能超过128KB,其中有16B是被页描述符占用了。②较常用的flag有GFP_ATOMIC(分配内存的过程是一个原子过程)、GFP_KERNEL(正常分配内存)、GFP_DMA(给DMA控制器分配内存)。③对应的内存释放函数为void kfree(const void *objp)。(2)void *kzalloc(size_t size, gfp_t flags);①kzalloc()相对kmalloc()只是额外增加了__GFP_ZERO标志,除了申请内存外,还会对申请到的内存内容清零。②对应的释放函数也是kfree()。(3)void *vmalloc(unsigned long size);①申请虚拟地址连续的内存空间,但其对应的物理内存不一定连续,因此对申请的内存大小没有限制。②对应的内存释放函数为void free(const void *addr)。③注意:vmalloc()和vfree()可以睡眠,因此不能在中断上下文调用。1.3内核程序中申请内存和应用程序时申请内存有什么区别?答案:内核中申请内存空间用的是函数kmalloc、kzalloc、vmalloc,应用程序申请内存用的函数是malloc。解读:(1)kmalloc/kzalloc直接分配连续的物理地址(虚拟地址也是连续的)。(2)vmalloc分配连续的虚拟地址,但物理地址不一定连续。分配时实际分配了物理内存,不过这个物理内存页面是在公共的页表进行了映射,并没有在本进程的页表进行映射,当访问这段内存时,触发do_page_fault异常(缺页中断)才完成页表的同步工作。(4)malloc是用户空间申请内存的方法,分配连续的虚拟地址,物理地址一般不会连续。在分配时并没有做实际物理页的分配动作,实际分配物理页的动作是在do_page_fault异常(缺页中断)处理中完成的。1.4自旋锁和信号量在互斥使用时需要注意什么?在中断服务程序里面的互斥是使用自旋锁还是信号量? (1)使用自旋锁的进程不会睡眠, 而使用信号量的进程会睡眠。(2)中断服务程序使用的是自旋锁,原因是中断服务程序处于中断上下文,中断上下文是不参与调度的,也就没有保护现场与恢复现场,一旦睡眠就回不来了。 以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:              https://blog.nowcoder.net/zhuanlan/v0ELPM嵌入式公司推荐:华为、小米、OPPO、VIVO、荣耀、一加、CVTE、大疆、insta360影石、美的 、TCL、海信、创维、烽火、比亚迪、吉利、长安、大众、经纬恒润 、小鹏、图森未来、百度、滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、寒武纪 、晶晨半导体 、汇顶、华为、中兴、浪潮 、TP-LINK、讯飞、商汤、海康威视 、浙江大华、360、小马智行、元戎启行、深信服、移动、联通、电信、旷视、四维图新、中芯国际、复旦微电子、极氪。#牛客AI配图神器#
点赞 评论 收藏
分享
评论
13
15
分享

创作者周榜

更多
牛客网
牛客企业服务