реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Файловая система, Способ создания своей, нужна инфа
Серёга_1
сообщение Aug 29 2007, 08:42
Сообщение #1


Участник
*

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



Задача такая: есть FLash( или EEPROM) малого размера (до 32кбайт), на которой хочу реализовать ФС, и в будущем для переносить эту ФС на память большого размера.

Хотелось бы равномерно использовать память при записи/стирании (максимально использовать ресурс перезаписи ячеек), чтобы число записей в каждую ячейу было приблизительно одинаковым.

Поддержка "транзакций", т.е. запись считается завершенной если пройден полный цикл операций f_open ... f_close.

Возможность отслеживания испорченных ячеек( в физическом смысле), т.е способы учета этих ячеек.

Если кто занимался или использовал в проектах разьясните какие траблы могут возникнуть.
Сейчас нахожусь на этапе определения структуры файловой системы.

Посоветуйте какие-нибудь способы организации ФС.

Подскажите ссылки на инфу.

Спасибо.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 29 2007, 09:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Серёга_1 @ Aug 29 2007, 11:42) *
Подскажите...

Подскажите, а чем Вы руководствались создавая тему в ветке компилятора IAR?
Будте внимательнее. Тема перенесена.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Серёга_1
сообщение Aug 29 2007, 09:50
Сообщение #3


Участник
*

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



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



Пардон , грубо ошибся извините.
Go to the top of the page
 
+Quote Post
Deka
сообщение Aug 29 2007, 09:51
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Ввиду малого объёма я наверное попробовал-бы реализовать что-то типа кольцевого списка (буфера) с указателями чтения и записи. А в качестве единиц хранимой информации использовать записи (блоки информации с фиксированными полями). Потом всю эту структуру можно разместить в обычном файле любой файловой системы. Конкретных проектов небыло, но вот такие вот мысли посетили...
Go to the top of the page
 
+Quote Post
Серёга_1
сообщение Aug 29 2007, 10:35
Сообщение #5


Участник
*

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



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


В принципе такой тип хранения данных уже используется, и он пригоден для данных располагающихся последовательно (т.е. данные ложатся и забираются последовательно и упорядочено).

Меня интересует ФС в которой одни данные медленно изменяются(перезаписываются), а другие - быстро. Получаем неравномерное распределение памяти. Поэтому хочу разбить память на сектора и работать с каждым сектором независимо. При удалении произвольного файла в памяти образуется дырка, по этому кольцевой буфер не подходит...
Может есть способ и я ошибаюсь , то извините.

Хочется сделать ФС чтобы её можно было-бы поставить на память как малого ,так и болього размера(что-бы был общий подход к размещению информации) .
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 29 2007, 11:21
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Ну навскидку - бьете на сектора (кластеры). Для каждого кластера храните число "стираний". Если файл создается\расширяется, выделяете ему наименее поюзанный кластер.
Надо где-то хранить эту инфу + цепочки кластеров, составляющих файл. Желательно позаботиться, чтобы эта инфа не слетела в случае ошибки памяти - т.е. ее надо дублировать.
А вообще, надо подумать - насколько сильно заморачиваться. Если сильно - надо посмотреть на готовые файловые системы - наверное есть порты и для МК. По крайней мере можно почитать, как они устроены.
Go to the top of the page
 
+Quote Post
Серёга_1
сообщение Aug 29 2007, 11:45
Сообщение #7


Участник
*

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



Цитата(Непомнящий Евгений @ Aug 29 2007, 14:21) *
... Если сильно - надо посмотреть на готовые файловые системы - наверное есть порты и для МК. По крайней мере можно почитать, как они устроены.



Вот с этого поподробнее, то что выше это понятно.
Хотелось бы парочку ссылок , если не трудно.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 29 2007, 11:58
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Я только что начал пытать вот эту

http://elm-chan.org/fsw/ff/00index_e.html


--------------------
Go to the top of the page
 
+Quote Post
_Sam_
сообщение Aug 29 2007, 12:36
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031



Цитата
Надо где-то хранить эту инфу + цепочки кластеров, составляющих файл. Желательно позаботиться, чтобы эта инфа не слетела в случае ошибки памяти - т.е. ее надо дублировать.

Эту инфу также нельзя хранить в строго определённом месте, потому что она будет меняться после каждой записи.
Go to the top of the page
 
+Quote Post
bloodden
сообщение Sep 4 2007, 20:39
Сообщение #10


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(prottoss @ Aug 29 2007, 14:58) *
Я только что начал пытать вот эту

http://elm-chan.org/fsw/ff/00index_e.html

Хорошо она пытается. Я переносил в CodeVisionAVR 10мин шаманства и оно заработало, причём довольно резво, правда на М128 @18.432MHz smile.gif
Пологаю, что и с ИАРом проблем не будет.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
Deka
сообщение Sep 5 2007, 07:18
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



А файлы - аналоги комповых? Т.е. могут иметь разный размер? И вообще есть у блоков данных какие-нить границы в размерах?
Go to the top of the page
 
+Quote Post
bloodden
сообщение Sep 5 2007, 15:54
Сообщение #12


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(Deka @ Sep 5 2007, 10:18) *
А файлы - аналоги комповых? Т.е. могут иметь разный размер? И вообще есть у блоков данных какие-нить границы в размерах?

Если вопрос ко мне, то ответ - ДА. Там реализовано от FAT12 до FAT32.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Jan 7 2008, 15:29
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Вопрос быть может не в тему, но не хочу плодить лишних сущностей.

Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 7 2008, 15:52
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Aesthete Animus @ Jan 7 2008, 17:29) *
Насколько я знаю в нулевом секторе диска располагается таблица разделов. Хотел бы спросить, во-первых, как она правильно называется, во-вторых, где можно найти ее описание.
В нулевом секторе (насколько я знаю) хранится master boot record (MBR). Таблица разделов (partition table) хранится следом.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Kekek
сообщение Jan 7 2008, 19:48
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 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


--------------------
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01479 секунд с 7
ELECTRONIX ©2004-2016