VSF Documented
vsf_sdmmc_mal.c File Reference
#include "../../vsf_mal_cfg.h"
#include "../../vsf_mal.h"
#include "./vsf_sdmmc_mal.h"

Data Structures

struct  __vk_sdmmc_mal_rw_local_t
 
struct  __vk_sdmmc_mal_buffer_cap_t
 

Macros

#define __VSF_MAL_CLASS_INHERIT__
 
#define __VSF_SDMMC_MAL_CLASS_IMPLEMENT
 
#define VSF_EVT_SDMMC_ERROR   (VSF_EVT_USER + 0)
 
#define VSF_EVT_SDMMC_DONE   (VSF_EVT_USER + 1)
 
#define __SDMMC_ISSUE_RX_CHUNK()
 
#define __SDMMC_ISSUE_TX_CHUNK()
 

Typedefs

typedef struct __vk_sdmmc_mal_rw_local_t __vk_sdmmc_mal_rw_local_t
 
typedef struct __vk_sdmmc_mal_buffer_cap_t __vk_sdmmc_mal_buffer_cap_t
 

Functions

 dcl_vsf_peda_methods (dcl_vsf_peda_methods(static, __vk_sdmmc_mal_init)
 
 __vsf_component_peda_ifs_entry (__vk_sdmmc_mal_init, vk_mal_init)
 
 __vsf_component_peda_ifs_entry (__vk_sdmmc_mal_fini, vk_mal_fini)
 
 __vsf_component_peda_ifs_entry (__vk_sdmmc_mal_read, vk_mal_read, __vk_sdmmc_mal_rw_local_t)
 
 __vsf_component_peda_ifs_entry (__vk_sdmmc_mal_write, vk_mal_write, __vk_sdmmc_mal_rw_local_t)
 

Macro Definition Documentation

◆ __VSF_MAL_CLASS_INHERIT__

#define __VSF_MAL_CLASS_INHERIT__

◆ __VSF_SDMMC_MAL_CLASS_IMPLEMENT

#define __VSF_SDMMC_MAL_CLASS_IMPLEMENT

◆ VSF_EVT_SDMMC_ERROR

#define VSF_EVT_SDMMC_ERROR   (VSF_EVT_USER + 0)

◆ VSF_EVT_SDMMC_DONE

#define VSF_EVT_SDMMC_DONE   (VSF_EVT_USER + 1)

◆ __SDMMC_ISSUE_RX_CHUNK

#define __SDMMC_ISSUE_RX_CHUNK ( )
Value:
do { \
uint32_t __off = vsf_local.rsize; \
vsf_local.chunk = __vk_sdmmc_mal_chunk_size(pthis, \
vsf_local.size - __off, vsf_local.transfer_unit, \
vsf_local.max_data_size, vsf_local.use_bounce); \
uint32_t __block_num = vsf_local.chunk / block_size; \
uint32_t __block_start = (uint32_t)((vsf_local.addr + __off) \
/ block_size); \
pthis->is_to_stop = __block_num > 1; \
vsf_err_t __err = vsf_sdio_host_request(pthis->sdio, &(vsf_sdio_req_t){ \
.cmd = __block_num > 1 ? MMC_READ_MULTIPLE_BLOCK \
: MMC_READ_SINGLE_BLOCK, \
.arg = pthis->high_capacity ? __block_start \
: (uint32_t)(vsf_local.addr + __off), \
.op = __block_num > 1 ? MMC_READ_MULTIPLE_BLOCK_OP \
: MMC_READ_SINGLE_BLOCK_OP, \
.block_size_bits= pthis->csd.sd_v2.READ_BL_LEN, \
.buffer = vsf_local.use_bounce ? pthis->bounce_buffer \
: vsf_local.buff + __off, \
.count = vsf_local.chunk, \
}); \
if (__err != VSF_ERR_NONE) { \
pthis->eda = NULL; \
pthis->is_to_stop = false; \
vsf_eda_return(__err); \
} \
} while (0)
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NONE
none error
Definition __type.h:44
#define NULL
Definition lvgl.h:26
vsf_err_t vsf_sdio_host_request(vsf_sdio_t *sdio_ptr, vsf_sdio_req_t *req)
Start a new request for sdio instance.
Definition sdio_common.c:117
unsigned uint32_t
Definition stdint.h:9
Definition vsf_template_sdio.h:739
#define vsf_local
Access the local variables inside a peda implementation.
Definition vsf_eda.h:1441

◆ __SDMMC_ISSUE_TX_CHUNK

#define __SDMMC_ISSUE_TX_CHUNK ( )

Typedef Documentation

◆ __vk_sdmmc_mal_rw_local_t

typedef struct __vk_sdmmc_mal_rw_local_t __vk_sdmmc_mal_rw_local_t

◆ __vk_sdmmc_mal_buffer_cap_t

typedef struct __vk_sdmmc_mal_buffer_cap_t __vk_sdmmc_mal_buffer_cap_t

Function Documentation

◆ dcl_vsf_peda_methods()

dcl_vsf_peda_methods ( dcl_vsf_peda_methods( static,
__vk_sdmmc_mal_init  )

◆ __vsf_component_peda_ifs_entry() [1/4]

__vsf_component_peda_ifs_entry ( __vk_sdmmc_mal_init ,
vk_mal_init  )

◆ __vsf_component_peda_ifs_entry() [2/4]

__vsf_component_peda_ifs_entry ( __vk_sdmmc_mal_fini ,
vk_mal_fini  )

◆ __vsf_component_peda_ifs_entry() [3/4]

__vsf_component_peda_ifs_entry ( __vk_sdmmc_mal_read ,
vk_mal_read ,
__vk_sdmmc_mal_rw_local_t  )

◆ __vsf_component_peda_ifs_entry() [4/4]

__vsf_component_peda_ifs_entry ( __vk_sdmmc_mal_write ,
vk_mal_write ,
__vk_sdmmc_mal_rw_local_t  )
Generated from commit: vsfteam/vsf@c46986d