- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统实验7 块设备驱动实验-陈文智
第7章 块设备驱动实验
实验目的:
(1)通过实验了解SD卡的工作原理
(2)通过实验掌握块设备驱动开发的特点
(3)通过实验掌握块设备驱动开发的流程
实验环境:
硬件:AT91SAM9G45-EKES开发板、SD卡、PC机
软件:Windows 2000/NT/XP、Ubuntu 9.10、gcc、gdb、vim
实验任务:
(1)理解和掌握SD卡驱动编写。
(2)测试SD卡驱动。
实验原理:
阅读完本书上篇理论部分第11章,读者应当知道SD卡驱动分为三层(card/core/host),其中card和core层与硬件无关且内核代码以提供。为了提高读者在硬件基础上编程的能力,本实验编写host层驱动,也就是编写9G45芯片的HSMCI接口驱动。在做实验前,首先仔细阅读芯片的数据手册,了解通过HDMCI接口对SD卡进行操作的各个细节。以下是HDMCI接口对SD卡操作的说明
实验准备:
1.搭建实验环境
2.阅读本书理论部分
3.阅读HDMCI接口操作指引
实验步骤:
1.编写SD卡驱动
(1)仔细阅读实验原理,理解如何通过MCI接口用DMA方式接收和发送数据.
(2)解压实验代码atmel_mci.tar.gz
(3)进入实验代码目录,查看atmel-mci-reg.h。所有寄存器的地址的宏定义在该文件中,可直接使用。
实验步骤:
#define MCI_CR 0x0000
# define MCI_CR_MCIEN ( 1 0)
# define MCI_CR_MCIDIS ( 1 1)
# define MCI_CR_PWSEN ( 1 2)
# define MCI_CR_PWSDIS ( 1 3)
# define MCI_CR_SWRST ( 1 7)
#define MCI_MR 0x0004
# define MCI_MR_CLKDIV(x) ((x) 0)
# define MCI_MR_PWSDIV(x) ((x) 8)
# define MCI_MR_RDPROOF ( 1 11)
# define MCI_MR_WRPROOF ( 1 12)
# define MCI_MR_PDCFBYTE ( 1 13)
# define MCI_MR_PDCPADV ( 1 14)
# define MCI_MR_PDCMODE ( 1 15)
实验步骤:
(4)阅读和编写驱动
A. 打开atmel-mci.c文件,按照其中的中文提示补全代码
B. 修改原驱动,在其基础上实现到SD插入和拔出时打印出提示信息,并在插入时显示写保护状态。
实验步骤:
2. 编译驱动程序
(1)编写Makefile文件。
ifneq ($(KERNELRELEASE),)
obj-m := atmel-mci.o
else
KERNELDIR ?=~/src/linux-2.6.30-atmel/
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
实验步骤:
(2)交叉编译
# make ARCH=arm CROSS_COMPILE=/usr/local/arm-2007q1/arm-none-linux-gnueabi-
实验步骤:
3. 下载驱动模块到目标板并加载
(1)为了验证驱动的正确性,必须确保目标板上的系统没有该驱动或者没有加载该驱动。所有在前面编译内核时Atmel Multimedia Card Interface support应该设为空或M(编译为模块)。如下图所示:
实验步骤:
实验步骤:
(2)将前面编译好的驱动模块atmel-mci.ko文件复制到tftp服务器的目录。连接好串口线和网线,打开终端,接通目标板电源,启动系统后输入以下命令将驱动模块下载到目标板的xxx目录。
(3)加载模块
实验步骤:
4. 测试驱动程序
(1)插入一张SD卡,并挂载到文件系统。
# cd /mnt
# mkdir sdtest
# mount –t vfat /dev/mmc/blk0/part1 /mnt/sdtest
实验步骤:
(2)编写一个简单程序测试对SD卡的读和写,主要功能为在SD卡上创建一文件,用户通过终端向该文件写内容,写完后再读出该文件中的内容并打印到终端上。
(3)编写Makefile文件
(4)编译测试程序
(5)将测试程序下载到目标板并运行
您可能关注的文档
最近下载
- (新版)道路交通运输安全管理培训课件.pptx VIP
- 人教版小学六年级上册数学教学反思全册.pdf
- 快速康复在骨科护理中的应用.pptx
- 雷达原理.ppt VIP
- 华大九天EDA工具使用说明-全国工业和信息化技术技能大赛-集成电路EDA赛项技术资料.doc
- 儿科护理学练习题.doc
- 黑龙江中医药大学2022-2023学年《细胞生物学》期末考试试卷(A卷)附参考答案.docx
- 部编版四年级语文上册期末测试卷(八套)(附答案).docx
- 辽宁省营口市2023-2024学年九年级上学期期末数学试题.pdf VIP
- 电大《学前儿童卫生与保健》课程实践二:课程相关新闻(或身边)事件发现与点评 .doc VIP
文档评论(0)