ARM嵌入式系统课程设计——MMCSD卡驱动程序设计.doc
《ARM嵌入式系统课程设计——MMCSD卡驱动程序设计.doc》由会员分享,可在线阅读,更多相关《ARM嵌入式系统课程设计——MMCSD卡驱动程序设计.doc(20页珍藏版)》请在沃文网上搜索。
1、目录第一章 引言11.1 课程设计目的11.2 课程设计要求1第二章 课程设计平台构建与流程12.1 嵌入式系统开发平台构建12.2 课程设计硬件结构与工作原理1第三章 BOOTLOADER移植与下载43.1 Bootloader解压43.2 Bootloader编译43.3 Bootloader下载4第四章 LINUX内核移植与下载54.1 Linux内核总流程54.2 Linux源代码安装64.3 Linux源代码安装分析64.4 Linux内核配置、编译、烧写6第五章 根文件系统建立与文件系统下载115.1Linux文件系统的类型115.2文件系统的制作125.3文件系统的下载125.4
2、功能模块运行和调制14第六章 思考题15第七章 课设中遇到的问题及解决方法17第八章 总结与体会18第一章 引言1.1 课程设计目的1) 了解PXA27X微处理器GPIO的功能2) 了解MMC卡驱动程序的架构及编程方法3) 掌握MMC卡的使用方法1.2 课程设计要求1) 理解基于Linux的嵌入式系统交叉开发环境,对嵌入式系统的开发流程有详细的了解;2) 掌握开发工具链的构建方法,能独立进行系统开发操作;3) 掌握Linux的常用命令,在linux系统下能熟练的使用这些常用命令;4) 熟悉linux内核的知识以及原理,掌握定制Linux内核的方法;5) 基于Linux操作系统,以及XSBase
3、270ARM实验开发平台一套,把MMC存储卡挂载目标板上并进行文件的复制操作。第二章 课程设计平台构建与流程2.1 嵌入式系统开发平台构建1) 装有Linux操作系统的PC机一台;2) XSBase270 ARM实验开发平台一套3) MMC存储卡一块2.2 课程设计硬件结构与工作原理2.2.1 目标板的MMC卡硬件接口目标板的MMC/SD卡的硬件接口如图1.1所示,根据PXA27x的MMC/SD/SDIO控制器的信号功能以及PXA27x的GPIO的功能分配,命令控制线MMCMD与GPIO112相连,此时引脚GPIO112必须配置成转换功能1(Alternate Function 1)的输入或输
4、出方式(具体参考PXA27X开发手册),时钟端MMCLK利用了通用IO口GPIO32转换功能1输出方式,4位总线MMDAT0到MMDAT3分别与GPIO111、GPIO110、GPIO109和GPIO92相连,都时使用了通用IO口的转换功能1的输入或输出方式。图1.2为MMC/SD卡的供电电路图。图1.1 目标板的MMC/SD卡的硬件接口图1.2 MMC/SD卡的供电电路图2.2.2 PXA270的MMC/SD/SDIO控制器PXA270的MMC/SD/SDIO控制器在访问PXA270处理器的软件与MMC存储堆和支持MMC、SD及SDIO通信协议之间充当联结作用。PXA27x的MMC控制器协议
5、规范遵守多媒体卡系统规范V3.2(MultiMediaCard System Specification Version 3.2);SD控制器支持一个基于SD存储卡规范V1.01(SD Memory Card Specification Version 1.01)SD卡或基于SDIO卡规范V1.0( SDIO Card pecification Version 1.0)。MMC/SD/SDIO控制器采用标准的MMC传输协议或串行通信接口SPI协议模式。访问PXA270的软件使用MMC传输协议或SPI模式作为与MMC控制器通信的协议。目标板的SD驱动程序采用了MMC通信传输协议。1)MMC/SD
6、/SDIO控制器特性:. 在MMC、1位SD/SDIO和SPI模式中,数据传输速率高达19.5Mbps;. 对于4位SD/SDIO的数据传输速率高达78Mbps;. 具有两个接受和发送FIFO数据缓冲区;. 具有MMC/SD/SDIO和SPI两种操作模式;MMC/SD/SDIO模式支持MMC、SD和SDIO的通信协议,SPI模式支持SPI通信协议;. 在SD和SDIO通信协议中,支持1位和4位数据传输;. 控制器可根据FIFO数据缓冲区的状态关闭和启动时钟信号,防止数据溢出;. 支持所有有效的MMC和SD/SDIO数据传输协议;. 基于中断的应用接口控制软件交互操作;. 在数据流的写操作中,允
7、许10字节大小的数据或更大的数据流;. 使用MMC通信协议,支持多个MMC卡;. 使用SD或SDIO通信协议,只支持一个SD卡或SDIO卡;. 使用SPI通信协议;可支持两个MMC卡或SD/SDIO卡,也可支持两者的混合使用;2)MMC/SD/SDIO控制器的信号功能与对应引脚:信号MMC和SD/SDIOSPI模式功能对应引脚MMCLK输出输出MMC和SD/SDIO总线时钟GPIO32MMCDM双向输出MMC和SD/SDIO:命令和响应标志双向IO口SPI模式:命令和写数据输出口GPIO112MMDAT双向输入MMC和SD/SDIO:读写数据双向IO口SPI模式:读数据和响应标志输入线GPIO
8、111MMDAT双向输入MMC和SD/SDIO:SD/SDIO的4位数据传输线和信号SDIO到控制器的中断信号SPI模式:信号SDIO到控制器的中断信号GPIO110MMDAT/MDCCS双向输出SD/SDIO:4位数据传输线SPI模式:CS0片选信号GPIO109MMDAT/MDCCS双向输出SD/SDIO:4位数据传输线SPI模式:CS1片选信号GPIO922.2.3 MMC卡的通信协议主机与MMC卡的所有通信都是由主机发起,主机发出广播和点对点两种类型通信命令,在广播通信命令中,主机发出的命令被所有的卡接受,只有部分命令需要响应;而在点对点通信命令中,命令被发送到具体地址的卡中,并由该卡
9、对所接受的命令做出响应。第三章 Bootloader移植与下载3.1 Bootloader解压先将D:emdorEELiod_V4_SDK目录下的Linux-2.4复制到虚拟机里root的主文件夹中,然后用如下指令进行解压:利用上述命令解压后,bootloader源代码解压到当前目录中Boot-XSBase270文件夹中。3.2 Bootloader编译在解压的目录里进行make 编译。rootubuntu:Bootloader # cd Boot-XSBase270rootubuntu: Boot-XSBase270 # make cleanrootubuntu: Boot-XSBase27
10、0 # make编译完成后, 在当前目录下会生成bootloader 映象文件boot,将此boot拷贝到share共享文件夹下。3.3 Bootloader下载打开实验台电源,启动H-JTAG 和H-Flasher,在H-Flasher 中装载配置文件pxa270.hfc(Load菜单,选中C:driversH-JTAG中pxa270.hfc文件),点击Programming中的Check,Scr File 选择E:share中的boot(或者是D:emdorEELiod_V4_SDK Linux-2.4images中的boot 文件),点击Program,烧写成功后点击 Verify 校验
11、。第四章 Linux内核移植与下载4.1 Linux内核总流程4.2 Linux源代码安装参照以前做过的实验五、七BootLoader实验。内核解压:4.3 Linux源代码安装分析Linux提供三个不同的命令进行Linux的配置,效果完全一样:make config 控制台命令行方式配置命令make menuconfig 文本菜单方式配置命令make xconfig X窗口图形界面方式配置命令其他部分命令:Make mrproper 命令清除所有的旧的配置和旧的编译目标文件等。Make dep 命令搜索Linux编译输出与源代码之间的依赖关系、并生成依赖文件。Make clean 清除以前构
12、造内核时生成的所有目标文件、模块文件和临时文件。Make zImage 编译Linux内核,生成压缩的内核映像文件4.4 Linux内核配置、编译、烧写4.4.1 Linux内核配置进入内核源代码目录linux-2.4.21-51Board_EDR,执行make mrproper:删除所有以前在构核过程所产生的所有文件,执行make menuconfig,对内核进行配置。Linux针对MMC/SD内核配置的步骤:1)在主菜单下选择Loadable module support -* Enable Loadable moduLe Support利用模块可将不常用的设备驱动或功能作为模块放在内核外
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 嵌入式 系统 课程设计 MMCSD 驱动程序 设计