MMCSD卡驱动程序设计(通信10123赵翔)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ARM嵌入式系统课程设计--MMC/SD卡驱动程序设计班级:通信1001学号:3100601023姓名:赵翔指导老师:曹清华课程设计时间:2013.6.24---2012.6.30江苏大学2目录第一章引言1.1课程设计目的...........................................................1第二章课程设计平台构建与流程.................................................22.1嵌入式系统开发平台构建.................................................22.2课程设计流程...........................................................22.3课程设计硬件结构与工作原理.............................................2第三章Bootloader移植与下载...................................................43.1源代码安装.............................................................43.2源代码分析移植与编译...................................................43.3下载...................................................................4第四章Linux内核移植与下载....................................................64.1Linux内核源代码安装...................................................64.2Linux内核源代码分析与移植.............................................64.3Linux内核编译与下载...................................................6第五章课程设计功能模块驱动程序设计..........................................155.1MMC/SD卡模块注册初始化:.............................................155.2设备文件操作接口定义..................................................155.3MMC接口初始化........................................................165.4GPIO初始化函数.......................................................165.5SD移除操作函数.......................................................175.6读数据块操作..........................................................185.7写数据块操作..........................................................19第六章根文件系统建立与文件系统下载..........................................206.1根文件系统分析........................................................206.2文件系统映像文件生成..................................................216.3文件系统下载..........................................................226.4功能模块运行与调试....................................................23第七章完成课堂上布置的三个思考题............................................26第八章课程设计总结与体会....................................................288.1课程设计中遇到的问题以及解决方法......................................288.2总结和体会............................................................281第一章引言1.1课程设计目的1)了解PXA27X微处理器GPIO的功能2)了解MMC卡驱动程序的架构及编程方法3)掌握MMC卡的使用方法1.2课程设计任务与要求1)理解基于Linux的嵌入式系统交叉开发环境,对嵌入式系统的开发流程有详细的了解;2)掌握开发工具链的构建方法,能独立进行系统开发操作;3)掌握Linux的常用命令,在linux系统下能熟练的使用这些常用命令;4)熟悉linux内核的知识以及原理,掌握定制Linux内核的方法;5)基于Linux操作系统,以及XSBase270ARM实验开发平台一套,把MMC存储卡挂载目标板上并进行文件的复制操作。2第二章课程设计平台构建与流程2.1嵌入式系统开发平台构建1)装有Linux操作系统的PC机一台;2)XSBase270ARM实验开发平台一套3)MMC存储卡一块2.2课程设计流程1)Bootloader移植与下载2)Linux内核移植与下载3)功能模块程序设计与交叉编译4)根文件系统建立与文件系统下载2.3课程设计硬件结构与工作原理1)目标板的MMC卡硬件接口目标板的MMC/SD卡的硬件接口如图1.1所示,根据PXA27x的MMC/SD/SDIO控制器的信号功能以及PXA27x的GPIO的功能分配,命令控制线MMCMD与GPIO112相连,此时引脚GPIO112必须配置成转换功能1(AlternateFunction1)的输入或输出方式(具体参考PXA27X开发手册),时钟端MMCLK利用了通用IO口GPIO32转换功能1输出方式,4位总线MMDAT0到MMDAT3分别与GPIO111、GPIO110、GPIO109和GPIO92相连,都时使用了通用IO口的转换功能1的输入或输出方式。图1.2为MMC/SD卡的供电电路图。3图1.1目标板的MMC/SD卡的硬件接口图1.2MMC/SD卡的供电电路图2)PXA270的MMC/SD/SDIO控制器PXA270的MMC/SD/SDIO控制器在访问PXA270处理器的软件与MMC存储堆和支持MMC、SD及SDIO通信协议之间充当联结作用。PXA27x的MMC控制器协议规范遵守多媒体卡系统规范V3.2(MultiMediaCardSystemSpecificationVersion3.2);MMC/SD/SDIO控制器采用标准的MMC传输协议或串行通信接口SPI协议模式。访问PXA270的软件使用MMC传输协议或SPI模式作为与MMC控制器通信的协议。目标板的SD驱动程序采用了MMC通信传输协议。3)MMC卡的通信协议主机与MMC卡的所有通信都是由主机发起,主机发出广播和点对点两种类型通信命令,在广播通信命令中,主机发出的命令被所有的卡接受,只有部分命令需要响应;而在点对点通信命令中,命令被发送到具体地址的卡中,并由该卡对所接受的命令做出响应。4第三章Bootloader移植与下载3.1源代码安装先将D:\emdor\EELiod_V4_SDK目录下的Linux-2.4复制到虚拟机里root的主文件夹中,然后用如下指令进行解压:利用上述命令解压后,bootloader源代码解压到当前目录中Boot-XSBase270文件夹中。3.2源代码分析移植与编译在解压的目录里进行make编译。[root@localhostBootLoader]$cdBoot-XSBase270root@ubuntu:Boot-XSBase270#makeclean[root@localhostBoot-XSBase270]$make编译完成后,在当前目录下会生成bootloader映象文件boot。3.3下载打开实验台电源,启动H-JTAG和H-Flasher,在H-Flasher中装载配置文件pxa270.hfc,点5击Programming中的Check,ScrFile选择D:\emdor\EELiod_V4_SDK\Linux-2.4\images\中的boot文件,点击Program,烧写成功后点击Verify校验。6第四章Linux内核移植与下载4.1Linux内核源代码安装内核解压4.2Linux内核源代码分析与移植Linux提供三个不同的命令进行Linux的配置,效果完全一样:makeconfig控制台命令行方式配置命令makemenuconfig文本菜单方式配置命令makexconfigX窗口图形界面方式配置命令其他部分命令:Makemrproper命令清除所有的旧的配置和旧的编译目标文件等。Makedep命令搜索Linux编译输出与源代码之间的依赖关系、并生成依赖文件。Makeclean清除以前构造内核时生成的所有目标文件、模块文件和临时文件。MakezImage编译Linux内核,生成压缩的内核映像文件。4.3Linux内核编译与下载1)内核解压72)内核配置Linux针对MMC/SD内核配置的步骤:(1)在主菜单下选择Loadablemodulesupport---[*]EnableLoadablemoduLeSupport利用模块可将不常用的设备驱动或功能作为模块放在内核外部,必要时动态地调用。操作结束后从内存中删除,这样可以有效地使用内存,同时也可减小了内核的大小。模块可以自行编译并具有独立的功能,即使需要改变模块的功能,也不用对整个内核进行修改。文件系统,设备驱动,二进制格式等很多功能都支持模块。一定要选择[*]。(按空格键)8[]SetversioninformationonallSymbolsformodules利用这个功能能够让内核使用其它内核版本模块或没有包含在此kernel的特殊的模块。一般选择[N]。9[*]KernelmoduleLoader这个设置使kernel对模块处于常备状态。在不使用Insmod或rmmod命令情况下,kernel程序自动将需要执行的模块调用到内存中,一定时间内不使用该模块时自动将其从内存删除,一般要选择[*]。(2)再回到主菜单下选择Generalsetup―――选择“Supportforhot-pluggabledevices”,出现“MMC/SDdevicedrivers”:10点击“MMC/SDdevicedrivers”,进入下一页选择:11用向下的箭头,选择LoadanAlternaeConfigurationFile选项,12输入配置文件名arch\arm\def‐configs\xsbase270,退出并保存。2)配置完成后,重新编译内核,需要输入以下指令:生成的zImage存放路径为:将zImage拷贝到tftpboot文件夹下:3)内核烧写重新打开一个终端,输入命令:13root@ubuntu:~#minicom然后重启开发板电源,看到Boot启动信息后按任意键启动Boot的OperationMenu,我们需要用这个boot内嵌工具下载内核。然后再提示信息Pleaseenteryourselection后面输入2,获取本地IP地址:可以看到Op

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功