sd fat16移植方法小結

2021-06-16 04:39:29 字數 1127 閱讀 4396

移植fat16的步驟

1。儲存器的介面初始化

·編寫spi的sd卡介面**

·讀乙個位元組的spi口

·寫乙個位元組的spi口

·向sd卡傳送一條命令

·向sd卡傳送乙個資料報

·從sd卡接受乙個資料報

·編寫diskio.h檔案

·編寫對sd卡的初始化程式

·狀態檢測函式。預設支援

·編寫讀扇區的函式

③dresult disk_read(byte drv,byte*buff,dword sector,byte.count);

讀扇區函式。在sd卡讀介面函式的基礎上編寫,*buff儲存已經讀取的資料,sector是開始讀的起始扇區,count是需要讀的扇區數。1個扇區512個位元組。執行無誤返回o,錯誤返回非0。

·寫扇區的函式

④dresult disk_write(byte drv,const byte*buff,dword sector,byte count);

寫扇區函式。在sd卡寫介面函式的基礎上編寫,*buff儲存要寫入的資料,sector是開始寫的起始扇區count是需要寫的扇區數。1個扇區512個位元組。執行無誤返回o,錯誤返回非0。

·⑤dresult disk_ioctl(byte drv,byte ctrl,voii*buff);

儲存媒介控制函式。ctrl是控制**,*buff儲存或接收控制資料。可以在此函式裡編寫自己需要的功能**,比如獲得儲存媒介的大小、檢測儲存媒介的上電與否儲存媒介的扇區數等。如果是簡單的應用,也可以不用編寫,返回o即可。

·⑥dword get_fattime(void);

實時時鐘函式。返回乙個32位無符號整數,時鐘資訊包含在這32位中,如下所示:

bit31:25 年(o..127)從2023年到現在的年數

bit24:21 月(1…12)

bit20:16 日(1..31)

bitl5.1] 時(o..23)

bitl0:5 分(o..59)

bit4:0 秒/2(0..29)

如果用不到實時時鐘,也可以簡單地返回乙個數。正確編寫完diskio,移植工作也就基本完成了,接下來的工作就是對tiny—fatfs進行配置。

2。fatfs的配置

·基本不要改動

第三方平台移植

因為圖形編輯器所依賴的 t平台即將整合到 p平台,在專案做了一年半之後,要將整個專案從 t平台移植到 p平台。之前的 重構為專案 移植到 p平台打好了基礎,移植過程中,只要將 ui部分的 根據 p平台的框架重新編碼,就可以了,剩下了不少 effort。因為開發所依賴的平台改變了,ui部分的 需要重新...

如何在16位微控制器上移植linux

一 一些想法 一直以來,linux被認為是個32位的 現代化 作業系統,一般也沒有人在8位 16位微控制器上面去移植linux。但是,從原理上來講,從任意位數的微控制器,都是可以執行linux的 本質上就是個作業系統麼,既然ucos可以,為什麼linux不行?於是,我的畢業設計打算做這個選題。當然,...

shader入門16 立方體紋理

1.什麼是立方體紋理?簡單的說就是6張紋理組成的乙個方塊形狀的紋理.像骰子一樣,有六個面.2.立方體紋理有什麼用?立方體紋理通常用於作為反射源,以及環境反射來實現玻璃,金屬的效果 3.為什麼立方體紋理要做成這個形狀?以立方體的中心為原點,向任意方向投射射線,可以與立方體6個面相交,得到不同的取樣值....