1.
添加SD卡設(shè)備到系統(tǒng)設(shè)備初始化列表中。2.6.30.4內(nèi)核對(duì)MMC/SD卡的支持已經(jīng)非常完善了,而且支持超大容量32GB,所以這里我們只需把
s3c_device_sdi添加到列表中即可,該設(shè)備在arch/arm/mach-s3c2440/mach-smdk2440.c platform結(jié)構(gòu)中增加&s3c_device_sdi語(yǔ)句:

2. 修改MMC/SD驅(qū)動(dòng)源碼。主要是添加SD卡的中斷處理。
#gedit drivers/mmc/host/s3cmci.c |
在1335行,添加如下內(nèi)容:
host->irq_cd = IRQ_EINT18;//注:SD卡中斷管腳需根據(jù)硬件連接圖實(shí)際情況修改 s3c2410_gpio_cfgpin(S3C2410_GPG10, S3C2410_GPG10_EINT18); //這里和嵌入式LINUX之我行的作者開(kāi)發(fā)板的中斷管腳不同,所以這里改為EINT18了。
3. 修改內(nèi)核配置選項(xiàng)。完成后重新編譯內(nèi)核下載到開(kāi)發(fā)板上
Device Drivers ---> <*> MMC/SD/SDIO card support ---> --- MMC/SD/SDIO card support [ ] MMC debugging [ ] Allow unsafe resume (DANGEROUS) *** MMC/SD/SDIO Card Drivers *** <*> MMC block device driver [*] Use bounce buffer for simple hosts < > SDIO UART/GPS class support < > MMC host test driver *** MMC/SD/SDIO Host Controller Drivers *** < > Secure Digital Host Controller Interface support < > MMC/SD/SDIO over SPI <*> Samsung S3C SD/MMC Card Interface support |
4. 插入SD卡。當(dāng)系統(tǒng)啟動(dòng)后插入SD卡就會(huì)出現(xiàn)一些信息,還可以看到mmcblk0就是SD設(shè)備了
5. 掛載SD卡。執(zhí)行mount命令將SD卡掛載到/mnt/mmc/目錄下,但是沒(méi)成功,出錯(cuò)啦
6. 錯(cuò)誤分析處理。首先查看/dev/目錄下并沒(méi)有mmcblk0p1節(jié)點(diǎn)所以出錯(cuò),我們查看/proc/partitions/目錄發(fā)現(xiàn)SD卡的主設(shè)備號(hào)是179,次設(shè)備號(hào)是1,那么我們就創(chuàng)建這個(gè)設(shè)備的節(jié)點(diǎn),b代表塊設(shè)備,最后再執(zhí)行mount命令,沒(méi)有出錯(cuò)
7. SD卡成功掛載。查看SD卡中的內(nèi)容
|