sdio_slave¶
内部関数です。通常は使いません。
利用方法¶
#include <driver/sdio_slave.h>
上記宣言で利用できます。
メンバー¶
sdio_slave_initialize()¶
Initialize the sdio slave driver
esp_err_t sdio_slave_initialize(sdio_slave_config_t *config)
引数
- sdio_slave_config_t*
configConfiguration of the sdio slave driver.
戻り値
esp_err_t
sdio_slave_deinit()¶
De-initialize the sdio slave driver to release the resources.
void sdio_slave_deinit()
戻り値
void
sdio_slave_start()¶
esp_err_t sdio_slave_start()
戻り値
esp_err_t
sdio_slave_stop()¶
void sdio_slave_stop()
戻り値
void
sdio_slave_reset()¶
esp_err_t sdio_slave_reset()
戻り値
esp_err_t
sdio_slave_recv_register_buf()¶
Register buffer used for receiving. All buffers should be registered before used, and then can be used (again) in the driver by the handle returned.
sdio_slave_buf_handle_t sdio_slave_recv_register_buf(uint8_t *start)
引数
- uint8_t *
startThe start address of the buffer.
戻り値
sdio_slave_buf_handle_t
sdio_slave_recv_unregister_buf()¶
Unregister buffer from driver, and free the space used by the descriptor pointing to the buffer.
esp_err_t sdio_slave_recv_unregister_buf(sdio_slave_buf_handle_t handle)
引数
- sdio_slave_buf_handle_t
handleHandle to the buffer to release.
戻り値
esp_err_t
sdio_slave_recv_load_buf()¶
Load buffer to the queue waiting to receive data. The driver takes ownership of the buffer until the buffer is returned by after the transaction is finished.
esp_err_t sdio_slave_recv_load_buf(sdio_slave_buf_handle_t handle)
引数
- sdio_slave_buf_handle_t
handleHandle to the buffer ready to receive data.
戻り値
esp_err_t
sdio_slave_recv()¶
Get received data if exist. The driver returns the ownership of the buffer to the app.
esp_err_t sdio_slave_recv(sdio_slave_buf_handle_t *handle_ret, uint8_t **out_addr, size_t *out_len, TickType_t wait)
引数
- sdio_slave_buf_handle_t*
handle_retHandle to the buffer holding received data. Use this handle in to receive in the same buffer again. - uint8_t **
out_addrOutput of the start address, set to NULL if not needed. - size_t *
out_lenActual length of the data in the buffer, set to NULL if not needed. - TickType_t
waitTime to wait before data received.
戻り値
esp_err_t
sdio_slave_recv_get_buf()¶
Retrieve the buffer corresponding to a handle.
uint8_t* sdio_slave_recv_get_buf(sdio_slave_buf_handle_t handle, size_t *len_o)
引数
- sdio_slave_buf_handle_t
handleHandle to get the buffer. - size_t *
len_oOutput of buffer length
戻り値
uint8_t *
sdio_slave_send_queue()¶
Put a new sending transfer into the send queue. The driver takes ownership of the buffer until the buffer is returned by after the transaction is finished.
esp_err_t sdio_slave_send_queue(uint8_t *addr, size_t len, void *arg, TickType_t wait)
引数
- uint8_t *
addrAddress for data to be sent. The buffer should be DMA capable and 32-bit aligned. - size_t
lenLength of the data, should not be longer than 4092 bytes (may support longer in the future). - void *
argArgument to returned in . The argument can be used to indicate which transaction is done, or as a parameter for a callback. Set to NULL if not needed. - TickType_t
waitTime to wait if the buffer is full.
戻り値
esp_err_t
sdio_slave_send_get_finished()¶
esp_err_t sdio_slave_send_get_finished(void **out_arg, TickType_t wait)
引数
- void **
out_argArgument of the finished transaction. Set to NULL if unused. - TickType_t
waitTime to wait if there's no finished sending transaction.
戻り値
esp_err_t ESP_ERR_TIMEOUT if no transaction finished, or ESP_OK if succeed.
sdio_slave_transmit()¶
Start a new sending transfer, and wait for it (blocked) to be finished.
esp_err_t sdio_slave_transmit(uint8_t *addr, size_t len)
引数
- uint8_t *
addrStart address of the buffer to send - size_t
lenLength of buffer to send.
戻り値
esp_err_t
sdio_slave_read_reg()¶
Read the spi slave register shared with host.
uint8_t sdio_slave_read_reg(int pos)
引数
- int
posregister address, 0-27 or 32-63.
戻り値
uint8_t
sdio_slave_write_reg()¶
Write the spi slave register shared with host.
esp_err_t sdio_slave_write_reg(int pos, uint8_t reg)
引数
- int
posregister address, 0-11, 14-15, 18-19, 24-27 and 32-63, other address are reserved. - uint8_t
regthe value to write.
戻り値
esp_err_t
sdio_slave_get_host_intena()¶
sdio_slave_hostint_t sdio_slave_get_host_intena()
戻り値
sdio_slave_hostint_t
sdio_slave_set_host_intena()¶
Set the interrupt enable for host.
void sdio_slave_set_host_intena(sdio_slave_hostint_t ena)
引数
- sdio_slave_hostint_t
enaEnable mask for host interrupt.
戻り値
void
sdio_slave_send_host_int()¶
Interrupt the host by general purpose interrupt.
esp_err_t sdio_slave_send_host_int(uint8_t pos)
引数
- uint8_t
posInterrupt num, 0-7.
戻り値
esp_err_t
sdio_slave_clear_host_int()¶
Clear general purpose interrupt to host.
void sdio_slave_clear_host_int(uint8_t mask)
引数
- uint8_t
maskInterrupt bits to clear, by bit mask.
戻り値
void
sdio_slave_wait_int()¶
Wait for general purpose interrupt from host.
esp_err_t sdio_slave_wait_int(int pos, TickType_t wait)
引数
- int
posInterrupt source number to wait for. is set. - TickType_t
waitTime to wait before interrupt triggered.
戻り値
esp_err_t