嵌入式软件工程师笔试面试指南-Linux驱动

砾滩枚举
• 阅读 2765

哈喽,大家好。今天更新一篇驱动笔试面试总结。由于百度网盘分享的资料总是失效。所以,我把PDF版本,放在了百度网盘群组中,出现问题,可以和我及时反馈。

大家可以加我好友,好友通过后,发送【资料群】给我,会自动拉进群里。本文内容已同步更新在github,点击阅读原文可以直达github。

Linux驱动

嵌入式软件工程师笔试面试指南-Linux驱动

指令

常用的Linux指令

怎么查看当前进程?怎么执行退出?怎么查看当前路径?
ls 命令执行什么功能? 可以带哪些参数,有什么区别?
创建目录用什么命令?
创建文件用什么命令?
复制文件用什么命令?
查看文件内容有哪些命令可以使用?
怎么向屏幕输出带空格的字符串,比如”hello world”?
移动文件用哪个命令?改名用哪个命令?
删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
查找文件内容用哪个命令?
查找文件用哪个命令?
cat命令

常用的GCC指令

预处理
编译为汇编代码
汇编
链接
一步到位编译
多文件编译
警告处理

常用的GDB调试指令

常用的驱动开发指令

加载/卸载驱动
Linux驱动如何查看驱动模块中打印信息?
如何查看内核中已有的字符设备的信息?
如何查看正在使用的有哪些中断号?

uboot

什么是bootloader?

uboot启动过程中做了那些事?

为什么要给内核传递参数呢?

uboot和内核如何完成参数传递?

为什么uboot要关掉cache?

文件系统

什么是根文件系统?

根文件系统为什么这么重要?

可执行映像文件通常由几部分构成,它们有什么特点?

中断

硬中断 / 软中断是什么?有什么区别?

中断为什么要区分上半部和下半部?

中断下半部一般如何实现?

linux中断的响应执行流程?中断的申请及何时执行(何时执行中断处理函数)?

Linux驱动模型

字符设备驱动模型

LCD驱动模型

总线设备驱动模型

输入子系统模型

platform总线的匹配规则是什么?在具体应用上要不要先注册驱动再注册设备?有先后顺序没?

Linux内核

内核镜像格式有几种?分别有什么区别?

内核中申请内存有哪几个函数?有什么区别?

什么是内核空间,用户空间?

为什么需要区分内核空间与用户空间?

什么是内核态和用户态?

用户空间与内核通信方式有哪些?

内核链表为什么具有通用性?

应用程序中open()在linux中执行过程中是如何从用户空间到内核空间?

怎样申请大块内核内存?

设备驱动

请简述主设备号和次设备号的用途。

字符型驱动设备怎么创建设备文件?

设备驱动程序中如何注册一个字符设备?分别解释一下它的几个参数的含义。

/dev/下面的设备文件是怎么创建出来的?

Linux设备中字符设备和块设备有什么主要区别?分别举例。

驱动中操作物理绝对地址为什么要先ioremap?

insmod,rmmod一个驱动模块,会执行模块中的哪个函数?在设计上要注意哪些问题?

NAND驱动的probe流程

Linux驱动开发中,常用的调试方法有哪些?

Linux驱动开发常用函数

# 结语

资料中,难免会有一些错误,有任何问题,都可以在github向我提交issue。文中的勘误,我都会更新在github中。点击阅读原文可以直达github。

微信公众号近期改变了推送规则,如果您想经常看到我的文章,可以选择置顶星标公众号。在每次阅读后,在页面下方点一个「」或「在看」,这样,每次推送的文章才会第一时间出现在您的订阅列表里。

文章来源

嵌入式软件工程师笔试面试指南-Linux驱动

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
砾滩枚举
砾滩枚举
Lv1
人生到处知何似,应似飞鸿踏雪痕。泥上偶然留指爪,鸿飞哪复计西东。
文章
6
粉丝
0
获赞
0