潍坊免费做网站,微信兼职网站开发,网站和网页的区别是什么,安徽建站之星沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。
1、Linux驱动程序的功能是什么? 对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数?
答案:kmalloc()、kzalloc()、vm… 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。
1、Linux驱动程序的功能是什么?
对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数?
答案:kmalloc()、kzalloc()、vmalloc()。
解读: void *kmalloc(size_t size, gfp_t flags); ①申请连续的物理内存,这对于要进行DMA的设备十分重要,但大小不能超过128KB,其中有16B是被页描述符占用了。 ②较常用的flag有GFP_ATOMIC(分配内存的过程是一个原子过程)、GFP_KERNEL(正常分配内存)、GFP_DMA(给DMA控制器分配内存)。 ③对应的内存释放函数为void kfree(const void *objp)。 void *kzalloc(size_t size, gfp_t flags); ①kzalloc()相对kmalloc()只是额外增加了__GFP_ZERO标志,除了申请内存外,还会对申请到的内存内容清零。 ②对应的释放函数也是kfree()。 void *vmalloc(unsigned l