《Linux 设备驱动开发详解》--Linux驱动概述及开发环境

来源:互联网 发布:.cn域名为什么不值钱 编辑:程序博客网 时间:2024/05/12 08:29

1、Linux 设备驱动的重点难点

1、编写Linux设备驱动要求工程师有非常好的硬件基础,懂得SRAM、Flash、SDRAM、磁盘读写方式,UART、I2C、USB等设备的借口以及轮询、中断、DMA的原理,PCI总线的工作方式以及CPU的内存管理单元MMU等。

2、编写Linux设备驱动要求工程师有非常好的C语言基础,能够灵活运用C语言的结构体、指针、函数指针以及内存动态申请和释放等。

3、有一定的内核基础,虽然不要求对各个部分深入研究,但是至少要明白驱动和内核的接口。尤其是对块设备、网络设备、Flash设备、串口设备。

4、编写Linux设备驱动要求工程师有非常好的多任务并发控制和同步基础,因为驱动中需要大量使用自旋锁、互斥、信号量、等待队列等并发和同步机制

2、工具链安装

在驱动移植的时候,需要交叉编译,此时需要安装工具链

1、获取工具链,一般需要从个硬件平台厂商下载

2、解压并存放目录(例:、usr/local/arm/4.2.2-eabi)

3、设置环境变量:编辑/etc/profile文件,在文件末尾添加:

PATH=“$PATH:/usr/local/4.2.2-eabi/usr/bin”

export PATH

是环境变量生效,在终端输入命令

source /etc/profile

另外、也可以修改HOME目录下的.bashrc 来将/usr/local/4.2.2-eabi/usr/bin 添加到PATH中:

export PATH=PATH:/usr/local/4.2.2-eabi/usr/bin/:$PATH 

4、检测环境变量是否设置成功

在终端输入:echo $PATH,如果输出的路径中包含了/usr/local/4.2.2-eabi/usr/bin 则说明设置成功。

5、测试交叉编译工具链

在终端输入命令”arm-linux-gcc -v“ 

3、主机端nfs和tftp服务安装

4、源代码阅读和编辑

Linux环境下常见的方式Vim+cscope或者Vim+ctags(使用方法待补充)

0 0
原创粉丝点击