Только с CH376:
- поддержка полноценной записи файлов, поддержка удаления файлов
- W ИМЯфайла.РАСШИРЕНИЕфайла,АДРЕСоткуда,СКОЛЬКОбайт - записать в файл
данные из памяти, начиная с указанного адреса в памяти и сколько байт
(пример: W TEST.BIN,0ACD,5FE0 - пишет в файл TEST.BIN из памяти начиная
с адреса 0х0ACD и до адреса 0х0ACD+0х5FE0=0х6AAD).
Все параметры обязательные. Если файла нет - он будет создан, если есть -
сообщение FILE EXISTS и выход (ничего не записывется);
- WO ИМЯфайла.РАСШИРЕНИЕфайла,АДРЕСоткуда,СКОЛЬКОбайт - аналогично W, но
в случае наличия файла он перезаписывается, длина становится равна СКОЛЬКОбайт;
- WA ИМЯфайла.РАСШИРЕНИЕфайла,АДРЕСоткуда,СКОЛЬКОбайт - аналогично W, но
в случае наличия файла данные добавляются в конец файла, длина увеличивается на СКОЛЬКОбайт;
- DEL ИМЯфайла.РАСШИРЕНИЕфайла - удаление файла. удаление директорий заблокировано,
потому что контроллер не проверяет наличие файлов внутри директории и удаляет со
всеми потрохами, причем делает это некорректно;
- I [LUN] - запуск повторной инициализации устройства. параметр LUN нужен для работы с
некоторыми картридерами чтобы выбрать нужную карту. теоретически может быть от 0 до F,
пока максимум что мне попалось - 4. если не указан - то 0. макс. значение выводится
при инициализации;
- ? - небольшой встроенный help. можно отключить в defs.inc (жрет место в бинарнике)
- требуется гораздо меньше ОЗУ под буферы (36 байт на USB дескриптор и по 64 байта
на командную строку и путь). детально не копал, но похоже количество вводимых символов
не проверяется, так что с длинными путями и ком. строкой надо осторожнее.
- по железу - контроллер подключается аналогично SD_HWM_PVV - шина данных, /RD, /WR, /CS, A0.
конкретные адреса нужно указать в defs.inc (DATA_PORT, CMD_PORT);
там же надо указать начальный адрес компиляции и адрес буфера.
все это добро со всеми фичами помещается в 2 килобайта. загрузка файлов по ощущениям
в несколько раз быстрее чем с SD_HWM_PVV (это понятно - процессору не нужно перепахивать
директории, FAT и т.п.)
[свернуть]