SD卡分析二

2021-05-24 01:24:35 字數 981 閱讀 1171

4、core層分析:

core層完成了不同協議和規範的實現,並為host層的驅動提供了介面函式,在host層我們曾經呼叫的兩個函式:

mmc_alloc_host(sizeof(struct s3cmci_host), &pdev->dev);

mmc_add_host(mmc

);我 們就從這兩個函式入手,來分析core層與host層是如何互動的。

先看mmc_alloc_host函式:

dev_set_name(&host->class_dev, "mmc%d", host->index);

host->parent = dev;

host->class_dev.parent = dev;

host->class_dev.class = &mmc_host_class;

device_initialize(&host->class_dev);

這 幾句是將導致在/sys/class/mmc_host下出現mmc0目錄,新增類裝置,在2.6.21後的版本中,類裝置的class_device已 近被device所取代,ldd3p387的內容有點out了

init_delayed_work(&host->detect, mmc_rescan);

初始化了乙個工作佇列,延時函式為mmc_rescan,這個延時函式很重要,下午要詳細分析

最後對host 做一些預設配置,不過這些配置在probe函式的後面都被重置了。

分析mmc_add_host(mmc

請求中cmd->data = null;mmc命令的data部分設定為null,這樣表示我們要傳輸的是命令而不是資料

mmc_wait_for_req(host, &mrq);//關鍵部分

在該函式中呼叫了mmc_start_request,而這個函式呼叫了 host->ops->request(host, mrq),這個request函式就是我們在前面分析的s3cmci_request,這樣mmc

的核心層。

SD啟動卡分析

常用於嵌入式系統的啟動之中 在 emmc 啟動 nor flash 啟動,nfs 啟動 sd 卡啟動也是最常用的一種啟動方式。這裡以 8g 的 sd 卡作為講解 0 aa b b 2047 512 2047 512 1 255 1024 2 255 1024 2 1 8g u boot.環境變數 空...

Arduino控制SD卡(二)

上一節主要是介紹arduino自帶的例子中的一些sd卡的操作,包括瀏覽sd卡基本屬性 列舉sd卡上的檔案和資料夾 建立刪除檔案 讀寫檔案等。本節主要是寫乙個簡單的上位機程式,在其中可以瀏覽sd卡上的檔案和資料夾。本來還想做建立刪除檔案 資料夾等,後面犯懶了,覺得實現方式差不多,就只實現了瀏覽檔案和資...

SD卡讀寫 Verilog實現SD卡讀寫

目前常見的sd卡有兩種形式,一種是標準的sd卡,另外一種是tf卡,無論標準的sd卡或者tf卡,其基本協議是相同的,因此對於程式設計來說,這兩種型別的sd卡的讀寫方式是相同的。針對兩種不同型別的sd卡,其引腳介面訊號定義如下圖所示 標準sd卡 tf卡 對於上述的兩種型別的sd卡,都支援兩種操作模式,分...