第14章 SD卡驱动参数的配置与编译.ppt

上传人:p** 文档编号:555025 上传时间:2023-10-31 格式:PPT 页数:35 大小:493.50KB
下载 相关 举报
第14章 SD卡驱动参数的配置与编译.ppt_第1页
第1页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第2页
第2页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第3页
第3页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第4页
第4页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第5页
第5页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第6页
第6页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第7页
第7页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第8页
第8页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第9页
第9页 / 共35页
第14章 SD卡驱动参数的配置与编译.ppt_第10页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第14章 SD卡驱动参数的配置与编译.ppt》由会员分享,可在线阅读,更多相关《第14章 SD卡驱动参数的配置与编译.ppt(35页珍藏版)》请在第壹文秘上搜索。

1、第14章 SD卡驱动参数的配置与编译本章重点 SD卡的基本概念 简单块设备驱动框架 块设备驱动程序设计流程本章内容14.1 SD概述 14.2 内核SD卡驱动参数的配置14.3 制作与生成cramfs文件系统 14.1 SD概述 14.1.1 SD卡应用 SD卡(Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备。SD卡体积小巧,广泛应用在数码相机上,是由日本的松下公司、东芝公司和美国SanDisk公司于1999年8月共同开发研制。最大的特点就是通过加密功能,保证数据资料的安全保密,有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到

2、SD卡中,因此SD卡已广泛地应用于嵌入式设备的存储系统,如数码相机等。SD卡在外形上同MultiMedia Card卡保持一致,并且兼容MMC卡接口规范,其投影面积与MMC卡相同,只是略微厚一点,但是SD卡的容量大得多,且读、写速度也比MMC卡快4倍。同时,SD卡的接口与MMC卡是兼容的,支持SD卡的接口大多支持MMC卡。14.1 SD概述 14.1.2 SD卡的辨别 目前市场上SD卡的品牌很多,诸如Sandisk、Kingmax、松下和Kingston。1)SanDisk产的SD卡是市面上最常见的,分为高速和低速SD卡。2)Kingmax的SD卡,采用了独特的一体化封装技术(PIP),最高传

3、输速率10MB/s,具有防水、防震、防压的三防设计,它可以满足野外拍摄的各种要求。3)松下SD卡,其技术可以说是市面上最好的SD卡之一了。4)Kingston SD卡,在众多的闪存类产品中,它是体积最小的一种,提供了长达5年的质保时间。随着SD卡存储技术的发展,逐渐出现了Mini SD和Micro SD卡,如图14.1所示。14.1 SD概述 14.1.3 SD卡的接口定义及管脚功能 SD卡通过9针的接口与专门的驱动器相连接,不需要通过额外的电源来保持SD卡上存储的信息,图14.2所示是卡引脚功能示意图,SD卡的管脚分配以及在MMC/SPI模式下的功能描述如表14.1所示。14.1 SD概述1

4、SD卡总路接口模式及功能按照SD卡的协议描述可分为两种总线的接口。(1)SD BUS 模式物理层定义:D0D3数据传送CMD 进行CMD 和Response CLK 大家最熟悉的HOST时钟信号线VDD VSS 电源和地(2)SPI BUS 模式物理层定义:CLK HOST时钟信号线DATAIN HOSTSD Card数据信号线DATAOUT SD CardHOST数据信号线除了上述数据线外在SPI BUS 模式下还需CS片选。14.1 SD概述2SD总线的访问状态SD总线的访问状态有3种。1)COMMOND:启动操作的会话,由Host从CMD连线传送到卡类设备。2)Response:响应CM

5、D的会话,由卡类设备CMD连线传送至Host。3)Data:在Host与卡设备间传送数据的双向数据流,物理链路为Data0Data3。注意:每一个完整的操作都需要一个CMD来启动,根据不同的CMD有相应的Data和Response。14.1 SD概述 14.1.4 SD的寄存器 关于寄存器的部分可以在S3C2410的datasheet中得到,如表14.2所示。14.1 SD概述 14.1.5 S3C2410与SD的连接S3C2410与SD的连接如图14.3所示,从图中可以清楚地看到SD管脚与S3C2410的连接情况。各个管脚的说明如下:SDDATA0SDDATA3数据传送线SDCMD 命令线和

6、Response线 SDCLK SD时钟信号线EINT7 写保护线14.2 SD卡驱动参数的配置 14.2.1 SD卡驱动参数的配置SD卡驱动参数配置流程如下:14.2 SD卡驱动参数的配置注意:注意:本节以内核2.6.24为例,使用的交叉编译为3.4.1版本,更新bootloader是为了支持2.6内核。步骤1.利用锐极提供的ppcboot,通过网络下载文件ppcboot.bin到目标板30008000地址上。SMDK2410 tftp 30008000 ppcboot.bin SMDK2410 protect off all然后进行烧写:SMDK2410 fl 0 30008000 200

7、00 注意:注意:上述命令的含义是把目标板上地址为0 x30008000的内容传送到flash 的0 地址,也就是ppcboot 的起始地址,20000表示是要烧写的ppcboot的大小,单位为字节。步骤2.下载Linux内核2.6.24.http:/www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz214.2 SD卡驱动参数的配置下载后解压内核rootlocalhost#tar-xjvf linux-2.6.24.4.tar.bz2rootlocalhost#cd linux-2.6.24.4 步骤3.修改Makefile修改

8、内核目录树根下的的Makefile,指明交叉编译器rootlocalhost linux-2.6.24.4#vi Makefile第193行改找到ARCH和CROSS_COMPILE,修改为ARCH?=armCROSS_COMPILE?=arm-linux-然后设置你的PATH环境变量,使其可以找到你的交叉编译工具链rootlocalhost linux-2.6.24.4#echo$PATH/usr/local/arm/3.4.1/bin:/usr/local/arm/3.4.1/bin:步骤4.复制编译配置文件到linux-2.6.24.4下面rootlocalhost linux-2.6.

9、24.4#cp arch/arm/configs/s3c2410_defconfig.config 14.2 SD卡驱动参数的配置步骤5.修改flash分区rootlocalhost linux-2.6.24.4#cd drivers/mtd/maps/rootlocalhost maps#cp cfi_flagadm.c s3c2410.crootlocalhost maps#vi s3c2410.c将FLASH_PHYS_ADDR和FLASH_SIZE这两个宏分别修改成自己板子的flash起始地址和大小。然后修改结构体数组flagadm_parts添加自己的分区信息,修改以后如下:#def

10、ine FLASH_PHYS_ADDR 0 x01000000#define FLASH_SIZE 0 x01600000 struct map_info flagadm_map=.name=NOR flash on S3C2410,.size=FLASH_SIZE,.bankwidth=2,;14.2 SD卡驱动参数的配置struct mtd_partition flagadm_parts=.name=bootloader,.size=0 x040000,.offset=0 x0 ,.name=kernel,.size=0 x0200000,.offset=0 x040000 ,.name=

11、cramfs,.size=0 x300000,.offset=0 x240000 ,14.2 SD卡驱动参数的配置 .name=ramdisk,.size=0 x2c0000,.offset=0 x540000 ,.name=jffs2,.size=0 x700000,.offset=0 x800000 ;接下来告诉内核使用该驱动程序。修改maps目录下的Kconfig文件,该文件决定出现在menuconfig中的项目,在configMTD_CDB89712之后添加config MTD_S3C2410 tristate RJ 2410 board14.2 SD卡驱动参数的配置修改该目录下的Ma

12、kefile,添加如下内容:obj-$(CONFIG_MTD_S3C2410)+=s3c2410.o(这样make menuconfig时,在MTD项目中将出现”RJ 2410 board”board选项,选中它并重新编译内核就完成了分区工作,启动时将看到分区信息)步骤6.支持启动时挂载 devfs为了使内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统,修改fs/Kconfig文件rootlocalhost linux-2.6.24.4#vi fs/Kconfig找到menu Pseudo filesystems添加如下语句:config D

13、EVFS_FSbool/dev file system support(OBSOLETE)“default yconfig DEVFS_MOUNT14.2 SD卡驱动参数的配置bool Automatically mount at bootdefault ydepends on DEVFS_FS步骤7.为了方便直接在内存中调试内核,将arch/arm/kernel/setup.c文件中的parse_tag_cmdline()函数中的strlcpy()函数注释掉,这样就可以使用默认的CONFIG_CMDLINE了,在.config文件中它被定义为:“root=/dev/mtdblock/2 ro

14、 init=/bin/sh console=ttySAC0,115200”。步骤8.配置内核上面已经复制了一个编译配置文件到linux-2.6.24.4下面(cp arch/arm/configs/s3c2410_defconfig.config)以这个为模板增删一些配置即可:14.2 SD卡驱动参数的配置rootlocalhost linux-2.6.24.4#make menuconfigLoadable module support*Enable loadable module support*Automatic kernel module loadingSystem Type*S3C2

15、410 DMA supportBoot options Default kernel command string:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200#说明:mtdblock2代表我的第3个flash分区#console=ttySAC0,115200使kernel启动期间的信息全部输出到串口0上.#2.6内核对于串口的命名改为ttySAC0,但这不影响用户空间的串口编程。#用户空间的串口编程针对的仍是/dev/ttyS0等 14.2 SD卡驱动参数的配置Floating point emulatio

16、n*NWFPE math emulationThis is necessary to run most binaries!#接下来要做的是对内核MTD子系统的设置Device Drivers Memory Technology Devices(MTD)*MTD partitioning support#支持MTD分区,这样我们在前面设置的分区才有意义*Command line partition table parsing#支持从命令行设置flash分区信息,灵活RAM/ROM/Flash chip drivers Detect flash chips by Common FlashInterface(CFI)probe Detect nonCFI AMD/JEDECcompatible14.2 SD卡驱动参数的配置flash chips Support for Intel/Sharp flash chips Support for AMD/Fujitsu flash chips Support for ROM chips in bus mappingMapping drivers f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机原理

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!