Главная Форум Галерея Правила Администрация Случайный линк Wikitalia  
От Администрации: Политические дискуссии, не связанные с Италией, перенесны в специальный раздел Мобильная версия форума
Russian Italy
 РегистрацияРегистрация 
  FAQFAQ    ПоискПоиск   
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Програмисты-кодеры )))

Пользователей, посетивших тему за последние 24 часа: 0

На страницу Пред.  1, 2, 3, 4
Ответить на тему  Список форумов Russian Italy -> Компьютеры и другие полезные железки
Предыдущая тема :: Следующая тема  
Автор Сообщение
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 09:28    Цитировать выделенный текст Ответить с цитатой

лумес
после длительных мучений было выяснено )
в общем при перепрошивке бут и кернел ставятся без ошибок и проблем
а вот образ файловой не ставится изза наличия бэд блоков

в общем задача отформатить фс

в кернеле есть некий шелл встроеный с интерпертатором
там поддержка нандовских команд
но там формата нет ( есть nand erase clean к примеру
но оно просто киляет файлы и не форматит
при заходе через нормальный шелл (рут) там как я тебе говорил нет половины бинарников и mkfs не пашет
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 09:49    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
лумес
после длительных мучений было выяснено )
в общем при перепрошивке бут и кернел ставятся без ошибок и проблем
а вот образ файловой не ставится изза наличия бэд блоков

в общем задача отформатить фс

в кернеле есть некий шелл встроеный с интерпертатором
там поддержка нандовских команд
но там формата нет ( есть nand erase clean к примеру
но оно просто киляет файлы и не форматит
при заходе через нормальный шелл (рут) там как я тебе говорил нет половины бинарников и mkfs не пашет


Олег, что такое для тебя "форматирование"? Это и есть создание файловой системы. Боюсь, что не существет никакого низкоуровнего форматирования флэш мемори. Возможные операции: создание, удаление, модификация партишенов и создание файловой системы на них.
Тут есть, имхо, такие варианты:
1. Если дивайс на гарантии - поменять его.
2. Если облом ждать или нет гарантии - посмотри, с какой ошибкой вылетает программа перепрошивки:
- ей не нравится само наличие бэд блоков. это плохо, тут уж ничего не поделаешь.
- ей не нравится недостаток места из-за бэд блоков, и сами бэд блоки для неё не проблема. здесь можно посмотреть, нельзя ли потеснить другие партишены (fdisk, если нет бинарника, можно скомпилить кросс-компайлером для ARM9 и как-нибудь его туда забросить), либо уменьшить image фс путём удаления оттуда чего-нить ненужного..
Вернуться к началу
Посмотреть профиль   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 10:39    Цитировать выделенный текст Ответить с цитатой

для меня форматирование это создание "fat" и разметка дорожки, ну там запись в межсекторное пространство всяких данных обнуление секторов и так далее

а перепрошивка из образа может вовсе не означать форматирование
в имадже могут быть raw данные без учета межсекторных данных
тоесть я к примеру знаю что 1 сектор 2048 байта и все, беру с имаджа данные по 2048 и пихаю их в сектора

там 2 варианта у меня ерроров получается
если просто тупо распаковывать tar в / то пишет что нет места (изза бэдов)
если пытается залить туда имадж то получаю ерроры изза тех же бэд блоков

пс
видел на формуах намеки про возможность мотажа образа который физически на РС находится, было бы не плоха добится такого )
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 10:46    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
для меня форматирование это создание "fat" и разметка дорожки, ну там запись в межсекторное пространство всяких данных обнуление секторов и так далее


Цитата:
цитата:
--------------------------------------------------------------------------------
Кстати, а в FAT есть такое понятие, как межсекторное пространство ?
--------------------------------------------------------------------------------

Скажу больше, в FAT нет даже такого понятия как секторное пространство, он оперирует кластерами


Ты путаешь хард диски с дорожками, прерывания биоса и флэшмемори. Very Happy

Цитата:
NAND devices also require bad block management to be performed by device driver software, or by a separate controller chip (SD cards, for example, include controller circuitry to perform bad block management and wear leveling). When a logical block is accessed by high-level software, it is mapped to a physical block by the device driver or controller, and a number of blocks on the flash chip are set aside for storing mapping tables to deal with bad blocks.



почитай здесь: http://www.answers.com/topic/flash-memory?cat=technology
Вернуться к началу
Посмотреть профиль   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 10:55    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
если просто тупо распаковывать tar в / то пишет что нет места (изза бэдов)


А где при этом сам tar? Мож он сам это место занимает? Very Happy Если у тебя там есть ssh, то можно распаковать тар, который физически лежит на другой машине в сети.
Вернуться к началу
Посмотреть профиль   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 10:57    Цитировать выделенный текст Ответить с цитатой

все может быть что путаю так как флешки я ниразу програмно не форматил )))

а насчет фата вы не правы )
да фат оперирует кластерами но "межсекторное" пространство есть везде
во-первых оно нужно для синхронизации чтения на уровне железа
а во вторых там по любому лежит crc данных
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 11:06    Цитировать выделенный текст Ответить с цитатой

tar у меня лежит на SD карте

вот типичный набор файлов включая бут кернел и фс
Цитата:
kwant@kwant-desktop:~/Desktop/gp2x/gp2x-f100_2.0.0_060428$ ls -l
totale 12324
-rwx------ 1 kwant kwant 373348 2006-04-23 13:58 gp2xboot.img
-rwx------ 1 kwant kwant 6889851 2006-04-28 12:48 gp2xfs.tar.gz
-rwx------ 1 kwant kwant 632985 2006-04-20 15:33 gp2xkernel.img
-rwx------ 1 kwant kwant 1318886 2006-04-28 12:48 gp2xnand.tar.gz
-rwx------ 1 kwant kwant 238636 2006-03-28 11:30 gp2xsound.wav
-rwx------ 1 kwant kwant 3065040 2006-04-28 12:48 gp2xyaffs.img
-rwx------ 1 kwant kwant 17990 2006-04-17 13:45 GPL.txt
-rwx------ 1 kwant kwant 26436 2006-04-17 13:45 LGPL.txt
-rwx------ 1 kwant kwant 531 2006-04-28 12:48 License.txt
kwant@kwant-desktop:~/Desktop/gp2x/gp2x-f100_2.0.0_060428$

все это копируется на SD втыкается в девайс
врубаеш питание и держиш пару кнопок на девайсе
бут который в девайсе начинает читать с карты файлы и пытается записать их по нужным адресам
после записи бута и кернела делается ребут автоматом
и далее попытка распаковать tar которая обламывается изза бэдов
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 11:08    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
все может быть что путаю так как флешки я ниразу програмно не форматил )))

а насчет фата вы не правы )
да фат оперирует кластерами но "межсекторное" пространство есть везде
во-первых оно нужно для синхронизации чтения на уровне железа
а во вторых там по любому лежит crc данных


Цитата:

FAT
Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие ограничения на имена файлов:
- имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\[]:;|=,^*?
- максимальная длина имени - 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов.
- регистр символов в именах файлов не различается и не сохраняется.

Структура раздела FAT изображена на рисунке 1. В BIOS содержится необходимая информация о характеристиках жесткого диска. Файловая система FAT не способна контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры ( clusters ).Этим достигается, уменьшение общего количества единиц хранения данных, за которыми следит файловая система. Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (таблица 1). Кластер представляет собой минимальное пространство, которое может занимать файл. из-за этого часть пространства диска не используется.


Олег, физический доступ к "секторам" (анахронизм в случае флэш), контроль за бэд блоками, осуществляет драйвер устройства. Файловая система здесь не при делах, это стопудово. Поэтому проблему форматированием не решишь. ИМХО. Где-то на низком уровне драйвер записал некие блоки как неиспользуемые. И драйвер просто не даст их программе, создающей файлсистем (форматировщик). Он заявит ей, что доступно X - Y bytes, где Х - общий объём устройства, а Y - количество недоступных по причине поломки байтов информации.
Вернуться к началу
Посмотреть профиль   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 13:55    Цитировать выделенный текст Ответить с цитатой

не не ты шас путаеш абстрагированный уровень файловой системы и физический доступ
в винде как и в никсах есть понятие девайс
тоесть если я делаю CreateFile то могу таким макаром и создать файл и открыть pipe и mail slot и еше куче весчей сделать
но если к примеру я укажу как имя файла "\\Drive C" к примеру то получу доступ именно к диску а не к файловой системе но только к кластерам и секторам - это один из вариантов
второй вариант поставить драйвер который мне дает доступ к портам харда в этом случае могу хоть всю дорожку включая межсекторы

насчет флешек спорить не буду так как не увлекался никогда ими ))
но с другой стороны рассуждая логично предположим

на флешке есть хардварный контроль файловой системы (сомневаюсь)
обьясню почему сомневаюсь
если он хардварный то должен распознавать туеву хучу фс, яж могу спокойно форматить как в фат так и в фат 32 + нтфс + ехт2 + ехт3 и еще куча
физический формат у всех разный там где у фата лежит ну к примеру корневой каталог у ехт3 может лежать че угодно
так что хардварный контроль как бы отпадает думаю

в случае с нандом я могу предположить следушее
при установке другой фс к примеру физически было чтото записано , тоесть изменена геометрия фс, но в "цепочку фат" не были внесены изменения
что получаем при запуске дрова девайса смотрят "фат" и думают что работают с чем то им знакомым, при чтении секторов/кластеров находят там муть всякую (сrc не совпадает) вот и ошибка чтения записи
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 14:14    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
не не ты шас путаеш абстрагированный уровень файловой системы и физический доступ
в винде как и в никсах есть понятие девайс


Олег. Давай не будем спорить. Я тебе щас отвечу по пунктам, а ты пробегись по докам, или, если хочешь, я тебе ссылок набросаю, если время будет:

1. Указывая девайс (см. пример кода) ты открываешь его в raw mode, только и всего. Забудь о секторах, для тебя это один большой файл. О секторах и дорожках заботится драйвер.

Код:
   char _devicename[] = "\\\\.\\PhysicalDrive0";
   _devicename[strlen(_devicename)-1] += pTP->DeviceIndex;
   HWND hWnd = pTP->DialogWnd;
   CString fileName = pTP->ImagePath;
   ::PostMessage(hWnd, WM_THREAD_INIT, 0, 0);

   try {
      // Creating a handle to disk drive using CreateFile () function ..
      hDevice = CreateFile(_devicename,
         GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
         NULL, OPEN_EXISTING, 0, NULL);

      if (hDevice == INVALID_HANDLE_VALUE)
      {
         CString errMsg, errStr;

........


Это кусочек из кода моей прожки, которая прошивает карточку. Если тебя интересует полностью исходники - я тебе их предоставлю. Диск в этом случае видится как один большой файл, в который можно писать твой image, но никаких референс по секторам там нет.

2. Драйвер устройства абсолютно ничего не знает о файловой системе. Вся конструкция имеет слоёную схему, как сэндвич:
- низший слой, hw контроллер дивайса
- средний слой, драйвер, который использует ОС для обращений к дивайсу
- высший уровень, - файловая система, которая в свою очередь, тоже драйвер, но более высокого уровня.

Обращения идут от высшего уровня к низшему, по цепочке. Но не наоборот!
Так вот, драйвер накопительного устройства отвечает за сбойные участки на нём. Но не всегда, иногда это и hw контроллер. В случае флэшки - это драйвер.
А файловая система стоит на более высоком уровне, она ничего не знает о таких технических и пропьетарных деталях. Она обращается к устройству через драйвер.

3. Нет никакой цепочки FAT и изменений в ней. Могут быть сбойные участки, которые пришлись, например, на таблицу дескрипторов - тогда вообще хаос. Или же на файловый кластер, тогда при чтении/записи этого файла возникнут ошибки ФС.

Very Happy Фух, задолбался писать.


Последний раз редактировалось: lymes (12 Сен 2007 14:24), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 14:24    Цитировать выделенный текст Ответить с цитатой

да я не спорю )
просто как то писал прогу для восстановления данных с харда поэтому точно знаю как там что физически устроено

пойду про нанд читать )
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
OLEG1973
Писатель


Зарегистрирован: 13.03.2003
Сообщения: 395
Откуда: Italy/Bassano del Grappa
Возраст:52

Сообщение Добавлено: 12 Сен 2007 18:35    Цитировать выделенный текст Ответить с цитатой

лумес ) я вкурил (ты был не прав)

кароче на флешке как я и предполагал есть сектора и oob (out of band) проще говоря межсекторник (йес!) занимает от 16 до 64 байт в зависимости от размера сектора и в нем находится и контрольная сумма и маркер о "бэдности" или пригодности сектора
перезаписав маркер на 0xFF получим годный сектор
пишется этим
nand write.oob addr ofs size
Write `size' bytes from `addr' to the out-of-band data area
corresponding to `ofs' in NAND flash

шас буду писать програмулю для обнуления маркера )))
_________________
My cars: Toyota MR2 / Mitsubishi 3000GT / Mitsubishi Pajero Sport
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number   
lymes
BANNED


Зарегистрирован: 20.01.2005
Сообщения: 13827
Откуда: Roma


Сообщение Добавлено: 12 Сен 2007 18:39    Цитировать выделенный текст Ответить с цитатой

OLEG1973 писал(а):
лумес ) я вкурил (ты был не прав)

кароче на флешке как я и предполагал есть сектора и oob (out of band) проще говоря межсекторник (йес!) занимает от 16 до 64 байт в зависимости от размера сектора и в нем находится и контрольная сумма и маркер о "бэдности" или пригодности сектора
перезаписав маркер на 0xFF получим годный сектор
пишется этим
nand write.oob addr ofs size
Write `size' bytes from `addr' to the out-of-band data area
corresponding to `ofs' in NAND flash

шас буду писать програмулю для обнуления маркера )))


lol ну и слава богу. А чё я не прав-то был? К FATу-то это не имеет никакого отношения. А вот драйвер, ясен пень, куда-то пишет маркер о "бедности". Very Happy Это хорошо, что ты разобрался куда именно. Но! Остаётся одна загвоздка, - а если блоки действительно глючные? Обнуление не поможет, оно уберёт следствие, но не причину.
Вернуться к началу
Посмотреть профиль   
Показать сообщения:   
Ответить на тему    Список форумов Russian Italy -> Компьютеры и другие полезные железки Часовой пояс: GMT + 2
На страницу Пред.  1, 2, 3, 4
Страница 4 из 4

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Время загрузки страницы: 1 сек.

Главная Форум Галерея Правила Администрация Случайный линк Wikitalia
Powered by phpBB / Updated and modded by romutis © 2002-2008 and by VD © 2008-2024