Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор файловой системы для встраиваемых устройств
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
3.14
Я так полагаю, что FAT что EXT2 никак не подходят для использования в портативных устройствах
с автономным питанием.
Поагаю нужно выбитать либо EXT3 либо JFFS ... ?

Еще, на данный момент, драйвер флешки у меня я вляется внешним модулем, который загружается после загрузки системы, как включить драйвер в ядро?
makc
Цитата(3.14 @ Nov 6 2005, 19:38) *
Я так полагаю, что FAT что EXT2 никак не подходят для использования в портативных устройствах
с автономным питанием.


Почему не подходят? Все зависит от условий их применения и, следовательно, от характера использования устройства. Но если журналирование обязательно, то эти ФС точно не подойдут.

Цитата
Поагаю нужно выбитать либо EXT3 либо JFFS ... ?


Но ведь есть еще YAFFS, YAFFS2, JFFS2 и, думаю, другие ФС. Но эти самые известные.
Какие критерии выбора?

Цитата
Еще, на данный момент, драйвер флешки у меня я вляется внешним модулем, который загружается после загрузки системы, как включить драйвер в ядро?


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

Чтобы включить драйвер в ядро, нужно перенести его в дерево исходных текстов ядра и подправить Makefile в соответствующем каталоге. Кроме того, нужно в драйвере пометить функции инициализации и деинициализации с помощью атрибутов __init и __exit.
3.14
Цитата
Почему не подходят? Все зависит от условий их применения и, следовательно, от характера использования устройства. Но если журналирование обязательно, то эти ФС точно не подойдут.
Ну, например, устройство начало сохранять данные на флешку и в этот момент пропало питание?
Цитата
Цитата
Поагаю нужно выбитать либо EXT3 либо JFFS ... ?

Но ведь есть еще YAFFS, YAFFS2, JFFS2 и, думаю, другие ФС. Но эти самые известные.
Какие критерии выбора?
Простота и надежность, все-таки процессор у меня на 25 MIPS, не хочется озадачивать его лишними вещами.
Цитата
Цитата
Еще, на данный момент, драйвер флешки у меня я вляется внешним модулем, который загружается после загрузки системы, как включить драйвер в ядро?

Можно этот вопрос свести к другому - а это необходимо? Ведь модуль драйвера устройства включают в ядро (монолит) обычно в том случае, если хотят грузиться с этого устройства. То же касается и модуля для работы с файловой системой. Если в данном случае линукс не планируется грузить с этой флешки, то и включать модуль в ядро не обязательно.
Чтобы включить драйвер в ядро, нужно перенести его в дерево исходных текстов ядра и подправить Makefile в соответствующем каталоге. Кроме того, нужно в драйвере пометить функции инициализации и деинициализации с помощью атрибутов __init и __exit.
Именно, потому что я хочу глрузить uClinux с флешки. Мало того, в планах грузить FPGA то же с этой же флешки (через внешний контроллер).
makc
Цитата(3.14 @ Nov 7 2005, 09:37) *
Цитата
Почему не подходят? Все зависит от условий их применения и, следовательно, от характера использования устройства. Но если журналирование обязательно, то эти ФС точно не подойдут.
Ну, например, устройство начало сохранять данные на флешку и в этот момент пропало питание?


Понимаю. У самого была такая проблема в одном устройстве, где использовались AT45DBxxx. Пришлось написать свою маленькую журналируемую файловую систему для микроконтроллера.

Таким образом, от файловой системы требуется журналирование.

Цитата
Цитата
Цитата
Поагаю нужно выбитать либо EXT3 либо JFFS ... ?

Но ведь есть еще YAFFS, YAFFS2, JFFS2 и, думаю, другие ФС. Но эти самые известные.
Какие критерии выбора?
Простота и надежность, все-таки процессор у меня на 25 MIPS, не хочется озадачивать его лишними вещами.


25 MIPS - это совсем не много. Но тут есть и другое ограничение. Все вышеперечисленные файловые системы имеют довольно большой аппетит до памяти.
Цитата
Цитата
Цитата
Еще, на данный момент, драйвер флешки у меня я вляется внешним модулем, который загружается после загрузки системы, как включить драйвер в ядро?

Можно этот вопрос свести к другому - а это необходимо? Ведь модуль драйвера устройства включают в ядро (монолит) обычно в том случае, если хотят грузиться с этого устройства. То же касается и модуля для работы с файловой системой. Если в данном случае линукс не планируется грузить с этой флешки, то и включать модуль в ядро не обязательно.
Чтобы включить драйвер в ядро, нужно перенести его в дерево исходных текстов ядра и подправить Makefile в соответствующем каталоге. Кроме того, нужно в драйвере пометить функции инициализации и деинициализации с помощью атрибутов __init и __exit.
Именно, потому что я хочу глрузить uClinux с флешки. Мало того, в планах грузить FPGA то же с этой же флешки (через внешний контроллер).


Так... Ведь сам себя uClinux с флешки загрузить не может. Его грузит бутлоадер, который загружает ядро в память, распаковывает его и передает ему управление. Т.е. в данном случае начинать нужно с бутлоадера, который должен уметь грузить ядро с флешки. После этого стоит думать о самом ядре и включать в его состав драйвер флешки, чтобы ядро могло работать с корнем файловой системы, размещенной на флешке.
Harbour
Цитата(3.14 @ Nov 6 2005, 19:38) *
Я так полагаю, что FAT что EXT2 никак не подходят для использования в портативных устройствах
с автономным питанием.
Поагаю нужно выбитать либо EXT3 либо JFFS ... ?

Еще, на данный момент, драйвер флешки у меня я вляется внешним модулем, который загружается после загрузки системы, как включить драйвер в ядро?

Тут все от памяти зависит - если ее много, лучше использовать готовое журналируемое решение, если мало, то есть 2 варианта - спереть tinyfs (инфы про журналируемость правда нету) или написать свою, что IMHO лучше.
На простую (без директорий) журналируемую fs у меня ушло 3 дня и 100 байт RAM'а + размер буфера для сектора. При использовании флеша со встроенными буферами (типа at45dbxxx) можно уложиться в 100 байт.
3.14
Памяти у меня море (32М).
Насколько успел проникнуться, JFFS2 предпочтительнее, т.к. ничего не привязывеатся к номерам секторов. Но, опять же насколько успел понять, так просто флешку не нельзя монтировать, нужны какие то манипуляции с MTD.
Yra
Поделитесь толковой докой о принципах построения файловых систем (для флешек smile.gif )
makc
Цитата(Yra @ Nov 23 2005, 00:34) *
Поделитесь толковой докой о принципах построения файловых систем (для флешек smile.gif )


http://www.cs.tau.ac.il/~stoledo/Pubs/flash-survey.pdf

А еще см. Google на тему JFFS, JFFS2, YAFFS и т.д.
zaratustra
makc

> Т.е. в данном случае начинать нужно с бутлоадера, который должен уметь грузить ядро с флешки.
> После этого стоит думать о самом ядре и включать в его состав драйвер флешки, чтобы ядро могло
> работать с корнем файловой системы, размещенной на флешке.

Чтобы загрузить ядро с флэшки надо загрузить драйвер файловой системы и драйвер флэшки _до_ передачи управления ядру. Иначе получится kernel panic wink.gif)) Можно поискать варианты с mkinitrd - например в suse такая возможность заложена штатно.

зы попробовал приаттачить файл - не получилось


3.14

Хотя и не в embedded приложениях, но в варианте частых сбоев питания у меня работали ext3 и reiserfs - нареканий не было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.