Ubuntu
Linux 上的 SD 讀卡器:底層的 SPI 或 SD 協議
我有一台帶 SD 讀卡器的筆記本,我想知道 GNU/Linux 驅動程序是使用 SPI 協議還是專有 SD 協議(一位或四位)。我問這個是因為我正在測試我正在使用的基於 SPI 的 SD 卡讀卡器設備,當我檢查筆記型電腦上的讀取速度時,它以 6MB/s 的速度讀取卡……另一件事,我想看看驅動源,你知道我在哪裡可以找到它們嗎?
提前致謝!
在不查看核心原始碼的情況下,這將取決於特定的 SD 晶片及其核心驅動程序。您應該查看數據表和核心原始碼。例如,在我的筆記型電腦上:
$ lspci | grep SD 15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
據推測,該晶片在硬體中實現了 SD 狀態機,以及一些晶片到主機介面(PCI,在我的情況下)。晶片到卡連接的細節可能會被晶片抽像出來,但很可能選擇會受到主機的影響。除非存在已知錯誤,否則核心可能會以最快的方式執行。
更新:檢查核心原始碼。如果卡支持 4 位傳輸,它們會自動啟用。
drivers/mmc/core/mmc.c
您可以在函式中看到這一點mmc_init_card()
。對於 Linux 2.6.38,第 489 行似乎啟動了高速傳輸,而第 535 行似乎啟動了 4 位寬傳輸。不要讓“mmc”迷惑你。此目錄包含處理 SD(包括 SDIO)卡以及 MMC 的驅動程序。