struct f3s_flash_s, struct f3s_flash_v2_s, f3s_flash_t, f3s_flash_v2_t

Информация о функциях службы флеш-памяти

Прототип:

#include <fs/f3s_flash.h>
typedef struct f3s_flash_s {
uint32_t struct_size; /* size of this structure */
int32_t (*ident)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
void (*reset)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int32_t (*read)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
int32_t (*write)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
void (*erase)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t size );
int32_t (*suspend)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
void (*resume)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int32_t (*sync)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t size );
} f3s_flash_t;
typedef struct f3s_flash_v2_s
{
uint32_t struct_size; /* size of this structure */
int32_t (*ident)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
void (*reset)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int32_t (*read)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
int32_t (*write)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
void (*erase)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t size );
int32_t (*suspend)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
void (*resume)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int32_t (*sync)( f3s_dbase_t *dbase, /* mandatory */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t size );
/* Extensions */
int32_t (*v2read)( f3s_dbase_t *dbase, /* optional - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
int32_t (*v2write)( f3s_dbase_t *dbase, /* mandatory - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
int (*v2erase)( f3s_dbase_t *dbase, /* mandatory - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2suspend)( f3s_dbase_t *dbase, /* optional - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2resume)( f3s_dbase_t *dbase, /* optional - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2sync)( f3s_dbase_t *dbase, /* mandatory - replaces v1 */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2islock)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2lock)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2unlock)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2unlockall)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset );
int (*v2ssrop)( f3s_dbase_t *dbase, /* optional */
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
} f3s_flash_v2_t;

Библиотека:

libfs-flash3

Описание:

Отличить f3s_flash_t от f3s_flash_v2_t по указателю можно сопоставив значение в поле struct_size. Структура содержит следующие поля:

struct_size
Размер структуры.
ident
Callback-обработчик позволяет обнаружить флеш-устройство. Подробнее см. f3s_*_ident().
reset
Callback-обработчик позволяет переключить флеш-устройство. Подробнее см. f3s_*_reset().
read
v2read
Callback-обработчик позволяет считать буфер данных в память. Подробнее см. f3s_*_v2read().
write
v2write
Callback-обработчик позволяет записать буфер данных из памяти. Подробнее см. f3s_*_v2write().
erase
v2erase
Callback-обработчик позволяет стереть содержимое блока флеш-памяти. Подробнее см. f3s_*_v2erase().
suspend
v2suspend
Callback-обработчик позволяет приостановить операцию стирания (если она поддерживается) при чтении или записи. Подробнее см. f3s_*_v2suspend().
resume
v2resume
Callback-обработчик позволяет возобновить операцию стирания после ее приостановки. Подробнее см. f3s_*_v2resume().
sync
v2sync
Callback-обработчик позволяет определить, завершилась ли операция стирания и возвращает обнаруженный код ошибки. Подробнее см. f3s_*_v2sync().
v2islock
Callback-обработчик позволяет проверить возможность записи в блок данных. Подробнее см. f3s_*_v2islock().
v2lock
Callback-обработчик позволяет защитить от записи блок данных. Подробнее см. f3s_*_v2lock().
v2unlock
Callback-обработчик удаляет блокировку записи блока данных. Подробнее см. f3s_*_v2unlock().
v2unlockall
Callback-обработчик удаляет блокировки записи всех блоков устройства. Подробнее см. f3s_*_v2unlockall().
v2ssrop
Callback-обработчик позволяет выполнить SSR операцию.

Классификация:

ЗОСРВ «Нейтрино», libfs-flash3

Тематические ссылки:

f3s_*_ident(), f3s_*_reset(), f3s_*_v2read(), f3s_*_v2write(), f3s_*_v2erase(), f3s_*_v2suspend(), f3s_*_v2resume(), f3s_*_v2sync(), f3s_*_v2islock(), f3s_*_v2lock(), f3s_*_v2unlock(), f3s_*_v2unlockall()

Разработка драйвера флеш-памяти




Предыдущий раздел: перейти