linux-2.6.20.x 以上版本對sd卡有較好支援,可以支援1.0及2.0 sd卡的協議,所以linux2.6.2x 以上的版本都支援大容量(>=4g)的sd卡,而linux-2.6.1x 對sd卡的支援只能到 2g,大於2g的sd就無法識別.
傳送cmd8,檢查卡是否sd2.0。sd1.1是不支援cmd8的,因此在sd2.0 spec中提出了先傳送cmd8,如響應為無效命令,則卡為sd1.1,否則就是sd2.0(請參考sd2.0 spec)。cmd8在sd1.1上是沒有的.
在 mmc.c 檔案中主要加入了這兩個函式:
mmc_read_switch_caps(host);
mmc_process_ext_csds(host);
在讀大容量的sd卡時用到
將linux-2.6.2x 以上版本sd卡的驅動植入 linux-2.6.18中,插入sd卡,檢測容量及一些相關資訊沒有問題,但mount sd卡時有錯誤,提示 kernel debug error driver/mmc/mmc.c 111!
bug_on(mrq->data->blksz > host->max_blk_size);
bug_on(mrq->data->blocks > host->max_blk_count);
bug_on(mrq->data->blocks * mrq->data->blksz > host->max_req_size);
遮蔽掉上面3行語句.問題解決!
但第二次插入sd卡時就沒有任何反應!肯定是 remove 的時候出了問題,將 mmc_block.c檔案中mmc_blk_remove 函式中的
mmc_cleanup_queue(&md->queue);
去掉,加入以下一行:
md->disk->queue = null;
sd卡的問題解決
win (32位)支援4G記憶體
現在很多電腦的記憶體都能夠達到4g了,但如果安裝的是win7 32位作業系統,那麼預設情況下,4g記憶體無法全部使用。可以通過如下步驟使之支援4g記憶體 2 然後執行剛才解壓的 addbootmenu.cmd,在dos命令提示符下輸入 y,回車。3 然後在 我的電腦 右鍵 屬性 左上角 高階系統設定...
讓RH AS 4支援NTFS檔案系統
1 獲取正確的rpm 登入 http www.linux ntfs.org 在左側欄 redhat and fedora 段中,選擇help and information instructions rpm ihv kernel module ntfs 2.6.9 11.el 2.1.20 0.rr...
讓 UV4 支援STC 微控制器
keil 本身並沒有自帶 stc 8051 微控制器的資料,這樣用起來就非常令人不爽,好在國內有個青年已經整理了乙個補丁。這個補丁包含三個修正 ok,就一般應用來說這個補丁已經足夠了,但是對於追求完美的人來說還略有不足,因為這個補丁會覆蓋掉uv4自帶的器件資料庫uv4.cdb。打上補丁就丟失了最新的...