Callback-обработчик для детектирования записи данных во флеш-устройство
#include <fs/f3s_flash.h>
int32_t f3s_*_v2write( f3s_dbase_t *dbase,
f3s_access_t *access,
uint32_t flags,
uint32_t text_offset,
int32_t buffer_size,
uint8_t *buffer );
- dbase
- Адрес дескриптора базы данных сервиса флеш-памяти.
- access
- Адрес дескриптора-контейнера для сокета и службы сокетов драйвера флеш-памяти.
- flags
- Флаги:
- F3S_ECC_WRITE
- Защищенный режим записи (Error-Correcting Code memory, ECC).
- F3S_VERIFY_WRITE
- Функция должна проверять успешность записи посредством контрольного чтения. Тем не менее, даже этот механизм иногда не обнаруживает ошибки при записи.
- 0
- Вызов из f3s_ext_write().
- text_offset
- Адрес блока данных во флеш-устройстве.
- buffer_size
- Размер буфера для чтения.
- buffer
- Адрес буфера для приема данных.
libfs-flash3
Эта функция записывает buffer_size байт из буфера buffer по адресу text_offset.
- >0
- Успешное завершение операции, возвращается количество записанных байт.
- -1
- Возникла ошибка. Код ошибки записан в errno.
- EIO
- Устранимая ошибка ввода/вывода (например, данные блока повреждены из-за низкого напряжения или произошла ошибка при записи, однако она была обнаружена и блок будет доступен для использования после стирания).
- EFAULT
- Неустранимая ошибка ввода/вывода (например, блок вышел из строя).
- EROFS
- Блок защищен от записи.
- EINVAL
- Некорректная команда.
- ERANGE
- Нарушение границ диапазона при доступе к флеш-памяти (посредством функции service->page).
- ENODEV
- Флеш-память больше недоступна (например, накопитель извлечен из системы).
- ESHUTDOWN
- Произошла критическая ошибка и необходимо завершить работу драйвера.
ЗОСРВ «Нейтрино», libfs-flash3
f3s_flash_t
Разработка драйвера флеш-памяти
Предыдущий раздел: перейти