当前位置: 首页 > article >正文

百面嵌入式专栏(面试题)驱动开发面试题汇总1.0

在这里插入图片描述

沉淀、分享、成长,让自己和他人都能有所收获!😄

📢本篇我们将介绍驱动开发面试题 。

1、Linux驱动程序的功能是什么?

  1. 对设备初始化和释放。
  2. 进行内核与硬件的数据交互。
  3. 检测和处理设备出现的错误。

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 l


http://www.kler.cn/a/229756.html

相关文章:

  • 什么是边缘计算?
  • 米贸搜|关于Facebook广告受限:在这些情况下,Meta会限制广告主的广告能力!
  • 敏捷开发和传统开发的区别及工具分享
  • Flink 动态表 (Dynamic Table) 解读
  • CKS1.28【1】kube-bench 修复不安全项
  • JVM 性能调优 - 参数调优(3)
  • spring boot学习第十一篇:发邮件
  • 四大组件 - ContentProvider
  • 配置git环境与项目创建
  • ChatGPT 4.0 升级指南, ChatGPT Plus(GPT 4.0) 有何优势?
  • Python Matplotlib安装过程详解
  • 2024美赛数学建模F题思路源码
  • jmeter-03界面介绍
  • text-generation-webui搭建大模型运行环境与踩坑记录
  • 网络安全大赛
  • ubuntu22.04@laptop OpenCV Get Started
  • beamsearch的计算过程和代码实现
  • spring cloud stream
  • Docker 可视化工具
  • 计算机网络-差错控制(纠错编码 海明码 纠错方法)