嵌入式Linux设备驱动程序开发.ppt

嵌入式Linux设备驱动程序开发.ppt

ID:50140259

大小:802.50 KB

页数:58页

时间:2020-03-05

嵌入式Linux设备驱动程序开发.ppt_第1页
嵌入式Linux设备驱动程序开发.ppt_第2页
嵌入式Linux设备驱动程序开发.ppt_第3页
嵌入式Linux设备驱动程序开发.ppt_第4页
嵌入式Linux设备驱动程序开发.ppt_第5页
资源描述:

《嵌入式Linux设备驱动程序开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式Linux设备驱动程序开发电子信息工程学院杨昕欣本讲主要内容交叉编译环境Makefile简介设备驱动相关概念设备驱动程序的开发流程I2C驱动程序实例交叉编译环境嵌入式系统的开发需要宿主机(Hostpc),因为嵌入式系统一般没有大容量的存储设备。由于hostpc的处理器与嵌入式微处理器通常不同,为了生成能够在嵌入式系统中运行的代码,需要进行交叉编译。交叉编译:在宿主机上编译可以在目标系统上运行的二进制文件。交叉编译环境一般包括:Gcc编译器,forc,c++Binutil,一些辅助工具,包括objd

2、ump(可反编译二进制文件)、as(汇编器)、ld(链接器)等Glibc,提供系统调用和基本函数的c库CheaderGdb调试器交叉编译环境的建立以root用户登陆linux系统将/usr/local目录备份,然后清空将BSP0.3.6/Toolchain/中的armLinuxXToolChain01.tar.gzglibc2.1.3.tar.gzinst_glibc2.1.3ftp上传到/usr/local执行#tarxvfzarmLinuxXToolChain01.tar.gz#tarxvfzgli

3、bc2.1.3.tar.gz#rm-rfarm-elf-linux/lib#cp-Rarm/gnu/release/arm-linux/libarm-elf-linux/嵌入式Linux一般调试方法使用Gdbserver和gdb在目标系统上运行gdbserver在主机上运行gdb一般通过以太网建立连接Makefile简介Linux开发一般有大量源代码,为了避免大量重复的键入gcc进行编译,定义了Makefile文件,用于自动编译#make该操作会调用MakefileMakefile一般定义了:Gcc编译

4、工具编译命令目标文件依赖关系Makefile简介例:test.o:test.ctest.hgcc-c-gtest.c-g生成调试信息-c只编译不链接成为可执行文件-o确定输出文件名称-O优化-w禁止警告信息-Wall打开所有类型警告信息Makefile变量makefile变量-预定义变量$*不包含扩展名的目标文件名$+所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$<第一个依赖文件的名称$?所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$@目标的完整名称

5、。$^所有的依赖文件,以空格分开,不包含重复的依赖文件。简单Make指令说明#Makeclean——清除编译过程的中间文件#makedep——设置Makefile文件中各个目标所依赖的文件列表使用Makefile方法嵌入式Linux中Makefile更加复杂可在已有Makefile文件基础上更改Linux系统中的设备文件Linux将所有外部设备看成是一类特殊文件,称之为“设备文件”,如果说系统调用是Linux内核和应用程序之间的接口,那么设备驱动程序则可以看成是Linux内核与外部设备之间的接口。设备驱

6、动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样来操作外部设备设备驱动程序是内核重要部分系统调用接口文件子系统I/o设备字符、块设备设备驱动程序进程间通信进程控制进程调度内存管理硬件控制程序内核简略结构:设备驱动的大致结构设备驱动的作用设备驱动是位于应用和物理设备之间的软件层,负责完成二者间的I/O操作;在LINUX系统里,对用户程序,设备驱动隐藏了设备的具体细节,为不同设备提供了一致的接口;设备驱动是嵌入式系统开发的重要内容之一设备驱动完成的工作对设备初始化和释放把数据从内

7、核传送到硬件和从硬件读取数据读取应用程序传送给设备文件的数据和回送应用程序请求的数据检测和处理设备出现的错误设备文件类型通常有字符设备、块设备、网络设备三种字符设备字符设备是能够像字节流一样被访问的设备,例如字符终端、串口、键盘、声卡、LCD、触摸屏、扫描仪、打印机、并口、鼠标、游戏杆等。块设备块设备是指支持面向块访问的设备,每块包含2的N次幂字节数据,例如IDE设备(磁盘)、floppydisk、CD-ROM、Ramdisk等。块设备接口必须支持挂装文件系统。网络设备——即能够和其他主机交换数据的设备

8、接口。主设备号与次设备号LINUX系统中,设备由一个主设备号和一个次设备号来标识;主设备号唯一标识了设备类型,即设备驱动程序类型,它是块设备表或字符设备表中设备表项的索引。次设备号仅由设备驱动程序解释,一般用于识别在若干可能的硬件设备中,I/O请求所涉及到的那个设备。主设备号与次设备号主设备号(MajorNumber)相同的设备使用相同的驱动程序,而次设备号(minorNumber)用来区分该类型不同的设备实例。内核设备驱动模块设备驱动程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。