linux-2.6.32在mini2440开发板上移植-SD卡驱动移植

发布时间:2024-06-19  

1 在内核中注册SD 设备驱动
Linux-2.6.32.2 已经自带了S3C2440 芯片的SD 卡驱动,我们只需在初始化代码中加入SD 平台设备结构就可以,打开arch/arm/mach-s3c2440/mach-mini2440.c,在nand flash 平台结构后面添加如下红色代码:
;在mini2440.c 的顶部添加SD 卡设备结构所需的头文件
#include
#include
static struct platform_device mini2440_device_eth = {
.name = "dm9000",
.id = -1,
.num_resources = ARRAY_SIZE(mini2440_dm9k_resource),
.resource = mini2440_dm9k_resource,
.dev = {
.platform_data = &mini2440_dm9k_pdata,
},
};
/* MMC/SD */
static struct s3c24xx_mci_pdata mini2440_mmc_cfg = {
.gpio_detect = S3C2410_GPG(8),
.gpio_wprotect = S3C2410_GPH(8),
.set_power = NULL,
.ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,
};

并把SD 卡结构设备添加到目标平台设备集中,如图:
static struct platform_device *mini2440_devices[] __initdata = {
& s3c_device_usb,
& s3c_device_rtc,
& s3c_device_lcd,
& s3c_device_wdt,
& s3c_device_i2c0,
& s3c_device_iis,
& mini2440_device_eth,
& s3c24xx_uda134x,
& s3c_device_nand,
&s3c_device_sdi,
};
SD 卡的驱动程序底层操作实际对应源代码linux-2.6.32.2/drivers/mmc/host/s3cmci.c,根据测试,当包含内核打印信息时,SD 卡可以被正常识别使用,而没有打印信息时,则表现的不太稳定,因此我们在该程序中添加了一句延时代码,如图:
;延时函数所需的头文件
#include
static void pio_tasklet(unsigned long data)
{
struct s3cmci_host *host = (struct s3cmci_host *) data;
s3cmci_disable_irq(host, true);
udelay(50); //在此处添加了延时函数
if (host->pio_active == XFER_WRITE)
do_pio_write(host);
这样,我们就完成了SD 卡驱动的移植。

 

2 测试SD 卡
接上面的步骤,在内核源代码目录执行:make zImage,把生成的内核烧写到开发板中,先不要插入SD 卡(这样做是为了看插入时的打印信息),等系统启动后,进入命令行控制台,此时插入SD 卡,此时SD 卡已经被自动挂载到开发板的/sdcard 目录,同时,在Qtopia 系统中,可以看到任务栏上多了一个图标,如图SD 卡或者优盘中的所有文件会在“文档”组中全部显示出来,但它是不显示目录名称的,如果你的文件太多,那么其列表也是相当可观的。
说明:支持SD 卡或者优盘自动挂载是通过友善之臂开发的一个Qtopia 2.2.0 插件实现的,目前它只识别MMC/SD 卡或优盘的第一个分区,并且格式为常见的VFAT/FAT32/FAT16,如果你的优盘或者SD 卡不能识别,请检查是否为VFAT/FAT32/FAT16 格式。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>