20 #ifndef STM32F4xx_HAL_PCCARD_H
21 #define STM32F4xx_HAL_PCCARD_H
27 #if defined(FMC_Bank4) || defined(FSMC_Bank4)
30 #if defined(FSMC_Bank4)
62 HAL_PCCARD_STATUS_SUCCESS = 0U,
63 HAL_PCCARD_STATUS_ONGOING,
64 HAL_PCCARD_STATUS_ERROR,
65 HAL_PCCARD_STATUS_TIMEOUT
66 } HAL_PCCARD_StatusTypeDef;
71 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
72 typedef struct __PCCARD_HandleTypeDef
85 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
86 void (* MspInitCallback)(
struct __PCCARD_HandleTypeDef *hpccard);
87 void (* MspDeInitCallback)(
struct __PCCARD_HandleTypeDef *hpccard);
88 void (* ItCallback)(
struct __PCCARD_HandleTypeDef *hpccard);
92 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
121 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
122 #define __HAL_PCCARD_RESET_HANDLE_STATE(__HANDLE__) do { \
123 (__HANDLE__)->State = HAL_PCCARD_STATE_RESET; \
124 (__HANDLE__)->MspInitCallback = NULL; \
125 (__HANDLE__)->MspDeInitCallback = NULL; \
128 #define __HAL_PCCARD_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_PCCARD_STATE_RESET)
166 #if (USE_HAL_PCCARD_REGISTER_CALLBACKS == 1)
197 #define PCCARD_DEVICE_ADDRESS 0x90000000U
198 #define PCCARD_ATTRIBUTE_SPACE_ADDRESS 0x98000000U
199 #define PCCARD_COMMON_SPACE_ADDRESS PCCARD_DEVICE_ADDRESS
200 #define PCCARD_IO_SPACE_ADDRESS 0x9C000000U
201 #define PCCARD_IO_SPACE_PRIMARY_ADDR 0x9C0001F0U
204 #define ATA_DATA ((uint8_t)0x00)
205 #define ATA_SECTOR_COUNT ((uint8_t)0x02)
206 #define ATA_SECTOR_NUMBER ((uint8_t)0x03)
207 #define ATA_CYLINDER_LOW ((uint8_t)0x04)
208 #define ATA_CYLINDER_HIGH ((uint8_t)0x05)
209 #define ATA_CARD_HEAD ((uint8_t)0x06)
210 #define ATA_STATUS_CMD ((uint8_t)0x07)
211 #define ATA_STATUS_CMD_ALTERNATE ((uint8_t)0x0E)
212 #define ATA_COMMON_DATA_AREA ((uint16_t)0x0400)
213 #define ATA_CARD_CONFIGURATION ((uint16_t)0x0202)
216 #define ATA_READ_SECTOR_CMD ((uint8_t)0x20)
217 #define ATA_WRITE_SECTOR_CMD ((uint8_t)0x30)
218 #define ATA_ERASE_SECTOR_CMD ((uint8_t)0xC0)
219 #define ATA_IDENTIFY_CMD ((uint8_t)0xEC)
222 #define PCCARD_TIMEOUT_ERROR ((uint8_t)0x60)
223 #define PCCARD_BUSY ((uint8_t)0x80)
224 #define PCCARD_PROGR ((uint8_t)0x01)
225 #define PCCARD_READY ((uint8_t)0x40)
227 #define PCCARD_SECTOR_SIZE 255U
233 #define HAL_CF_Init HAL_PCCARD_Init
234 #define HAL_CF_DeInit HAL_PCCARD_DeInit
235 #define HAL_CF_MspInit HAL_PCCARD_MspInit
236 #define HAL_CF_MspDeInit HAL_PCCARD_MspDeInit
238 #define HAL_CF_Read_ID HAL_PCCARD_Read_ID
239 #define HAL_CF_Write_Sector HAL_PCCARD_Write_Sector
240 #define HAL_CF_Read_Sector HAL_PCCARD_Read_Sector
241 #define HAL_CF_Erase_Sector HAL_PCCARD_Erase_Sector
242 #define HAL_CF_Reset HAL_PCCARD_Reset
243 #define HAL_CF_IRQHandler HAL_PCCARD_IRQHandler
244 #define HAL_CF_ITCallback HAL_PCCARD_ITCallback
246 #define HAL_CF_GetState HAL_PCCARD_GetState
247 #define HAL_CF_GetStatus HAL_PCCARD_GetStatus
248 #define HAL_CF_ReadStatus HAL_PCCARD_ReadStatus
250 #define HAL_CF_STATUS_SUCCESS HAL_PCCARD_STATUS_SUCCESS
251 #define HAL_CF_STATUS_ONGOING HAL_PCCARD_STATUS_ONGOING
252 #define HAL_CF_STATUS_ERROR HAL_PCCARD_STATUS_ERROR
253 #define HAL_CF_STATUS_TIMEOUT HAL_PCCARD_STATUS_TIMEOUT
254 #define HAL_CF_StatusTypeDef HAL_PCCARD_StatusTypeDef
256 #define CF_DEVICE_ADDRESS PCCARD_DEVICE_ADDRESS
257 #define CF_ATTRIBUTE_SPACE_ADDRESS PCCARD_ATTRIBUTE_SPACE_ADDRESS
258 #define CF_COMMON_SPACE_ADDRESS PCCARD_COMMON_SPACE_ADDRESS
259 #define CF_IO_SPACE_ADDRESS PCCARD_IO_SPACE_ADDRESS
260 #define CF_IO_SPACE_PRIMARY_ADDR PCCARD_IO_SPACE_PRIMARY_ADDR
262 #define CF_TIMEOUT_ERROR PCCARD_TIMEOUT_ERROR
263 #define CF_BUSY PCCARD_BUSY
264 #define CF_PROGR PCCARD_PROGR
265 #define CF_READY PCCARD_READY
267 #define CF_SECTOR_SIZE PCCARD_SECTOR_SIZE
FMC_PCCARD_InitTypeDef Init
__IO HAL_PCCARD_StateTypeDef State
FMC_PCCARD_TypeDef * Instance
ADC handle Structure definition.
FMC NAND Timing parameters structure definition.
FMC PCCARD Configuration Structure definition.
HAL_StatusTypeDef HAL_PCCARD_Init(PCCARD_HandleTypeDef *hpccard, FMC_NAND_PCC_TimingTypeDef *ComSpaceTiming, FMC_NAND_PCC_TimingTypeDef *AttSpaceTiming, FMC_NAND_PCC_TimingTypeDef *IOSpaceTiming)
Perform the PCCARD memory Initialization sequence.
void HAL_PCCARD_MspInit(PCCARD_HandleTypeDef *hpccard)
PCCARD MSP Init.
HAL_StatusTypeDef HAL_PCCARD_DeInit(PCCARD_HandleTypeDef *hpccard)
Perform the PCCARD memory De-initialization sequence.
void HAL_PCCARD_MspDeInit(PCCARD_HandleTypeDef *hpccard)
PCCARD MSP DeInit.
HAL_StatusTypeDef HAL_PCCARD_UnRegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId)
Unregister a User PCCARD Callback PCCARD Callback is redirected to the weak (surcharged) predefined c...
HAL_StatusTypeDef HAL_PCCARD_Reset(PCCARD_HandleTypeDef *hpccard)
Reset the PCCARD memory.
HAL_StatusTypeDef HAL_PCCARD_Read_ID(PCCARD_HandleTypeDef *hpccard, uint8_t CompactFlash_ID[], uint8_t *pStatus)
Read Compact Flash's ID.
HAL_StatusTypeDef HAL_PCCARD_Erase_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t SectorAddress, uint8_t *pStatus)
Erase sector from PCCARD memory.
HAL_StatusTypeDef HAL_PCCARD_RegisterCallback(PCCARD_HandleTypeDef *hpccard, HAL_PCCARD_CallbackIDTypeDef CallbackId, pPCCARD_CallbackTypeDef pCallback)
Register a User PCCARD Callback To be used instead of the weak (surcharged) predefined callback.
void HAL_PCCARD_ITCallback(PCCARD_HandleTypeDef *hpccard)
PCCARD interrupt feature callback.
HAL_StatusTypeDef HAL_PCCARD_Write_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress, uint8_t *pStatus)
Write sector to PCCARD memory.
void HAL_PCCARD_IRQHandler(PCCARD_HandleTypeDef *hpccard)
This function handles PCCARD device interrupt request.
HAL_StatusTypeDef HAL_PCCARD_Read_Sector(PCCARD_HandleTypeDef *hpccard, uint16_t *pBuffer, uint16_t SectorAddress, uint8_t *pStatus)
Read sector from PCCARD memory.
HAL_PCCARD_StatusTypeDef HAL_PCCARD_ReadStatus(PCCARD_HandleTypeDef *hpccard)
Reads the Compact Flash memory status using the Read status command.
HAL_PCCARD_StatusTypeDef HAL_PCCARD_GetStatus(PCCARD_HandleTypeDef *hpccard)
Get the compact flash memory status.
HAL_PCCARD_StateTypeDef HAL_PCCARD_GetState(PCCARD_HandleTypeDef *hpccard)
return the PCCARD controller state
HAL_PCCARD_CallbackIDTypeDef
HAL PCCARD Callback ID enumeration definition.
HAL_PCCARD_StateTypeDef
HAL PCCARD State structures definition.
struct __PCCARD_HandleTypeDef else typedef struct endif PCCARD_HandleTypeDef
FMC_PCCARD handle Structure definition.
void(* pPCCARD_CallbackTypeDef)(PCCARD_HandleTypeDef *hpccard)
HAL PCCARD Callback pointer definition.
@ HAL_PCCARD_MSP_DEINIT_CB_ID
@ HAL_PCCARD_MSP_INIT_CB_ID
HAL_LockTypeDef
HAL Lock structures definition
Header file of FMC HAL module.
Header file of FSMC HAL module.