嵌入式面经:驱动开发

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://www.nowcoder.com/creation/manager/columnDetail/v0ELPM
#嵌入式##面经##笔试题型##面试题目##C/C++#
全部评论
感谢楼主,分享面经的都能拿好offer!
2
送花
回复
分享
发布于 2022-01-13 16:29
楼主你好,请问驱动开发就业前景怎么样😃
点赞
送花
回复
分享
发布于 2022-05-13 10:55
滴滴
校招火热招聘中
官网直投

相关推荐

部门经理1、简单确认情况后,让我进行自我介绍2、说一下C语言内存分配的方式以及区别3、阐述一下C语言程序编译的过程4、static关键字和extern关键字的作用5、静态全局变量和静态局部变量的区别,作用域有什么不同?6、static的全局变量能不能被其他.c文件调用?7、看我简历里面写了熟悉串行通信,让我阐述一下IIC总线和SPI总线的区别8、假如IIC协议中地址位为8bit,那么最多可以挂载多少个从设备?为什么要减1?9、阐述一下实习或者项目过程中遇到的困难10、我投的岗位有加班情况,问我如何看待工作加班?HR提问1、英语四级是大几通过的?2、英语六级呢?3、看我实习经历是在大四上学期进行的,问我实习是自己找的还是老师推荐的?【自己找的】4、为什么这份实习工作不选择留下来?5、我主要从交通极其不方便这方面进行阐述的,但我额外提到了“转正后福利待遇不符合期望”这一点,HR就问了我最低的期望薪资6、看我绩点和英语六级成绩都很好,问我为啥没去考研?7、让我对自己进行一下自我评价,我说到了“学习能力强”这一点,HR就让我举例具体说8、看到我是在寝室进行面试的,就问了我室友找工作的状况9、实习过程中有没有工作失误,具体是怎么进行解决的?10、实习期间还有去投过其他公司吗?11、反问#通信硬件人笔面经互助##传音##春招##校招##驱动开发#
点赞 评论 收藏
转发
7 50 评论
分享
牛客网
牛客企业服务