|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:20 am
| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Абе сложно е да го сложиш на най-ниското ниво. Много объркана ще стане цялата логика - ще имам един софтуер, дето да лъже друг софтуер, че третия софтуер е ОК. Не ги обичам тия работи.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 2:47 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Не е лъгане, бе Цецо, то там си му е мястото - хардуерно зависимите неща къде да са.
Слагат ги и по-нагоре и ако си късметлия може и да намериш нещо де, най вероятно ще
си защото тия неща са много масови напоследък, ама и долу да ти се наложи да
го сложиш няма да е много работа, нито ще е "нечисто".
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пон Фев 21, 2011 3:23 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Стандартните примери са за fatfs но нищо конкретно не мога да ти кажа, щото не съм ги мъчил.
|
| Пон Фев 21, 2011 3:41 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Порт на Fatfs върви с демотата на Луминари, но малко стара версия беше, аз портнах последната за тогава 0.07, работи с карта и усб флаш, няма дертове с нея. Както казва батето - имаш да си напишеш няколко функции... по-конкретно
* disk_initialize - Initialize disk drive
* disk_status - Get disk status
* disk_read - Read sector(s)
* disk_write - Write sector(s)
* disk_ioctl - Control device dependent features
* get_fattime - Get current time (ако имаш часовник )
efsl не съм я ползвал.
|
| Пон Фев 21, 2011 3:54 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Използвам FatFs с SD карти и MMD FS на Microchip с SD и USB. И двете работят перфектно.
На FatFs просто няма какво да й бъзикаш, дописваш си функциите, които ти трябват за достъп на ниско ниво на конкретния хардуер и това е. Има и готов пример, в който можеш да използваш заготвките на съществуващите функции. Никакви портове
не се налагат да се правят.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 21, 2011 4:41 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Абе то без бъзикане няма да се мине, защото на мен ми трябва малко по особенна логика на писане на файловете.
Но явно модата е FatFs.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 5:02 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Интересно ще да е споделиш каква е тази по особена логика 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 21, 2011 5:18 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Това, което мен ме притеснява в тези окастрени файлови системки е, че няма грам обработка на грешки или поне аз не видях такава...
Демек за read-only приложения стават, ама за приложения дето се пише честичко и трябва да работи дълго без човешка намеса нещо им нямам вяра. Не знам, може би ако се форматира картата с няколко FAT копия, самите алгоритми да гарантират че няма да се омаже всичко? дори и някой запис да бъде прекъснат?
Някой има ли опит на тая тема?
|
| Пон Фев 21, 2011 6:00 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами едното което ме притеснява е това което казва Миро.
Другото е че при мен данните са стрим. Т.е. текат и картата, жива умряла трябва да пише. А ФАТ не е най-благодатната система (ама пък я искат по спецификация) за стримови данни, щото трябва непрекъснато да се чете и пише FAT-а. Благодатно пък е обаче, че знам колко е максималния размер на файла.
Идеята ми е преди да почне за записва, да алокира във ФАТ-а максималния размер на файла и да си направи в РАМА някъде карта на клъстерите в които ще пише. Така ще пише само физическите данни, без да бърника и ФАТ. Чак при затваряне на файла ще оправя тази бакия. Ако случайно тока спре, ще остане един омазан ФАТ, но мисля това да го оправям постфактум, като в един вътрешен Е2ПРОМ си пиша колко клъстера съм успял да запълня. Нещо такова, не ми е още съвсем кристално в главата 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 6:18 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Ами ако това са особените неща, то мисля е безсмислено да се захващаш с FAT, по-добре е да си направиш нещо собствено, което да ти гарантира последователно използване на клъстери, а защо не и сектори, след това си правиш един драйвер от страната на ПК, който да ти чете твоята си дискова организация и това е.
А колкото до проверката дали е записана правилно информацията, след fwrite винаги можеш да си направиш проверка с fread. Същото може да се направи и вътре в самата fwrite, но мисля е по-сложно и неудобно, трябва да се пази локално стария файлов указател, да се стартира процес на четене и т.н. Поне на мен ми се вижда много по-удобно да извикаш fwrite, да ти върне управлението след края на записа, пък след това можеш и нещо друго да свършиш преди да направиш проверка дали всичко е записано правилно.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пон Фев 21, 2011 6:44 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Въпросът е дали FAT-а ще се сбозва наистина?
|
| Пон Фев 21, 2011 7:13 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
FAT-ът няма много общо в ситуацията. Ако ще се пише непрекъснато, той ще _трябва_ да е
в кеш някъде, никой flash няма да издържи на такова темпо на писане/триене за разумен
период от време.
Но въобще това с писането жив/умрял е умряла работа, умрелите флашове не могат да се пишат.
Можеш само да имаш добра представа къде да _не_ опитваш да пишеш предварително, което
предполага някакъв тест и надежда, че при опит после на базата на теста няма да има изненанди.
По принцип разните SD карти - само съм ги чел де - сами се грижат за лошите си сектори и
едва ли ще намериш две еднакво държащи се.
Преди много години писах за DPS едно подходящо за подобни цели нещо, пише/чете всеки
сектор поотделно и мери времето - от някакво време нагоре го слага в LCAT (Lockout Cluster
Allocation Table) файла на диска. Та нещо такова ще трябва да правиш и ти, едва ли ще
дойде готово с файловата система. Инак във FAT-а има къде да се маркират лошите клъстери,
но гаранции че няма да има новопоявили се няма кой да ти даде.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пон Фев 21, 2011 7:15 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
@tqi, потенциалните проблеми са ни известни...
Въпросът е първо доколко са фатални, т.е. доколко често писане/триене може да се използва ФАТ. И второ има ли читава алтернатива?
Aз така или иначе съм зачеркнал фат-а, ма поне да знам дали е било основателно 
|
| Пон Фев 21, 2011 7:27 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Аз FAT-а не мога да го зачеркна, щото такова ми е заданието - картата трябва да се чете на компютър без никакви допълнителни хардуер или софтуер.
Относно лошите сектори - аз по скоро имах предвид, че когато картата има лоши сектори, тя сама се грижи да ги маркира и предложи алтернатива (както е при дисковете). И в рекламите уж го прави добре. Така, че аз лошите сектори напрактика не би трябвало да ги виждам въобще. Въпроса е че това неминуемо бави достъпа. Отделно, че когато файловата система е фрагментирана, това допълнително може да забави достъпа.
А ако всеки път правя достъп до FAT, това съвсем ще утежни нещата... Затова се търсят варианти да оптимизирам нещата.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 8:04 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
Е дали ще намериш файлова система да ти кешва FAT-а и/или още работи не знам,
това наистина спокойно може да е във високото ниво. Можеш и ти да си го направиш
без особени зорове, разбира се - на ниското ниво.
Май картаджиите не специфицират максимално време за достъп - а че имат процесори
вътре и подменят умрели области в движение няма съмнение.
Но устройство, което да ти гарантира бездефектна "streaming" скорост много-много няма, и не би могло
да е много евтино. Достатъчно дълъг RAM буфер - може би дори десетки мегабайта - та да
има време да се справи някой с изненадите е реалното нещо, което можеш да направиш.
Стига теоретично най-ниската средна скорост да ти стига, разбира се.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Пон Фев 21, 2011 8:14 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|