嵌入式与Linux那些事 · 2021年06月04日

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

哈喽,大家好。今天更新一篇驱动笔试面试总结。由于百度网盘分享的资料总是失效。所以,我把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那些事

推荐阅读
关注数
6
文章数
8
我的微信:LinuxDriverDev。欢迎大家加我微信,一起学习交流
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息