編者:這個驅動還是比較復雜的,先移植著,以后在分析吧。
SD卡驅動移植
1 在內核中注冊SD 設備驅動 并把SD 卡結構設備添加到目標平臺設備集中,如圖: 2 測試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,
};
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 卡驅動的移植。
接上面的步驟,在內核源代碼目錄執行:make zImage,把生成的內核燒寫到開發板中,先不要插入SD 卡(這樣做是為了看插入時的打印信息),等系統啟動后,進入命令行控制臺,此時插入SD 卡,此時SD 卡已經被自動掛載到開發板的/sdcard 目錄,同時,在Qtopia 系統中,可以看到任務欄上多了一個圖標,如圖SD 卡或者優盤中的所有文件會在“文檔”組中全部顯示出來,但它是不顯示目錄名稱的,如果你的文件太多,那么其列表也是相當可觀的。
說明:支持SD 卡或者優盤自動掛載是通過友善之臂開發的一個Qtopia 2.2.0 插件實現的,目前它只識別MMC/SD 卡或優盤的第一個分區,并且格式為常見的VFAT/FAT32/FAT16,如果你的優盤或者SD 卡不能識別,請檢查是否為VFAT/FAT32/FAT16 格式。
上一篇:linux-2.6.32在mini2440開發板上移植 配置USB外設
下一篇:linux-2.6.32在mini2440開發板上移植 移植UDA1341 音頻驅動
推薦閱讀最新更新時間:2025-04-23 17:46





設計資源 培訓 開發板 精華推薦
- 使用 Analog Devices 的 LT1634BCS8-4.096 的參考設計
- LTC4368IMS-2 100V UV/OV 和具有雙向斷路器的反向保護控制器的典型應用電路
- AN54,采用 LTC1149 12-48V、5V/10A 大電流、高電壓降壓轉換器的應用電路
- LM258DR2G 雙四路濾波器運算放大器的典型應用
- NCP551 150 mA CMOS 低 Iq 低壓降穩壓器的典型應用,適用于輸入電壓大于 12 V
- TPD7104AF 的單輸出高端 N 溝道功率 MOSFET 柵極驅動器應用和電路
- 用于電源管理的 110W、8V、15V、28V、120V 交流轉直流多輸出電源
- NCP731ADNADJR2GEVB:LDO 穩壓器(38V、150mA、低噪聲 8uVRMS、可調、MSOP-8 封裝)評估板
- 具有可調軟啟動的 LT1506CR-3.3 降壓轉換器的典型應用電路
- LTC2376-16、16 位、250ksps、低功率 SAR ADC 的典型應用電路