×

Linux教程之Linux设备驱动编程引言资料说明

消耗积分:0 | 格式:pdf | 大小:0.67 MB | 2019-02-22

leifenglin2

分享资料个

  目前,Linux 软件工程师大致可分为两个层次:

  (1)Linux 应用软件工程师(Application Software Engineer):主要利用 C 库函数和 Linux API 进行应用软件的编写;

  (2)Linux 固件工程师(Firmware Engineer):主要进行 Bootloader、Linux 的移植及 Linux 设备驱动程序的设计。

  一般而言,固件工程师的要求要高于应用软件工程师的层次,而其中的 Linux 设备驱动编程又是 Linux 程序设计中比较复杂的部分,究其原因,主要包括如下几个方面:

  (1)设备驱动属于 Linux 内核的部分,编写 Linux 设备驱动需要有一定的 Linux 操作系统内核基础;

  (2)编写 Linux 设备驱动需要对硬件的原理有相当的了解,大多数情况下我们是针对一个特定的嵌入式硬件平台编写驱动的;

  (3)Linux 设备驱动中广泛涉及到多进程并发的同步、互斥等控制,容易出现 bug;

  本文将仍然秉承《Linux Device Drivers》一书以实例为主的风格,但是实例的背景将非常简单,以求使读者能将集中精力于 Linux 设备驱动本身,理解 Linux 内核模块、 Linux 设备驱动的结构、Linux 设备驱动中的并发控制等内容 。另外,与《Linux Device Drivers》所不同的是,针对设备驱动的实例,本文还给出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将为您领悟《Linux Device Drivers》一书中的内容打下很好的基础。

  (4)由于属于内核的一部分,Linux 设备驱动的调试也相当复杂。

  本文将仍然秉承《Linux Device Drivers》一书以实例为主的风格,但是实例的背景将非常简单,以求使读者能将集中精力于 Linux 设备驱动本身,理解 Linux 内核模块、 Linux 设备驱动的结构、Linux 设备驱动中的并发控制等内容 。另外,与《Linux Device Drivers》所不同的是,针对设备驱动的实例,本文还给出了用户态的程序来访问该设备,展现设备驱动的运行情况及用户态和内核态的交互。相信阅读完本文将为您领悟《Linux Device Drivers》一书中的内容打下很好的基础。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !