- edited description
Implementation of SDMMC LLD Mode
Issue #192
resolved
General Description
The goal of the task is to implement part of SDMMC
driver - LLD Mode
. Note, that it is not the SDMMC LLD
but a part of SDMMC
core driver responsible for handling the LLD
part. The mode should handle SDMMC LLD
with all interrupts and interface has to be compatible with oC_SDMMC_Mode_Interface_t
structure.
Trello link: https://trello.com/c/tz8kt3Gk
Mode information
- Mode -
oC_SDMMC_Mode_LLD
- ModeName -
"lld"
Related tasks
- [ #191 ] - Implementation of SDMMC driver - General
SDMMC
architecture - [
#187] - LLD for SDMMC (STM32F7) - Implementation of LLD for STM32F7 - [ #189 ] - LLD for SDMMC (STM32F4) - Implementation of LLD for STM32F4
Mode context structure
struct ModeContext_t { /** @brief Field for object content verification (calculated by function #oC_CountObjectControl ) */ oC_ObjectControl_t ObjectControl; /** @brief The semaphore is ready to take if new data is ready to receive */ oC_Semaphore_t DataReadyToReceiveSemaphore; /** @brief The semaphore is ready to take if a module is ready to send new data */ oC_Semaphore_t ReadyToSendNewDataSemaphore; /** @brief The semaphore is ready to take if last command has been sent */ oC_Semaphore_t CommandSentSemaphore; /** @brief The semaphore is ready to take if last command response has been received */ oC_Semaphore_t CommandResponseReceivedSemaphore; /** @brief The configuration of the LLD */ oC_SDMMC_LLD_Config_t LLDConfig; };
Required Interface
// Turns on the mode oC_ErrorCode_t oC_SDMMC_Mode_LLD_TurnOn( void ); // Turns off the mode oC_ErrorCode_t oC_SDMMC_Mode_LLD_TurnOff( void ); // Checks if the given configuration is possible to set by using the mode bool oC_SDMMC_Mode_LLD_IsSupported( const oC_SDMMC_Config_t * Config , oC_SDMMC_Context_t Context ); // Prepares the mode to work with the given configuration oC_ErrorCode_t oC_SDMMC_Mode_LLD_Configure( const oC_SDMMC_Config_t * Config , oC_SDMMC_Context_t Context ); // Unconfigures the mode oC_ErrorCode_t oC_SDMMC_Mode_LLD_Unconfigure( oC_SDMMC_Context_t Context ); // Sends SD/MMC command to card oC_ErrorCode_t oC_SDMMC_Mode_LLD_SendCommand( oC_SDMMC_Context_t Context , oC_SDMMC_Command_t * Command , oC_Time_t Timeout ); // Reads data by using the mode oC_ErrorCode_t oC_SDMMC_Mode_LLD_ReadData( oC_SDMMC_Context_t Context , char * outBuffer, oC_MemorySize_t * Size , oC_Time_t Timeout ); // Writes data by using the mode oC_ErrorCode_t oC_SDMMC_Mode_LLD_WriteData( oC_SDMMC_Context_t Context , const char * Buffer, oC_MemorySize_t * Size , oC_Time_t Timeout ); // Initializes card after detection oC_ErrorCode_t oC_SDMMC_Mode_LLD_InitializeCard( oC_SDMMC_Context_t Context , oC_Time_t Timeout );
Comments (9)
-
reporter -
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - removed component
Removing component: SDMMC (automated comment)
-
reporter -
assigned issue to
-
assigned issue to
-
reporter - changed status to open
I have started work on it
-
reporter - changed status to resolved
- Log in to comment