Библиотека 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
Привод диска не был инициализирован.

Описание

Операция записи сектора выполняется в следующей последовательности.

  1. disk_writep(0, sector_number); Инициация операции записи сектора.
  2. disk_writep(data, byte_to_write); Начало отправки данных в сектор...
  3. disk_writep(data, byte_to_write); ... и данные могут быть отправлены до 512 одним или большим количеством вызовов.
  4. disk_writep(data, byte_to_write); ...
  5. disk_writep(0, 0); Финализация операции записи. Если общее количество отправленных байт было меньше 512, то оставшиеся байты сектора будут заполнены нулями.

Если в настоящее время активна операция записи, то функция disk_readp завершится с ошибкой и функция disk_initialize сделает финализацию операции записи.

Замечание

Эта функция не требуется в конфигурации read-only (только чтение).

[Ссылки]

1disk_writep - Write partial sector (оригинал статьи на английском языке).