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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4262|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女黄色在线观看 | 在线视频成人 | 精品国产乱码一区二区三区a | 国产一区二区三区视频 | 欧美日本久久 | 欧美日韩高清一区二区三区 | 日韩av一区二区在线 | 正在播放国产精品 | 伊人免费视频二 | 精品一区二区三区中文字幕 | 自拍偷拍在线视频 | 亚洲日日夜夜 | 日日碰狠狠躁久久躁96avv | 福利成人 | 国产精品二区三区 | 欧美成人激情 | 综合第一页 | 亚洲精品乱码久久久久久蜜桃91 | 黄网站在线播放 | 久草资源| 亚洲成人综合在线 | 日本成人片在线观看 | 国产一区久久 | 久久一久久 | 色av一区| 精品福利视频一区二区三区 | 精品久久久久久久久久久久久久 | 欧美不卡| 在线欧美小视频 | 欧美www在线 | 亚洲综合色婷婷 | 免费黄网站在线观看 | 欧美日韩在线精品 | 欧美精品中文字幕久久二区 | 超碰成人av | 99re6在线视频精品免费 | 亚洲色欧美另类 | 久久精品欧美一区二区三区麻豆 | 日韩毛片中文字幕 | 国产a区| h片在线播放 |