4 #ifndef RTOS_QSPI_FLASH_H_
5 #define RTOS_QSPI_FLASH_H_
16 #include "rtos_osal.h"
17 #include "rtos_driver_rpc.h"
19 #define RTOS_QSPI_FLASH_READ_CHUNK_SIZE (24*1024)
34 __attribute__((fptrgroup(
"rtos_qspi_flash_read_fptr_grp")))
37 __attribute__((fptrgroup(
"rtos_qspi_flash_write_fptr_grp")))
40 __attribute__((fptrgroup(
"rtos_qspi_flash_erase_fptr_grp")))
43 __attribute__((fptrgroup(
"rtos_qspi_flash_lock_fptr_grp")))
46 __attribute__((fptrgroup(
"rtos_qspi_flash_unlock_fptr_grp")))
52 unsigned op_task_priority;
53 rtos_osal_thread_t op_task;
54 rtos_osal_queue_t op_queue;
55 rtos_osal_semaphore_t data_ready;
56 rtos_osal_mutex_t mutex;
57 volatile int spinlock;
60 #include "rtos_qspi_flash_rpc.h"
125 ctx->read(ctx, data, address, len);
190 ctx->write(ctx, data, address, len);
222 ctx->erase(ctx, address, len);
235 return qspi_flash_ctx->flash_size;
248 return qspi_flash_ctx->ctx.page_size_bytes;
261 return qspi_flash_ctx->ctx.page_count;
348 xclock_t clock_block,
353 int full_speed_clk_divisor,
354 uint32_t full_speed_sclk_sample_delay,
356 uint32_t full_speed_sio_pad_delay,
357 int spi_read_clk_divisor,
358 uint32_t spi_read_sclk_sample_delay,
360 uint32_t spi_read_sio_pad_delay,
qspi_flash_page_program_cmd_t
Definition: qspi_flash.h:28
@ qspi_flash_erase_1
Definition: qspi_flash.h:126
qspi_io_source_clock_t
Definition: qspi_io.h:33
qspi_io_sample_edge_t
Definition: qspi_io.h:25
void rtos_qspi_flash_erase(rtos_qspi_flash_t *ctx, unsigned address, size_t len)
Definition: rtos_qspi_flash.h:217
void rtos_qspi_flash_read(rtos_qspi_flash_t *ctx, uint8_t *data, unsigned address, size_t len)
Definition: rtos_qspi_flash.h:119
void rtos_qspi_flash_lock(rtos_qspi_flash_t *ctx)
Definition: rtos_qspi_flash.h:87
size_t rtos_qspi_flash_page_size_get(rtos_qspi_flash_t *qspi_flash_ctx)
Definition: rtos_qspi_flash.h:245
size_t rtos_qspi_flash_size_get(rtos_qspi_flash_t *qspi_flash_ctx)
Definition: rtos_qspi_flash.h:232
void rtos_qspi_flash_unlock(rtos_qspi_flash_t *ctx)
Definition: rtos_qspi_flash.h:99
int rtos_qspi_flash_read_ll(rtos_qspi_flash_t *ctx, uint8_t *data, unsigned address, size_t len)
Definition: rtos_qspi_flash.c:54
size_t rtos_qspi_flash_page_count_get(rtos_qspi_flash_t *qspi_flash_ctx)
Definition: rtos_qspi_flash.h:258
void rtos_qspi_flash_write(rtos_qspi_flash_t *ctx, const uint8_t *data, unsigned address, size_t len)
Definition: rtos_qspi_flash.h:184
size_t rtos_qspi_flash_sector_size_get(rtos_qspi_flash_t *qspi_flash_ctx)
Definition: rtos_qspi_flash.h:271
void rtos_qspi_flash_start(rtos_qspi_flash_t *ctx, unsigned priority)
Definition: rtos_qspi_flash.c:442
void rtos_qspi_flash_init(rtos_qspi_flash_t *ctx, xclock_t clock_block, port_t cs_port, port_t sclk_port, port_t sio_port, qspi_io_source_clock_t source_clock, int full_speed_clk_divisor, uint32_t full_speed_sclk_sample_delay, qspi_io_sample_edge_t full_speed_sclk_sample_edge, uint32_t full_speed_sio_pad_delay, int spi_read_clk_divisor, uint32_t spi_read_sclk_sample_delay, qspi_io_sample_edge_t spi_read_sclk_sample_edge, uint32_t spi_read_sio_pad_delay, qspi_flash_page_program_cmd_t quad_page_program_cmd)
Definition: rtos_qspi_flash.c:464
Definition: qspi_flash.h:57
Definition: rtos_driver_rpc.h:23
Definition: rtos_qspi_flash.h:31