嵌入式接口技术与linux驱动开发

嵌入式接口技术与linux驱动开发

ID:14931185

大小:52.50 KB

页数:7页

时间:2018-07-31

嵌入式接口技术与linux驱动开发_第1页
嵌入式接口技术与linux驱动开发_第2页
嵌入式接口技术与linux驱动开发_第3页
嵌入式接口技术与linux驱动开发_第4页
嵌入式接口技术与linux驱动开发_第5页
资源描述:

《嵌入式接口技术与linux驱动开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.为什么要选择LINUX:(1)面向服务,网络功能强大(2)源码开放,可移植性强(3)有大公司的支持,Intel,IBM,ARM(4)一个全新的世界(5)学术研究必不可少的平台(源码、算法、对比实验……)2.LINUX的驱动程序:(1)LINUX下对外设的访问只能通过驱动程序,uClinux下可以在应用层直接访问外设,操作寄存器,但是无法处理中断,DMA,抢占,原子操作等(2)LIUNX对于驱动程序有统一的接口,以文件的形式定义系统的驱动程序Open,release,read,write,ioctl…(3)驱动程序是内核的一部分,可以使用

2、中断,DMA等操作注:uClinux是linux2.0核心的分支,是针对没有MMU管理单元的微控制器,uClinux不是实时操作系统(4)驱动程序需要在用户态和内核态之间传递数据(5)对于复杂的应用可以考虑是用mmap3.在驱动程序中通过devfs_register()函数创建设备文件系统的特点;系统启动的时候mount设备文件系统;所有需要的设备节点都由内核自动管理,/dev目录下只有挂载的设备。4.设备驱动程序的作用:(1)设备驱动程序将复杂的硬件抽象成一个结构良好的设备,并通过提供统一的程序接口为其它部分提供使用设备的能力和方法。(2

3、)设备驱动程序(应该只是)为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。5.设备驱动程序是内核代码的一部分;驱动程序的地址空间是内核的地址空间,应用程序通过操作系统的系统调用执行相应的驱动程序函数,中断则直接执行相应的中断程序代码。6.linux内核加载过程:通常,linux内核是经过gzip压缩之后的映像文件(1)bootloader复制压缩内核到内存空间(2)内核自解压(3)运行文件7.编译完成的linux内核在哪里:(1)./vmlinux,elf格式未压缩(2)arch/arm/boot/compress

4、ed/vmlinux,压缩以后的elf内核8.在ARM体系结构下,用户态对应了ARM的USR模式,内核态对应了SVC模式、多数操作系统都把内核和运行在其上的应用程序分为两个层次管理:“内核态”和“用户态”9.GCC是linux下的编译器:(1)可以编译内核,应用程序,bootloader&其它OS(2)ASNIC,GUNC,C99最初linux是一种只可以运行在PC机上免费的UNIX操作系统,如今linux已发展成为一种强大的操作系统10.我们可以使用crosstool,它是一个专门建立编译工具链的脚本,可以在很大程序上简化我们的工作。11

5、.构建toolchains必须的组件:Linux内核源码;gcc;glibc;glibc_linuxthreadsPOSIX线程序库;binutils。Binutils中的常用工具:Addr2line把程序地址转换为文件名和行号;As主要用来编译gcc输出的汇编文件,产生的目标文件由连接器ld连接;Ld连接器,它把一些目标和归档文件结合在一起,重定位数据,并链接符号引用;Objcopy把一种目标文件中的内容复制到另一种类型的目标文件中;Objdump显示一个或者更多目标文件的信息;Readelf显示elf格式可执行文件的信息;Strip丢弃

6、目标文件中的全部或者特定符号。12.linux内核被设计为必须使用GNU的C编译器gcc来编译,而不是任何一种C编译器都可以使用。13.linux内核主体使用GUNC。linux内核源码庞大,结构复杂:(1)对linux2.4内核的统计:1万个文件,6百万行代码(2)对linux2.6内核的统计:1.5万个文件,6百万行代码内核编程习惯(技巧)不同于应用程序。14.每一个进程(或应用程序)都通过MMU建立独立寻址空间——用户空间。一个进程是不可以随便修改(或者访问)另一个进程中的数据和代码的。进程之间要想运行数据交互,要么经过内核传递,要么

7、通过内核映射共享内存。15.linux的设备文件以文件的形式存在/dev目录设备文件是特殊文件,使用LS/dev-1命令可以看到。主设备号标识设备对应的驱动程序,一个驱动程序可以控制若干个设备,次设备号提供了一种区分它们的方法,系统增加一个驱动程序就要赋予它一个主设备号,这一赋值过程在驱动程序的初始化过程中。16.设备已经注册到内核表中,对于设备的访问通过设备文件(设备文件与设备驱动程序的主设备号匹配),内核会调用驱动程序中的正确函数。17.给程序一个它们可以请求设备驱动程序的名字,这个名字必须插入到目录/dev中,并与驱动程序的主设备号和

8、次设备号相连。18.动态分配的主设备号不能保证总是一样的无法事先创建设备节点;可以读取/proc/devices读取cat/proc/devices;利用脚本动态创建设备文件节点

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

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

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