前言:
工作有5年了,但是依然没有自己的特色。
废话不多说,从今天开始,坚持学习完《linux设备驱动开发详解》这本书。
根据自己的浅薄的C语言的基础,实现自己有一技之长的梦想。
当中肯定会遇到很多麻烦和很多疑惑,如有朋友能够跟我一起学习和进步,我将很高兴与他一起分享经验和快乐。
我会记录学习的点点滴滴,希望经过三年的学习,在我三十而立之年能够让自己有自己的成功之路。
在这里再次感谢华清远见无私奉献的这一本设备驱动开发资料。在它的官网上可以免费获取完整版,我自己也将它上传到了csdn资料库。《linux设备驱动开发详解》
我不是在给它做广告,而是知识推广,请喷子们嘴下积德。
每一章基本步骤:
1、自己看完每一章的学习资料。一天看不完,可能分几天看完。
2、每一章的需要动手练习的地方,动手练习,我会自己操作一遍,给出我的环境配置信息。
3、遇到的问题我会记录下来,会想尽一切办法寻找答案。
4、会简单的总结今天学习的经验和想法。
5、走自己的路,坚持就是胜利。
第一章:设备驱动概述
这一章主要是讲解设备驱动的一些基本概念。
简单总结如下:
1、无操作系统时的设备驱动由程序直接调用设备对外的接口,
2、有操作系统时的设备驱动,系统提供对外统一的接口,而程序员不用再理会什么设备的概念。
比如;应用程序通过write()、read()等函数读写文件就可以访问各种字符设备和
块设备,就非常方便了。
3、编写Linux 设备驱动的技术基础
Linux 设备驱动的学习是一项浩大的工程,读者需要首先掌握以下基础。
编写 Linux 设备驱动要求工程师具有良好的硬件基础,懂得SRAM、Flash、SDRAM、磁盘的读
写方式,UART、I2C、USB 等设备的接口,轮询、中断、DMA 的原理,PCI 总线的工作方式以
及CPU 的内存管理单元(MMU)等。
编写 Linux 设备驱动要求工程师具有良好的C 语言基础,能灵活地运用C 语言的结构体、指针、
函数指针及内存动态申请和释放等。
编写 Linux 设备驱动要求工程师具有一定的Linux 内核基础,虽然并不要求工程师对内核各个部
分有深入的研究,但至少要了解设备驱动与内核的接口,尤其是对于块设备、网络设备、Flash
设备、串口设备等复杂设备。
编写 Linux 设备驱动要求工程师具有良好的多任务并发控制和同步的基础,因为在设备驱动中会
大量使用自旋锁、互斥、信号量、等待队列等并发与同步机制。
本书对以上内容都进行了详细的讲解,以使读者快速掌握编写 Linux 设备驱动的基础。
详细的内容大家可以参考pdf。
下一课:我会介绍在我的电脑上按照pdf上的指导安装虚拟环境的全部课程。
linux驱动学习--第二天:设备驱动概述(二)之安装虚拟环境用VmWare 搭建两台虚拟机