码迷,mamicode.com
首页 > 系统相关 > 详细

【原创】-- linux驱动开发--【持续整理】

时间:2015-03-03 18:18:09      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

一、写在前面:

合格的linux驱动工程师需要满足下面的条件,本文的目标就是将这些条件原原本本的呈现给读者

1、有一定的硬件基础,懂得SRAM,Flash,SDRAM,磁盘的读写方式,了解UART,IIC,USB等设备接口,了解轮询,中断,DMA的原理,PCI总线的工作方式以及CPU的内存管理单元(MMU)等。

2、有一定的C语言基础,能够熟练使用结构体,指针,函数指针,以及内存的动态申请和释放。

3、有一定的linux你内核基础,内核部分难度较大,至少应了解驱动与内核接口。

4、有一定多任务并发和同步控制基础,在驱动中会使用很多自旋锁,互斥,信号量,等待队列等并发与同步控制机制。

 

二、开发环境:

  Ubuntu14.04LTS(虚拟机不方便,直接安装Ubuntu),OK6410开发板(虽然有点旧)

  工具链安装(见博文》》》)

  nfs和tftp安装(见博文》》》)

 

三、设备驱动概述

1、单任务环境与多任务操作系统环境

2、分类:字符设备,块设备,网络设备

3、软硬件系统与驱动的关系

 

四、硬件基础

1、通用处理器

  图表

2、DSP

3、存储器

4、接口和总线

5、CPLD,FPGA

6、原理图基础

 

五、linux内核分析

1、五大支柱

2、内核源代码目录结构

3、内核组成部分

  进程调度,内存管理,虚拟文件系统,网络接口,进程通信

4、内核编译及加载

      编译:多种编译方式分析

  makefile》》》

5、内核引导

6、linux下C编程

 

六、设备驱动深入

1、内核模块

2、文件系统与设备文件系统

3、并发控制

4、阻塞与非阻塞I/O

5、异步通知与异步I/O

6、中断与时钟

7、内存与I/O访问

8、应用:android 

 

七、设备驱动实例

1、字符设备驱动

2、块设备驱动

3、网络设备驱动

 

  

【原创】-- linux驱动开发--【持续整理】

标签:

原文地址:http://www.cnblogs.com/apolloenterprise/p/4309397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!