?? sdcommon.h
字號:
#ifndef __SDCOMMON_H__
#define __SDCOMMON_H__
/* SD卡信息結構體定義 */
/* the information structure variable of SD Card*/
typedef struct SD_STRUCT
{
INT32U card_posnum; /* 卡座號,多卡時使用 */
INT8U card_type; /* 卡型 */
INT32U block_num; /* 卡中塊的數量 */
INT32U block_len; /* 卡的塊長度(單位:字節) */
INT32U erase_unit; /* 一次可擦除的塊個數 */
INT32U timeout_read; /* 讀塊超時時間(單位: 1 clock) */
INT32U timeout_write; /* 寫塊超時時間(單位: 1 clock) */
INT32U timeout_erase; /* 擦塊超時時間(單位: 1 clock) */
INT32U RCA; /* 卡的RCA地址 */
INT32U host_clkval; /* 主機時鐘值(Hz) */
INT32U card_transpeed; /* 卡數據最大傳輸速度(Hz) */
#if SD_UCOSII_EN
INT32U timeout_read_os; /* UCOS-II中,讀塊超時時間(單位: os tick) */
INT32U timeout_write_os; /* UCOS-II中,寫塊超時時間(單位: os tick) */
INT32U timeout_erase_os; /* UCOS-II中,擦塊超時時間(單位: os tick) */
OS_EVENT *pSemSD; /* 卡訪問權限信號量 */
OS_EVENT *pSemSdmmcRW; /* 卡讀寫等待信號量 */
#endif
}sd_struct;
/* SD/MMC 卡數據塊長度 */
#define SD_BLOCKSIZE_NBITS 9
#define SD_BLOCKSIZE (1 << SD_BLOCKSIZE_NBITS)
/* 等待函數的等待類型 */
#define BUSY_TYPE_READ 0
#define BUSY_TYPE_RDY_DATA 1
#define BUSY_TYPE_PROG 2
#define BUSY_TYPE_ERASE 3
/* 讀寫卡時鐘: 慢速及標準速度 */
#define SD_RATE_SLOW 1
#define SD_RATE_NORMAL 2
/*****************************************
CSD 寄存器相關定義
*****************************************/
/* CSD中一些域的字節位置(高字節在前) */
#define TAAC_POS 1 //TAAC
#define NSAC_POS 2 //NSAC
#define TRAN_SPEED_POS 3 //TRAN_SPEED
#define READ_BL_LEN_POS 5 //READ_BL_LEN
#define C_SIZE_POS1 6 //C_SIZE upper 2-bit
#define C_SIZE_POS2 7 //C_SIZE middle 8-bit
#define C_SIZE_POS3 8 //C_SIZE lower 2-bit
#define C_SIZE_MULT_POS1 9 //C_SIZE_MULT upper 2-bit
#define C_SIZE_MULT_POS2 10 //C_SIZE_MULT lower 1-bit
#define SECTOR_SIZE_POS1 10 //SECTOR_SIZE upper 5-bit
#define SECTOR_SIZE_POS2 11 //SECTOR_SIZE lower 2-bit
#define R2WFACTOR_POS 12 //R2WFACTOR_POS
/**/
#define ERASE_GRP_SIZE_POS 10 //MMC卡 ERASE_GRP_SIZE 5-bit
#define ERASE_GRP_MULTI_POS1 10 //MMC卡 ERASE_GRP_MULTI 2-bit
#define ERASE_GRP_MULTI_POS2 11 //MMC卡 ERASE_GRP_MULTI 3-bit
//CSD中一些域的掩碼
#define TAAC_MSK 0x07 //TAAC 域掩碼
#define NSAC_MSK 0x78 //NSAC 域掩碼
#define TRAN_SPEED_MSK1 0x07 //TRAN_SPEED 傳輸速度指數掩碼
#define TRAN_SPEED_MSK2 0x78 //TRAN_SPEED 傳輸速度尾數
#define READ_BL_LEN_MSK 0x0F //READ_BL_LEN 的掩碼
#define C_SIZE_MSK1 0x03 //C_SIZE 高2位掩碼
#define C_SIZE_MSK3 0xC0 //C_SIZE 低2位掩碼
#define C_SIZE_MULT_MSK1 0x03 //C_SIZE_MULT 的高2位掩碼
#define C_SIZE_MULT_MSK2 0x80 //C_SIZE_MULT 的低2位掩碼
#define R2WFACTOR_MSK 0x1C //R2WFACTOR 掩碼
#define SECTOR_SIZE_MSK1 0x3F //SECTOR_SIZE 的高5位
#define SECTOR_SIZE_MSK2 0x80 //SECTOR_SIZE 的低2位
#define ERASE_GRP_SIZE_MSK 0x7C //MMC卡 ERASE_GRP_SIZE 掩碼
#define ERASE_GRP_MULTI_MSK1 0x03 //MMC卡 ERASE_GRP_MULTI 高2位掩碼
#define ERASE_GRP_MULTI_MSK2 0xE0 //MMC卡 ERASE_GRP_NULTI 低3位掩碼
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -