- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验七 嵌入式系统驱动实验
实验七 ARM9嵌入式系统硬件驱动基础开发实验
【实验目的】
1.掌握嵌入式linux内核的配置编译及移植。
2.掌握ARM linux驱动程序的开发流程。
【实验内容】
1.常用linux命令的使用
2.嵌入式linux驱动程序开发步骤
3.linux内核配置、编译以及移植
【实验设备】
1.ARM9开发板
2.串口线、USB线
3.PC机(软件:VMware Workstation6.5)
【实验原理】
嵌入式 Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。Memory Management Unit)功能的嵌入式Linux操作系统是ARM平台上操作系统的最佳选择。通用的基于ARM系统的Linux开发步骤如下:
1)开发目标硬件系统:如选择微处理器,Flash及其他外设等;
2)建立交叉编译工具:一般的GCC工具都是针对X86体系的,为了能够生成目标板可执行的代码必须建立交叉编译工具;
3)开发Bootloader:建立启动系统的主引导程序;
4)移植Linux内核:如基于ARM的Linux2.4内核移植;
5)开发一个根文件系统:如yaffs文件系统的制作;
6)开发相关硬件的驱动程序:如LCD、Keypad等;
7)开发上层的应用程序:如QT GUI开发。
驱动程序的目的一般式驱动硬件正常工作,所以通常所说的驱动程序都是针对特定的硬件来编写的。驱动程序既可以工作在有操作系统的环境下,也可以工作在无操作系统的环境中。通常在做一些简单的硬件控制时,由于功能比较单一,不需要操作系统来管理,所以针对这种情况下的驱动程序相对来说也比较简单,但是作为一个嵌入式系统,他要实现的任务也相对比较多,比较复杂,所以需要有操作系统来对他进行管理。设备驱动程序是操作系统内核和及其硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。Linux下的设备驱动程序是内核的一部分,运行在内核模式。也就是说,设备驱动程序为内核提供了一个I/O接口,用户使用这个接口实现对设备的操作。我们在这个实验中主要是将驱动程序的C文件交叉编译后添加进内核,同时,在文件系统中添加驱动测试程序。最后将生成的系统映像文件烧进开发板中。
对于驱动程序的使用,有静态编译和动态编译两种,静态编译指的是将驱动程序添加到内核中,动态编译是指将驱动程序编译成驱动模块。我们采用 第一种,即静态编译的方式添加驱动程序。驱动程序的开发步骤如下:
1)首先,用户在自己的驱动程序源文件中定义file_operations结构,并编写出设备需要的各种操作函数,对于设备不需要的操作函数用NULL初始化,这些操作函数将被注册到内核。当应用程序对相应的设备文件进行操作时,内核会找到相应的操作函数,并进行调用。如果操作函数使用NULL,操作系统就进行默认的处理。
2)设备驱动程序编写完成后,就可将其添加到linux内核中,这需要修改linux的源码,然后重新配置编译linux内核。
3)编写相应的驱动测试程序,下载到ARM板进行相应驱动的测试。
【实验步骤】
1.打开桌面上的虚拟机软件VMware Workstation,用户名为root,密码为123456,即以超级用户的身份登录。打开终端,学习一下Linux常用命令:
# cd / 切换到根目录
# cd dir 切换到当前目录下的dir目录下
# cd .. 切换到上一级目录
# ls 显示当前目录下的文件列表
# vi file 编辑文件file
# tar xzvf file.tgz 将文件file解压
# rm file 删除文件
# rm –fr dir 删除当前目录下叫dir的整个目录
# cp source target 将文件source复制为target,可以指定文件路径
# cat file 查看file的内容
# mv file /dir 将当前目录下的file文件移动到dir目录下
还有一些命令会在后面的使用中具体讲解。
2. 在终端里进入 /opt/FriendlyARM/Nano2410V2 目录下,其中有一个kernel文件夹,这就是我们要操作的LINUX的内核。进入kernel/drivers/char ,即内核驱动的字符型设备驱动文件夹,然后ls查看里面的文件列表,其中有一个 super2410-leds.c文件,这是一个led驱动程序,但此程序需要修改才能适用于我们的ARM板。
3. 输入 vi super2410-leds.c ,对此文件进行编辑。在vi
您可能关注的文档
- 多媒体教学资料(介绍小动物-仓鼠).ppt
- 多电机同步传动控制系统分析.pptx
- 多极化-第一课时.ppt
- 多极化-第二课时.ppt
- 外贸实习平台及单证练习(2013-2014)1.ppt
- 多肉新手养护指南(下).pptx
- 多目标评估方法.ppt
- 多自由度摆的理论与数值模拟--liqifu.doc
- 多种教学媒体在中学地理教学中的应用.ppt
- 多彩的几何图形牛.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)