|
Файловая система, Способ создания своей, нужна инфа |
|
|
|
Aug 29 2007, 08:42
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Задача такая: есть FLash( или EEPROM) малого размера (до 32кбайт), на которой хочу реализовать ФС, и в будущем для переносить эту ФС на память большого размера.
Хотелось бы равномерно использовать память при записи/стирании (максимально использовать ресурс перезаписи ячеек), чтобы число записей в каждую ячейу было приблизительно одинаковым.
Поддержка "транзакций", т.е. запись считается завершенной если пройден полный цикл операций f_open ... f_close.
Возможность отслеживания испорченных ячеек( в физическом смысле), т.е способы учета этих ячеек.
Если кто занимался или использовал в проектах разьясните какие траблы могут возникнуть. Сейчас нахожусь на этапе определения структуры файловой системы.
Посоветуйте какие-нибудь способы организации ФС.
Подскажите ссылки на инфу.
Спасибо.
|
|
|
|
|
Aug 29 2007, 09:50
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Цитата(zltigo @ Aug 29 2007, 12:00)  Подскажите, а чем Вы руководствались создавая тему в ветке компилятора IAR? Будте внимательнее. Тема перенесена. Пардон , грубо ошибся извините.
|
|
|
|
|
Aug 29 2007, 10:35
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Цитата(Deka @ Aug 29 2007, 12:51)  Ввиду малого объёма я наверное попробовал-бы реализовать что-то типа кольцевого списка (буфера) с указателями чтения и записи. А в качестве единиц хранимой информации использовать записи (блоки информации с фиксированными полями). Потом всю эту структуру можно разместить в обычном файле любой файловой системы. Конкретных проектов небыло, но вот такие вот мысли посетили... В принципе такой тип хранения данных уже используется, и он пригоден для данных располагающихся последовательно (т.е. данные ложатся и забираются последовательно и упорядочено). Меня интересует ФС в которой одни данные медленно изменяются(перезаписываются), а другие - быстро. Получаем неравномерное распределение памяти. Поэтому хочу разбить память на сектора и работать с каждым сектором независимо. При удалении произвольного файла в памяти образуется дырка, по этому кольцевой буфер не подходит... Может есть способ и я ошибаюсь , то извините. Хочется сделать ФС чтобы её можно было-бы поставить на память как малого ,так и болього размера(что-бы был общий подход к размещению информации) .
|
|
|
|
|
Aug 29 2007, 11:45
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 30-05-06
Из: Минск,Белорусия
Пользователь №: 17 572

|
Цитата(Непомнящий Евгений @ Aug 29 2007, 14:21)  ... Если сильно - надо посмотреть на готовые файловые системы - наверное есть порты и для МК. По крайней мере можно почитать, как они устроены. Вот с этого поподробнее, то что выше это понятно. Хотелось бы парочку ссылок , если не трудно.
|
|
|
|
|
Aug 29 2007, 12:36
|
Местный
  
Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031

|
Цитата Надо где-то хранить эту инфу + цепочки кластеров, составляющих файл. Желательно позаботиться, чтобы эта инфа не слетела в случае ошибки памяти - т.е. ее надо дублировать. Эту инфу также нельзя хранить в строго определённом месте, потому что она будет меняться после каждой записи.
|
|
|
|
|
Jan 7 2008, 19:48
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 20-12-07
Из: Северодонецк
Пользователь №: 33 469

|
Цитата(Aesthete Animus @ Jan 7 2008, 17:29)  Вопрос быть может не в тему, но не хочу плодить лишних сущностей.
Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание. Можно посмотреть во 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
Сообщение отредактировал Kekek - Jan 7 2008, 20:03
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|