Pull to refresh

Comments 12

Форматировать код вам религия не позволяет?
Есть отличные инструменты, как пример:
www.tutorialspoint.com/online_c_formatter.htm
в т.ч. с различными настройками.
К сожалению воспользоваться не получилось — пытался делать читабельным в HTML
Так понимаю, что к предыдущей статье и к текущей — один репозиторий на гитхабе и он немного оброс чтением однокластерных файлов fat12?

Репозиторий один. Насчет кластеров — да. Пишем любые, читаем однокластерные.

Fat открытая спецификация и структура диска весьма примитивная. К тому же на все про все выдано 64 сектора по 512 байт, или вроде того. Это даже не дискета в 360 килобайт.

Вообще — из-за простоты и доступности решения. Чтобы хранить данные на внутреннем флеше, собственно, вообще никакой файловой системы не требуется. Можно формировать и заливать образы диска 65К с компьютера. Но это не очень удобно пользователям. Файловая система упрощает работу редактирования настроек. Например это можно делать вообще со смартфона. А файловая система fat12 — упрощает работу программиста :)

хм. в "упрощенный поиск по имени файла"
found=1;
надо бы вынести перед циклом, иначе все время будет возвращать данные первого попавшегося файла.
Ну и вот это:
if (found==1) {
found=1;
break;
}
это зачем?

Вы правы, found=1 перед break — остатки от рефакторинга :) Это можно убрать.
А вот выносить перед циклом — не надо.

Собрал исходники из предыдущей статьи под CooCox'ом для stm32f103cbt6, работает.
Спасибо за статью и сорцы, повеселился с флэшкой на 12 килобайт.

Портировалось без проблем, разве что кокос (arm gcc) с разными видами оптимизаций выдает код значительно длиннее 24576 байт, пришлось подвинуть начало «флэшки» с 0x08006000 значительно дальше, иначе при форматировании затиралась сама рабочая программа. Даже при оптимизации «по объему», вышло 36 кило.
Ну и вещи типа «for(int i=...» gcc не любит.
Пожалуйста. Можно кстати вполне увеличить объем «флешки» — увеличив соответственно количество STORAGE_BLK_NBR c 0x80 до 0xB7. Получим флешку 92К.
(131072(128К ) — 36864(36К) = 94208 = 184 (B7) сектора по 512 байт )
Sign up to leave a comment.

Articles