Linux-BSP-驱动-面试题大全
1. 了解Linux的那个驱动?举例讲讲。
a.驱动注册过程:通过platform bus, platform_device_register和platform_driver_register时都会在总线查询是否有匹配的设备或驱动,如果有就会调用driver的probe函数。
<延伸问题:device和driver通过什么匹配的?name或id_table(dtsi里面compatable字段)>
b.驱动类型:字符设备(fb显示设备)、块儿设备、网络设备
c.字符设备为例,驱动需要实现的函数fops:(open,read,write,release,store,show实现暴露给usr space的设备节点,suspend, resume并不是都实现这些)
2. 中断上半部下半部
top half: spinlock_irqsave做很少的工作,需要快速处理完,一般是关中断,清中断标志位,保存数据,调用中断下半部,开中断。
botomm half: tasklet, workque(可以睡眠可以调度)。
中断里用spin lock,不能用semphore(可以调度可以睡眠)
3. spinlock semphore mutex 区别
4. 内核空间和用户空间通信方式
5. boot传给kernel的参数
6. linux 进程调度方法
7. linux softirq
8. MMU作用
9. 访问外部寄存器的方法 *(volatile unsigned int*)ADDR ioremap
10. 实现container_of: https://www.cnblogs.com/linux-37ge/p/10219359.html
#define member_offset(type, member) ((int)&(((type*)0)->member))
#define container_of(ptr, type, member) ({\
const typeof(((type*)0)->member) *_mptr = ptr; \
(type*)( (char*)_mptr - member_offset(type, member))})
11. 32位bit位反转
unsigned reversebit(uint32 val){
uint32 ret = 0, loop = 32;
while(loop--){
ret <<=1;
ret |= val&0x1;
val >>= 1;
}
}
12. 进程上下文,中断上下文
Linux-BSP-驱动-面试题大全的更多相关文章
- linux驱动面试题整理
1.字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件? 答:mknod命令结合设备的主设备号和次设备号,可创建一个设备文件. 评:这只是其中一种方式,也 ...
- Linux驱动面试题
1. Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备. 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种 ...
- linux 设备驱动概述
linux 设备驱动概述 目前,Linux软件工程师大致可分为两个层次: (1)Linux应用软件工程师(Application Software Engineer): 主要利用C库函数和 ...
- PHP面试题大全(值得收藏)
PHP进阶.面试:文档.视频资源点击免费获取 一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操 ...
- 《Linux设备驱动开发详解(第2版)》配套视频登录51cto教育频道
http://edu.51cto.com/course/course_id-379-page-1.html http://edu.51cto.com/course/course_id-379-page ...
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...
- node.js面试题大全-侧重后端应用与对Node核心的理解
Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. github地址: https://github ...
- 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接
<Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...
- 《linux设备驱动开发详解》笔记——12linux设备驱动的软件架构思想
本章重点讲解思想.思想.思想. 12.1 linux驱动的软件架构 下述三种思想,在linux的spi.iic.usb等复杂驱动里广泛使用.后面几节分别对这些思想进行详细说明. 思想1:驱动与设备分离 ...
- Linux设备驱动中的软件架构思想
目录 更新记录 一.Linux驱动的软件架构 1.1 出发点 1.2 分离思想 1.3 分层思想 二.platform设备驱动 2.1 platform设备 2.2 platform驱动 2.3 pl ...
随机推荐
- (4)打造简单OS-loader硬盘加载和C++写入文件
0.简要说明: 我们完全可以使用bochs创建映像文件,如https://blog.csdn.net/jadeshu/article/details/89046838 ,那么为什么还去用C++去模 ...
- Linux 网络性能测试工具 iperf 的安装和使用
简介:Iperf是一个网络性能测试工具.可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失.Iperf在Linux和windows平台 ...
- hadoop3.1.1:找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
yarn执行MapReduce任务时,找不到主类导致的 解决: 1.在命令行输入:hadoop classpath [hadoop@localhost ~]$ hadoop classpath /da ...
- ICEM-缺角正方体
原视频下载地址:https://yunpan.cn/cqKwGiMRiqN7I 访问密码 3377
- xposed代码示例
package com.example.xposedhook; import android.util.Log; import de.robv.android.xposed.IXposedHookLo ...
- 虚拟机VMware安装及Linux系统基础配置(CentOS 7)
PS: 我是 VMware 14 安装 CentOS 7 来配置Linux虚拟机,想要安装 Ubuntu 18.04 的可以自行其他搜或者参考博客:https://blog.csdn.net/gith ...
- python人生如初见之初见yield
今天学习爬虫Scrapy框架搭建的时候,了解了yield的用法.了解一个东西,无外乎 WHAT? HOW? WHY? WHAT yield英文意思是屈服,退位,放弃.额...其实它是Python中的一 ...
- Vue学习手记01-安装和项目创建
1.安装Vue 注:node版本必须大于等于8.9 vue-cli3.x:npm install -g @vue/cli vue-cli2.x:npm install -g @vue/cli-i ...
- Mysql -- The used SELECT statements have a different number of columns
这是因为使用union的两个SQL语句产生的记录的表结构不一致. 必须是结构完全一致的记录集合才可以使用UNION. 以上就是两个表的字段不一样,导致,所以大家可以检查下. 可以 将 select * ...
- Go --- 七牛云 上传文件 & Token demo
package main import ( "bytes" "crypto/hmac" "crypto/sha1" "encodi ...