Балда 0 August 29, 2007 Posted August 29, 2007 · Report post Задача такая: есть FLash( или EEPROM) малого размера (до 32кбайт), на которой хочу реализовать ФС, и в будущем для переносить эту ФС на память большого размера. Хотелось бы равномерно использовать память при записи/стирании (максимально использовать ресурс перезаписи ячеек), чтобы число записей в каждую ячейу было приблизительно одинаковым. Поддержка "транзакций", т.е. запись считается завершенной если пройден полный цикл операций f_open ... f_close. Возможность отслеживания испорченных ячеек( в физическом смысле), т.е способы учета этих ячеек. Если кто занимался или использовал в проектах разьясните какие траблы могут возникнуть. Сейчас нахожусь на этапе определения структуры файловой системы. Посоветуйте какие-нибудь способы организации ФС. Подскажите ссылки на инфу. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
zltigo 4 August 29, 2007 Posted August 29, 2007 · Report post Подскажите... Подскажите, а чем Вы руководствались создавая тему в ветке компилятора IAR? Будте внимательнее. Тема перенесена. Quote Share this post Link to post Share on other sites More sharing options...
Балда 0 August 29, 2007 Posted August 29, 2007 · Report post Подскажите, а чем Вы руководствались создавая тему в ветке компилятора IAR? Будте внимательнее. Тема перенесена. Пардон , грубо ошибся извините. Quote Share this post Link to post Share on other sites More sharing options...
Deka 0 August 29, 2007 Posted August 29, 2007 · Report post Ввиду малого объёма я наверное попробовал-бы реализовать что-то типа кольцевого списка (буфера) с указателями чтения и записи. А в качестве единиц хранимой информации использовать записи (блоки информации с фиксированными полями). Потом всю эту структуру можно разместить в обычном файле любой файловой системы. Конкретных проектов небыло, но вот такие вот мысли посетили... Quote Share this post Link to post Share on other sites More sharing options...
Балда 0 August 29, 2007 Posted August 29, 2007 · Report post Ввиду малого объёма я наверное попробовал-бы реализовать что-то типа кольцевого списка (буфера) с указателями чтения и записи. А в качестве единиц хранимой информации использовать записи (блоки информации с фиксированными полями). Потом всю эту структуру можно разместить в обычном файле любой файловой системы. Конкретных проектов небыло, но вот такие вот мысли посетили... В принципе такой тип хранения данных уже используется, и он пригоден для данных располагающихся последовательно (т.е. данные ложатся и забираются последовательно и упорядочено). Меня интересует ФС в которой одни данные медленно изменяются(перезаписываются), а другие - быстро. Получаем неравномерное распределение памяти. Поэтому хочу разбить память на сектора и работать с каждым сектором независимо. При удалении произвольного файла в памяти образуется дырка, по этому кольцевой буфер не подходит... Может есть способ и я ошибаюсь , то извините. Хочется сделать ФС чтобы её можно было-бы поставить на память как малого ,так и болього размера(что-бы был общий подход к размещению информации) . Quote Share this post Link to post Share on other sites More sharing options...
Johnny81 0 August 29, 2007 Posted August 29, 2007 · Report post Ну навскидку - бьете на сектора (кластеры). Для каждого кластера храните число "стираний". Если файл создается\расширяется, выделяете ему наименее поюзанный кластер. Надо где-то хранить эту инфу + цепочки кластеров, составляющих файл. Желательно позаботиться, чтобы эта инфа не слетела в случае ошибки памяти - т.е. ее надо дублировать. А вообще, надо подумать - насколько сильно заморачиваться. Если сильно - надо посмотреть на готовые файловые системы - наверное есть порты и для МК. По крайней мере можно почитать, как они устроены. Quote Share this post Link to post Share on other sites More sharing options...
Балда 0 August 29, 2007 Posted August 29, 2007 · Report post ... Если сильно - надо посмотреть на готовые файловые системы - наверное есть порты и для МК. По крайней мере можно почитать, как они устроены. Вот с этого поподробнее, то что выше это понятно. Хотелось бы парочку ссылок , если не трудно. Quote Share this post Link to post Share on other sites More sharing options...
prottoss 0 August 29, 2007 Posted August 29, 2007 · Report post Я только что начал пытать вот эту http://elm-chan.org/fsw/ff/00index_e.html Quote Share this post Link to post Share on other sites More sharing options...
_Sam_ 0 August 29, 2007 Posted August 29, 2007 · Report post Надо где-то хранить эту инфу + цепочки кластеров, составляющих файл. Желательно позаботиться, чтобы эта инфа не слетела в случае ошибки памяти - т.е. ее надо дублировать. Эту инфу также нельзя хранить в строго определённом месте, потому что она будет меняться после каждой записи. Quote Share this post Link to post Share on other sites More sharing options...
bloodden 0 September 4, 2007 Posted September 4, 2007 · Report post Я только что начал пытать вот эту http://elm-chan.org/fsw/ff/00index_e.html Хорошо она пытается. Я переносил в CodeVisionAVR 10мин шаманства и оно заработало, причём довольно резво, правда на М128 @18.432MHz :) Пологаю, что и с ИАРом проблем не будет. Quote Share this post Link to post Share on other sites More sharing options...
Deka 0 September 5, 2007 Posted September 5, 2007 · Report post А файлы - аналоги комповых? Т.е. могут иметь разный размер? И вообще есть у блоков данных какие-нить границы в размерах? Quote Share this post Link to post Share on other sites More sharing options...
bloodden 0 September 5, 2007 Posted September 5, 2007 · Report post А файлы - аналоги комповых? Т.е. могут иметь разный размер? И вообще есть у блоков данных какие-нить границы в размерах? Если вопрос ко мне, то ответ - ДА. Там реализовано от FAT12 до FAT32. Quote Share this post Link to post Share on other sites More sharing options...
Aesthete Animus 0 January 7, 2008 Posted January 7, 2008 · Report post Вопрос быть может не в тему, но не хочу плодить лишних сущностей. Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание. Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 186 January 7, 2008 Posted January 7, 2008 · Report post Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание.В нулевом секторе (насколько я знаю) хранится master boot record (MBR). Таблица разделов (partition table) хранится следом. Quote Share this post Link to post Share on other sites More sharing options...
Kekek 0 January 7, 2008 Posted January 7, 2008 (edited) · Report post Вопрос быть может не в тему, но не хочу плодить лишних сущностей. Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание. Можно посмотреть во FreeBSD: /usr/include/sys/disklabel.h /* * Each disk has a label which includes information about the hardware * disk geometry, filesystem partitions, and drive specific information. * The label is in block 0 or 1, possibly offset from the beginning * to leave room for a bootstrap, etc. */ http://www.freebsd.org/cgi/cvsweb.cgi/src/...pe=text%2Fplain Edited January 7, 2008 by Kekek Quote Share this post Link to post Share on other sites More sharing options...