Идея размещения и поиска суперблока взята из jffs3 - сделал 3 chain-блока + anchor area + superblock, деревья вообще не делал так как мне запись в середину файла пока не нужна - на флеше лежат прошивки для DSP/FPGA и логи, которые всегда добавляются в конец. При монтировании строится bitmap свободных секторов исходя из данных суперблока, и по версии транзакции вычисляется последний записанный сектор - с него и продолжается запись. Получилось 600 строк на Ц + 100 строк тестов, ram - 2.7k, data 10k. (собрано gcc с -O3).
|