Информация о функциях службы флеш-памяти
#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. Структура содержит следующие поля:
ЗОСРВ «Нейтрино», 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()
Разработка драйвера флеш-памяти
Предыдущий раздел: перейти