Форум Херсона. Форум Херсонской молодежи, флейм, фотографии Херсона, политика в Херсоне, сетевой форум, сети Херсона


Приветствуем на Форум Херсона. Форум Херсонской молодежи..

На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру!

Если возникнут проблемы с регистрацией напишите нам.

Галерея форума Блоги пользователей Список банов
Вернуться   Форум Херсона. Форум Херсонской молодежи. > >
Регистрация СправкаСтатистика Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Программирование Все вопросы по написанию программ

Ответ
 
Опции темы
Старый 04.12.2017, 11:43   #1 (Ссылка на пост)
Si vis pacem, para bellum
 
Аватар для VoVaN
Пол:
 
Активность Longevity
17/20 14/20
Today Сообщения
0/5 ssss12812
Адрес: Херсон
Благодарил(а): 8,596
Благодарили 28,709 раз в 7,723 постах
Галерея: 0
Вес репутации: 308 VoVaN скоро в модераторыVoVaN скоро в модераторы
VoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторы
Загальні запитання

Колупаю зараз драйвер Fat32. Щось він некоректно читає деякі накопичувачі, зокрема ЮСБ-флешку, форматовану віндамисьомими.

По порядку.
Драйвер читає MBR та намагається інтерпретувати. Знаходить записи щодо розділів:
Цитата:
00000000000000000000000000000000 - немає
00020300051468EC80000000809F7800 - є
00000000000000000000000000000000 - немає
00000000000000000000000000000000 - немає
Далі розбирає запис 00020300051468EC80000000809F7800.
І на цьому етапі трапляється якесь фіаско. А саме - параметр початкового LBA розділу (@ 0x1D6). Тут він дорівнює 0x80 або 128 dec.
Название:  wh0.png
Просмотров: 97

Размер:  10.5 Кбайт
(с) WinHEX

Початковий сектор же в нас насправді 0х100 або 256 dec. І WinHEX цю магію вміє.
Название:  wh1.png
Просмотров: 94

Размер:  9.6 Кбайт

Драйвер чомусь вважає що номер першого сектору розділу тотожний початковому LBA (я донедавна теж так вважав. Та навіть сам WinHEX називає це "Sectors preceding partition". WTF?!) та шукає файлову таблицю у секторі 0х80, хоча насправді вона лежить за адресою 0х100. І так, якщо просто зсунути число на один розряд вліво (чи домножити на два) все працює вірно. Але очевидно що додатково множити на константу - то є скажений костиль і так робити не можна. Я підозрюю що там має бути не константа А якесь число яке звідкись береться.
Я ХЗ, чи то якась нова специфікація яку ми з цим драйвером не знаємо, чи то що.
Хто знає?

* * *

Все, розібрався. Треба було одразу звернути увагу на ідентифікатор типу розділу, який 0х05 замість очікуваного 0х0В. Тобто падлюча вінда замість того щоб зробити просто первинний розділ з ФАТом, робить логічний розділ за адресою 0х80, у якому розміщає таблицю з вказівником на єдиний розділ з ФАТом за адресою 0х80 від початку цього розділу (а не у абсолютних координатах), тобто насправді 0х80+0х80 = 0х100.*
Р - Раціоналізаторство. А драйвер маленький і не може у логічні розділи. Доведеться додати в нього трішечки магічної рекурсії.
От як правильно задане запитання допомагає знайти відповідь

* - і це черговий раз демонструє, чому у жодному разі не можна використовувати костилі які надають просте рішення проблеми, суть якої наразі не зрозуміла.

ПС
Пропоную тему залишити відкритою та приліпити щоб мені було соромно що я одразу не подумав про логічні розділи не плодити теми задля одноразових запитань.
__________________
У світі багато брудного й заразного,
Але той хто хоче - лишається чистим.

Последний раз редактировалось VoVaN, 04.12.2017 в 13:47. Причина: https://en.wikipedia.org/wiki/Partition_type
VoVaN вне форума  
Ответить с цитированием
Сказали Спасибо пользователю VoVaN за этот пост:
Davlat (04.12.2017)
Старый 04.12.2017, 12:52   #2 (Ссылка на пост)
Местные мы
Пол:
 
Активность Longevity
7/20 8/20
Today Сообщения
0/5 ssssss542
Благодарил(а): 133
Благодарили 198 раз в 104 постах
Галерея: 0
Вес репутации: 8 Lukas имеет великолепную ауруLukas имеет великолепную ауру
Слушай, я конечно ничего не смыслю в этом, но что-то мне подсказывает, что нужно не умножать на 2, а прибавлять 1CF 1D0 по формуле. Создай еще один раздел, и если там так же параметр 1D6 будет 128, то значит это уже смещение внутри раздела.
Почитай с 20 стр

Почесав затылок, юзер дописал через 4 минуты
ой, не заметил, что уже решилось.
В книжке в примере 1 дескриптор не пустой, как у тебя.
Lukas вне форума  
Ответить с цитированием
Сказали Спасибо пользователю Lukas за этот пост:
VoVaN (04.12.2017)
Старый 04.12.2017, 19:59   #3 (Ссылка на пост)
Извините, я на тракторе!
 
Аватар для Debian
Пол:
 
Активность Longevity
6/20 18/20
Today Сообщения
1/5 ssss10007
Адрес: Вот там вот и живем...
Благодарил(а): 2,981
Благодарили 12,087 раз в 3,515 постах
Записей в дневнике: 21
Галерея: 2
Вес репутации: 143 Debian скоро в модераторы
Debian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторы
Отправить сообщение для  Debian с помощью ICQ
Это ты FatFS мучаешь?
__________________
Какая разница из какого места растут руки, если они золотые.
Debian на форуме  
Ответить с цитированием
Старый 04.12.2017, 20:06   #4 (Ссылка на пост)
Si vis pacem, para bellum
 
Аватар для VoVaN
Пол:
 
Активность Longevity
17/20 14/20
Today Сообщения
0/5 ssss12812
Адрес: Херсон
Благодарил(а): 8,596
Благодарили 28,709 раз в 7,723 постах
Галерея: 0
Вес репутации: 308 VoVaN скоро в модераторыVoVaN скоро в модераторы
VoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторы
Цитата:
Сообщение от Debian Посмотреть сообщение
Это ты FatFS мучаешь?
Угу. Написаний як гівно :(
__________________
У світі багато брудного й заразного,
Але той хто хоче - лишається чистим.
VoVaN вне форума  
Ответить с цитированием
Старый 04.12.2017, 20:23   #5 (Ссылка на пост)
Извините, я на тракторе!
 
Аватар для Debian
Пол:
 
Активность Longevity
6/20 18/20
Today Сообщения
1/5 ssss10007
Адрес: Вот там вот и живем...
Благодарил(а): 2,981
Благодарили 12,087 раз в 3,515 постах
Записей в дневнике: 21
Галерея: 2
Вес репутации: 143 Debian скоро в модераторы
Debian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторыDebian скоро в модераторы
Отправить сообщение для  Debian с помощью ICQ
Цитата:
Сообщение от VoVaN Посмотреть сообщение
Угу. Написаний як гівно :(
юзай http://ru.bmstu.wiki/Chan_FAT


тю... это ужэ одно и тоже Оо
раньше было разное
__________________
Какая разница из какого места растут руки, если они золотые.
Debian на форуме  
Ответить с цитированием
Старый 04.12.2017, 22:02   #6 (Ссылка на пост)
Местные мы
Пол:
 
Активность Longevity
7/20 8/20
Today Сообщения
0/5 ssssss542
Благодарил(а): 133
Благодарили 198 раз в 104 постах
Галерея: 0
Вес репутации: 8 Lukas имеет великолепную ауруLukas имеет великолепную ауру
Цитата:
Сообщение от VoVaN Посмотреть сообщение
Угу. Написаний як гівно :(
мама дорогая, ФатФС от Чана, но не Джеки, в нете считается самой шикарной библиотекой... Особенно если контроллер слабенький как тинька85 Petit-Fatfs в первую очередь рекомендуют все по умолчанию. Никто говна в нем не увидел.
Lukas вне форума  
Ответить с цитированием
Старый 04.12.2017, 22:57   #7 (Ссылка на пост)
Si vis pacem, para bellum
 
Аватар для VoVaN
Пол:
 
Активность Longevity
17/20 14/20
Today Сообщения
0/5 ssss12812
Адрес: Херсон
Благодарил(а): 8,596
Благодарили 28,709 раз в 7,723 постах
Галерея: 0
Вес репутации: 308 VoVaN скоро в модераторыVoVaN скоро в модераторы
VoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторы
Цитата:
Сообщение от Debian Посмотреть сообщение
тю... это ужэ одно и тоже Оо
раньше было разное
Я щось теж не зміг зрозуміти де тут сміятися

Цитата:
Сообщение от Lukas Посмотреть сообщение
мама дорогая, ФатФС от Чана, но не Джеки, в нете считается самой шикарной библиотекой... Особенно если контроллер слабенький как тинька85 Petit-Fatfs в первую очередь рекомендуют все по умолчанию. Никто говна в нем не увидел.
По-перше, я не знаю що там у якого Джекі Чана, мова йшла про бібліотеку яку роздають ST. По-друге - обґрунтування моєї оцінки міститься у першому псті, і це не єдина підстава так вважати.
__________________
У світі багато брудного й заразного,
Але той хто хоче - лишається чистим.
VoVaN вне форума  
Ответить с цитированием
Старый 05.12.2017, 11:02   #8 (Ссылка на пост)
Si vis pacem, para bellum
 
Аватар для VoVaN
Пол:
 
Активность Longevity
17/20 14/20
Today Сообщения
0/5 ssss12812
Адрес: Херсон
Благодарил(а): 8,596
Благодарили 28,709 раз в 7,723 постах
Галерея: 0
Вес репутации: 308 VoVaN скоро в модераторыVoVaN скоро в модераторы
VoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторыVoVaN скоро в модераторы
Post

Нібито патч

ff.c, рядок #3064

Код:
br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
замінити на

Код:
switch (pt[PTE_System])
{
case 0: // empty record
	br[i] = 0;
	break;
			
case 0x05: // extended/CHS
	// here must be converter CHS->LBA, but it was fucked off. Because CHS sux!
case 0xF0: // extended/LBA
	bsect = ld_dword(pt + PTE_StLba);
	if (check_fs(fs, bsect) == 2) // I have no partition, but I have something better. Image of partition!
		br[i] = bsect + ld_dword(fs->win + MBR_Table + PTE_StLba);
	else
		br[i] = 0;
	break;
				
case 0x0B: // clearly, FAT
default: // Some other mysterious CHUPACABRA. Let`s leave it alone.
	br[i] = ld_dword(pt + PTE_StLba);
	break;		
}
Це не остаточна версія, а швидке лагодження. Більшість проблем залишилися на місці, але тепер працюють розширені розділи.
По-перше треба уточнити щодо специфікації використання типів 05/F0 та їх адресацій, а також додати конвертор адреси з циліндрів у логічні блоки (але, на скільки я міг помітити, інформація дублюється, то ж у моєму випадку працює і так). По-друге - тут контролюється тільки перший логічний розділ з розширеної таблиці; якщо раптом буде задіяно другий (хто знає цю вінду) - його не побачить, то ж було б непогано додати гілку або цикл (щоправда це викличе складнощі з місцевою реалізацію мульті-партишену). По-третє - насправді існує набагато більше ідентифікаторів типу ФС (в тому числі і сумісних), і варто було б їх теж уміти вірно інтерпретувати. Але це вже інша історія.

ПС
Ні, серйозно, підхід "якщо тип ФС не нуль - значить це ФАТ" - це нормально?!
__________________
У світі багато брудного й заразного,
Але той хто хоче - лишається чистим.
VoVaN вне форума  
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Время на сервере: 01:10.

Регистрация Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

vBulletin 3, Copyright © 2000-2017, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co