嵌入式系统实验7 块设备驱动实验-陈文智.pptx

嵌入式系统实验7 块设备驱动实验-陈文智.pptx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)将测试程序下载到目标板并运行

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档