- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux应用程序开发过程ppt课件
基于ARM和linux的开发 武汉创维特 Linux应用程序 编写helloworld文件 编写Makefile文件 编译器 编译x86平台采用的gcc编译器 #gcc –o helloworld helloworld.c 编译 #/usr/local/arm/2.95.3/bin/arm-linux-gcc –o helloworld helloworld.c Linux应用程序运行1 Linux应用程序运行2 JXARM9-2410通过NFS将主机的/tftpboot/目录挂接到目标机的/mnt/nfs目录下 #mount 80:/tftpboot/ /mnt/nfs #cd /mnt/nfs/examples #./helloworld Linux应用程序运行3 配置Linux应用程序启动后自动运行 linux驱动程序 设备驱动程序的概念 对硬件的控制涉及寄存器中各位的操作,通常这些操作与设备直接相关并且对时序的要求非常严格,如果这些工作都交由应用程序员来负责,那么对硬件设备的编程将变得异常复杂而困难。 驱动程序的作用正是要屏蔽硬件的这些底层细节,从而简化应用程序的编写。 操作系统一般提供设备驱动程序来完成对特定硬件的控制,以建立应用程序和设备之间的抽象接口,而不是应用程序直接操作硬件。 设备驱动程序的概念 设备驱动程序实际是处理和操作硬件控制器的软件,从本质上讲,是内核中具有最高特权级的、驻留内存的、可共享的底层硬件处理例程。 Linux 操作系统将所有的设备全部看成文件,都纳入文件系统的范畴,并通过文件的操作界面进行操作。 一般来说,是把设备映射为一个特殊的设备文件,用户程序可以像对其他文件一样对此设备文件进行操作。 设备文件的属性由三部分信息组成:文件的类型,主设备号,次设备号 设备驱动程序的概念 驱动程序是内核的一部分,是操作系统内核与硬件设备的直接接口,驱动程序屏蔽了硬件的细节,完成以下功能: 对设备初始化和释放 对设备进行管理,包括实时参数设置,以及提供对设备的操作接口 读取应用程序传送给设备文件的数据或回送应用程序请求的数据 检测和处理设备出现的错误 Linux驱动程序 Linux驱动程序编译方式 Linux下设备驱动程序分类 Linux下设备驱动程序组成 Linux下设备驱动程序I/O设备入口点1 Linux下设备驱动程序I/O设备入口点2 Linux下设备驱动程序I/O设备入口点3 在用户自己的驱动程序中,首先要根据驱动程序的功能,完成 file_operations 结构中的函数的实现 不需要的函数接口可以直接在 file_operations 结构中初始化为 NULL 每个进程对设备的操作,都会根据主次设备号,转换成对 file_operations 结构的访问 设备驱动程序的开发过程 查看原理图,理解设备的工作原理。 定义设备号。设备由一个主设备号和一个次设备号来标识。主设备号惟一标识了设备类型,即设备驱动程序类型,它是块设备表或字符设备表项的索引 实现初始化函数。在驱动程序中实现驱动的注册和卸载 设计所要实现的文件操作,定义 file_operations 结构 设备驱动程序的开发过程 实现所需的文件操作调用,如 read、write 等 实现中断服务,并用 request_irq 向内核注册,中断并不是每个设备驱动所必需的。 编译该驱动程序到内核中,或者用insmod命令加载模块 测试该设备,编写应用程序,对驱动程序进行测试 Linux下设备注册1 Linux下设备注册2 Linux下中断处理 Linux下内存分配、释放 Linux下内存分配、释放 Linux下开关中断函数 Linux下用户态和核心态数据访问 Linux下设备驱动程序举例 静态编译驱动程序进内核 设备初始化 设备入口点实现 Linux驱动程序设计 模块加载 设备初始化 设备入口点实现 Linux驱动程序设计 模块初始化函数 Linux驱动程序设计 文件操作结构声明 Linux驱动程序设计 read write 基于ARM和Linux的开发 谢谢! ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM
文档评论(0)