久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4162|回復: 1
打印 上一主題 下一主題
收起左側

eFAT32文件系統對4G以上的miniSD卡支持

[復制鏈接]
跳轉到指定樓層
樓主
ID:91350 發表于 2015-10-30 11:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   最近用eFAT32讀寫操作時發現文件系統只能對2G的卡進行讀寫,換成4G死活不行,于是乎開始搜了一下資料,原來是2G一下的是普通卡,上面沒有HC標示,4G-32G是大容量的上面有HC字樣如圖:


不能支持4G的卡是及其壞的,所以我決定要讓現在用的文件系統支持4G的存儲卡片。

自然是上網找代碼了,“偷”了RT的代碼回來。回來看了一下代碼,代碼比較簡單,就是他做了個I驅動封裝結構而已剝掉他不管就好了。 然后開始移植,把和硬件無關的全部拿來,然后修改代碼為我自己的style。換上自己的底層驅動。只保留他的運算和判斷部分。交付文件系統的接口也做了修改。原來的代碼中做了一個MSD_read/write和SDHC_read/write,兩份驅動函數,后來閱讀發現似乎沒有什么區別,我就照葫蘆畫瓢了。OK一切具備后編譯下載,并沒有得到我期待的正常的創建讀寫文件,而是得了個大零蛋回來。什么都沒有。從那時候開始找問題了,這是上周6的事。到現在基本上一周了。連續用掉哦好幾個晚上,本來都是打帝國時代的。被無情占用了.
總結如下:

一、初始化:主要目的是挑選出來SDHC卡和普通的V1.X卡片。
1、初始化的CMD8命令的正確響應
區別是否是SDHC的一個重要節點是給他發送CMD8命令,如果是SDHC的都會響應的,在程序中對這兩者的區別是V1.X和V2.X,代碼如下



2、初始化發送CMD55 + ACMD41 命令

3、 讀取OCR并分析


以上流程完成后初始化完成退出即可,有的程序中是還有后續的,哪些不要也可以。

二、讀取卡片總的扇區數量。這個就可以知道這個卡片是多么大的了。

V1.X的是



三、也是最重要的一環就是加載物理地址0扇區
這個加載是文件系統自己加在的,但是在操作中發現BUFF數據對,但不能找到啟動扇區。于是追蹤文件系統發現文件系統不健全少東西呀,。根本原因在讀取0扇區時返回的數據會被記錄進mydis的分區結構體中,這個結構體返回的數據正確,在對結構進行判別的時候發現沒有這一項,也就是SD卡文件系統的類型這項,如圖

這塊代碼對是否是FAT家族進行判斷,可能是代碼年代久遠,沒有0X0C的定義,這個FAT32系統,所以在識別的時候他返回錯誤,這里只需要給他加入一個宏即可

//unkonw FAT32 SDHC
#define PT_FAT32x 0x0C       

這樣系統就可以對啟動扇區進行正常的加載了。
四、讀寫驅動
值得注意的是讀寫驅動核心的接口和MSD的一模一樣,只不過是在地址輸入的時候加了一個判斷,

SDHC的下發的直接是扇區地址,無需轉換。
完成這這些之后就可以成功的創建讀寫文件啦。


實際上大部分時間是用來閱讀源代碼上。因為拿來品不是簡單的只用才行,要看個差不多吧,否則這種問題根本解決不了。現在好了附加產品是對文件系統的作者書寫有了大概的了解,明白了里面很多原來以為晦澀的東西,以及他的構架。

他的構架也是分層的,最底層是硬件然后上來是硬件接口驅動,然后就是一個獨特的IO管理系統,主要完成文件系統對內存的需求而制定的。遵循類似memalloc的規則,有分配有釋放。單位是一個扇區的大小512字節。有棧記錄有計數器。就是一個小型的內存管理。只是很小很簡單。他直接參與和驅動的數據交換,數據被放進高速緩存中。然后在上面就是FAT的分區記錄,對FAT的分區進行記錄最多4個只用1個嘛。在上面就是基于文件和簇的還有FAT表相文件屬性等等。最終留了UI接口。可以基本的按照unix那套進行啦。當然由于軟件時間久遠,有些地方難免有問題,FAT類型就是典型的。他只支持到0XB。FAT32的類型。現在是0XC。自己要fix.所以想要移植一個東西,也需要對他有充分的了解才可以。而且并非那么簡單。有許多東西一時半會根本看不懂。3層結構那基本是開玩笑的。不過慶幸的是結構里面基本都是不帶指針的,要是在來幾個指針函數,小鏈表虎林的,還會暈菜更久

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:70069 發表于 2020-4-10 09:17 | 只看該作者
謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97精品视频在线观看 | 欧美一区二区三区大片 | 日韩欧美在 | 国产91丝袜在线播放 | 日韩在线大片 | 欧美在线视频一区二区 | 日韩中文字幕 | 久久99精品久久久久久噜噜 | 国产真实精品久久二三区 | 国产在线精品免费 | 亚洲 中文 欧美 日韩 在线观看 | 91在线精品视频 | 国产一区亚洲二区三区 | 久草成人 | 成人精品视频在线观看 | 亚洲精品1区2区3区 91免费看片 | 亚洲 中文 欧美 日韩 在线观看 | 日本xx视频免费观看 | 欧美成人在线免费 | 日本午夜精品一区二区三区 | 99热在线播放 | 一区二区国产在线观看 | 成人在线观看中文字幕 | 九九精品在线 | 国产精品亚洲一区二区三区在线 | 亚洲综合久久精品 | 一区亚洲 | 超碰在线播| 亚洲国产精品91 | 亚洲视频免费观看 | 丁香久久| 国产成人精品一区二区三区在线观看 | 国产一区二区视频在线观看 | 91精品国产色综合久久不卡98口 | 午夜久久久久久久久久一区二区 | 日韩精品一区二区三区中文在线 | 国产在线精品一区二区 | 亚洲高清中文字幕 | 国产中文视频 | 国产精品国产a | 日韩一级欧美一级 |