S3C2440 Linux驱动移植——SD卡驱动
开发板:TQ2440
内核:Linux 2.6.32
PC OS:Ubuntu 11.04
本文将对SD卡驱动的移植做简要介绍。
1. 添加板级信息
打开arch/arm/mach-s3c2440/mach-smdk2440.c。
添加如下结构体:
/* Added by Yan Jun for SD/MMC driver */
/*********************************************/
#include <plat/mci.h>
static struct s3c24xx_mci_pdata s3c_mci_data = {.no_detect = 0,.gpio_detect = S3C2410_GPG(8),.no_wprotect = 0,.gpio_wprotect = S3C2410_GPH(8),
};
no_detect表示使用探测,也就是使用1个中断管脚来检测SD卡是否插入。
no_wprotect表示使用写保护。
gpio_detect和gpio_wprotect是根据原理图上的gpio来填写的,请参考你的原理图。
添加如下函数:
#if defined (CONFIG_MMC_S3C)
void __init s3c_add_device_sdi(struct s3c24xx_mci_pdata *pdata)
{s3c_device_sdi.dev.platform_data = pdata;//if(!pdata && !pdata->no_detect)// s3c2410_gpio_cfgpin(S3C2410_GPG(8), S3C2410_GPG8_EINT16);platform_device_register(&s3c_device_sdi);
}
#else
void __init s3c_add_device_sdi(struct s3c24xx_mci_pdata *pdata) {}
#endif
在smdk2440_machine_init函数最后增加:
s3c_add_device_sdi(&s3c_mci_data); /* Added by Yan Jun for SD/MMC driver */
2. 配置内核
3. 编译内核并烧入
4. 修改/etc/mdev.config
修改该文件的目的是为了让sd卡可以自动挂载。
内容如下:
mmcblk[0-9]*p[0-9] 0:0 0660 @/etc/sdcard_insert.sh
mmcblk[0-9]* 0:0 0660 $/etc/sdcard_remove.sh
这里调用了两个脚本,脚本如下。
[root@yj423 yj423]#cat /etc/sdcard_insert.sh
#!/bin/sh
echo "SD card insert action detected" > /dev/console
echo "MDEV = $MDEV" > /dev/console
mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/sdcard
[root@yj423 yj423]#cat /etc/sdcard_remove.sh
#!/bin/sh
echo "SD card remove action detected" > /dev/console
echo "MDEV = $MDEV" > /dev/console
sleep 1
umount -fl /mnt/sdcard
最后,创建目录/mnt/scard 即可。
SD卡插入后,会自动挂在至/mnt/sdcard。
5. 验证
首先看下设备文件:
[root@yj423 yj423]#ls /dev/mmcblk0*
/dev/mmcblk0 /dev/mmcblk0p1
接着看下挂载情况:[root@yj423 yj423]#mount
rootfs on / type rootfs (rw)
/dev/root on / type yaffs2 (rw,relatime)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
/dev/mmcblk0p1 on /mnt/sdcard type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=cp936,shortname=mixed,errors=remount-ro)
最后两行显示了设备mmcblk0p1挂在到了/mnt/sdcard。
最后,去/mnt/sdcard下看看。
[root@yj423 yj423]#ls /mnt/sdcard/
DCIM mp3
NOTE: 如果先插入SD卡,再启动系统,系统将无法正常启动,表现为无法进入控制台。原因待查。
S3C2440 Linux驱动移植——SD卡驱动相关推荐
- mini2440 linux移植开发实战指南,Linux-2.6.32.2内核在mini2440上的移植---移植SD卡驱动...
移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存. 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linu ...
- LPC1768 SSP0驱动示例——SD卡驱动
在STM32的SPI驱动上移植过来的,由于代码较长,这里只提供关键代码: /* SSPxSR - bit definitions. */ #define TFE 0x01 #define TNF 0x ...
- linux sd卡驱动流程图,SD卡驱动(详细介绍,不明白的人可以仔细看看了.有流程图)-转-OpenEdv-开源电子网...
ffice ffice" /> 一.SD/MMC卡介绍 1.1.什么是MMC卡 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡.它是一种非易失性存储器件,体积小巧(2 ...
- Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统
系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...
- 详解sd协议以及裸机和u-boot中的sd卡驱动(2)
3. sd卡驱动 3.1 引入 经过第2章我们知道,要想实现读写sd卡,需要按照sd协议规定的基本传输单位(命令.响应.数据)以及流程(初始化.读.写),向sd卡发送信号或者从sd卡接收信号. 为了简 ...
- SD卡驱动分析(一)
Android下的SD卡驱动与标准LINUX下的SD卡驱动好像没有太大的区别,这里就以高通的ANDROID 2.3以代表,来简要分析一下LINUX下SD卡驱动的写法.由于小弟的技术有限,分析的有错的地 ...
- linux读取sd卡文件数据,Linux系统和SD卡读写部分程序.doc
Linux系统和SD卡读写部分程序 11.1.1 SD卡系统概念 Linux系统移植>第11章SD卡驱动移植,本章重点为SD卡协议介绍和SD卡驱动分析,后面也介绍SD卡驱动移植过程.随着SD卡存 ...
- 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 一.开发环境 主 机:VMWa ...
- linux 驱动编写(sd卡驱动)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 随着sd卡的流行,sd卡在嵌入式设备上使用的场景也越来越多.那下面我们可以看一下,linux驱动 ...
最新文章
- “应付”大学作业,我花3小时写了一个“文本转手写”神器
- 华为算力最强AI芯片商用:2倍于英伟达V100!开源AI框架,对标TensorFlow和PyTorch...
- C语言程序设计之标准库快速排序qsort函数用法示例
- 三次样条插值Python实现
- [51nod]1229 序列求和 V2(数学+拉格朗日差值)
- [css] 你知道什么是流体排版吗?说说它的原理是什么?
- django中自定义了manager函数,使用的时候报错AttributeError: 'Manager' object has no attribute 'title_count'...
- IT十八掌掌第十一天课程总结
- 关于Cortex-M3 DesignStart ICODE DCODE ITCM DTCM 以及MemoryMap的划分
- Autocad中批量调整增强属性块中的元素的位置
- C++ Boost库:互斥量 mutex
- 图像超分辨率重建原理学习
- gmap 支持python吗_在gmap中使用bokeh的python为for circle添加工具提示
- 微信公众号开发:Java后台如何处理公众号关注和取关事件
- java curator_使用curator实现选举
- 计算机正确的按键手法游戏,lol正确的按键手法图解
- KBL410-ASEMI整流桥,KBL410规格书,KBL410机械数据
- MAC下的Sublime Text关闭自动更新提示,关闭更新检查,适用于Sublime 3和Sublime 4
- 分布式光纤测温系统DTS-BLY-5S
- 蓝牙ATT操作详解(copy)