Библиотека Petit FatFS: disk_writep |
|
Добавил(а) microsin
|
disk_writep
Функция disk_writep записывает данные в сектор.
DRESULT disk_writep (
BYTE* Buffer, /* Указатель на место для записываемых данных */
DWORD SectorBytes, /* Номер сектора или количество байт для записи */
);
Параметры
- Buffer
- Указатель на данные, которые будут направлены в сектор. Если в качестве значения этого параметра указано NULL, функция инициализирует/финализирует операцию записи.
- SectorBytes
- Указывает количество байт для отправки из буфера Buffer, если параметр Buffer не равен NULL. Если Buffer равен NULL и значение SectorBytes не равно 0, то функция инициирует операцию записи в сектор. Если в обоих параметрах 0, то функция финализирует операцию записи текущего сектора.
Возвращаемые значения
- RES_OK (0)
- Функция завершена успешно.
- RES_ERROR
- Произошла какая-то невосстановимая аппаратная ошибка во время операции записи диска, или привод имеет включенную защиту от записи (write protected).
- RES_PARERR
- Недопустимый параметр.
- RES_NOTRDY
- Привод диска не был инициализирован.
Описание
Операция записи сектора выполняется в следующей последовательности.
- disk_writep(0, sector_number); Инициация операции записи сектора.
- disk_writep(data, byte_to_write); Начало отправки данных в сектор...
- disk_writep(data, byte_to_write); ... и данные могут быть отправлены до 512 одним или большим количеством вызовов.
- disk_writep(data, byte_to_write); ...
- disk_writep(0, 0); Финализация операции записи. Если общее количество отправленных байт было меньше 512, то оставшиеся байты сектора будут заполнены нулями.
Если в настоящее время активна операция записи, то функция disk_readp завершится с ошибкой и функция disk_initialize сделает финализацию операции записи.
Замечание
Эта функция не требуется в конфигурации read-only (только чтение).
[Ссылки]
1. disk_writep - Write partial sector (оригинал статьи на английском языке). |