File bsp_sd_diskio.h¶
File List > external-docs > libDaisy > src > util > bsp_sd_diskio.h
Go to the documentation of this file
Source Code¶
#pragma once
#ifndef DSY_BSP_SD_DISKIO_H
#define DSY_BSP_SD_DISKIO_H
#include <stdint.h>
/*
This struct is identical to the struct provided as "HAL_SD_CardInfoTypeDef"
I'm using this to allow users to link to the fatfs middleware without having to then link in the entire HAL to their project.
*/
typedef struct
{
uint32_t CardType;
uint32_t CardVersion;
uint32_t Class;
uint32_t RelCardAdd;
uint32_t BlockNbr;
uint32_t BlockSize;
uint32_t LogBlockNbr;
uint32_t LogBlockSize;
uint32_t CardSpeed;
} DSY_SD_CardInfoTypeDef;
#define BSP_SD_CardInfo DSY_SD_CardInfoTypeDef
#define MSD_OK ((uint8_t)0x00)
#define MSD_ERROR ((uint8_t)0x01)
#define MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02)
#define SD_TRANSFER_OK ((uint8_t)0x00)
#define SD_TRANSFER_BUSY ((uint8_t)0x01)
#define SD_PRESENT ((uint8_t)0x01)
#define SD_NOT_PRESENT ((uint8_t)0x00)
#define SD_DATATIMEOUT ((uint32_t)100000000)
// Functions internal for diskIO
uint8_t BSP_SD_Init(void);
uint8_t BSP_SD_ITConfig(void);
uint8_t BSP_SD_ReadBlocks(uint32_t *pData,
uint32_t ReadAddr,
uint32_t NumOfBlocks,
uint32_t Timeout);
uint8_t BSP_SD_WriteBlocks(uint32_t *pData,
uint32_t WriteAddr,
uint32_t NumOfBlocks,
uint32_t Timeout);
uint8_t
BSP_SD_ReadBlocks_DMA(uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks);
uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData,
uint32_t WriteAddr,
uint32_t NumOfBlocks);
uint8_t BSP_SD_Erase(uint32_t StartAddr, uint32_t EndAddr);
uint8_t BSP_SD_GetCardState(void);
void BSP_SD_GetCardInfo(BSP_SD_CardInfo *CardInfo);
uint8_t BSP_SD_IsDetected(void);
void BSP_SD_AbortCallback(void);
void BSP_SD_WriteCpltCallback(void);
void BSP_SD_ReadCpltCallback(void);
#endif