Полная версия этой страницы:
Нужна помощ по uC/FS
ubobrov
Oct 14 2005, 11:13
Есть uC/FS, но без драйвера ММС, не представляю как туда свой драйвер прилепить. Подскажите, кто делал, плиз...
ubobrov
Oct 26 2005, 13:28
Цитата(ubobrov @ Oct 14 2005, 14:13)
Есть uC/FS, но без драйвера ММС, не представляю как туда свой драйвер прилепить. Подскажите, кто делал, плиз...
Всё, прикрутил, но использовать небуду, тяжёлая она и тормознутая, FlashFileSD быстрее работает, хоть и криво!
А в чём кривизна собственно?
У меня как-то работает и ничего плохого пока.
ubobrov
Oct 28 2005, 05:05
Цитата(xoms @ Oct 28 2005, 07:49)
А в чём кривизна собственно?
У меня как-то работает и ничего плохого пока.
Он привинчен к uC/OS и одновременно может записываться 2 файла: один длинный, а другой короткий. Тот процесс, что пишет короткие файлы несколько раз прерывает процесс, пишущий длинные файы и у файлов получаются общие кластеры. Винда может и не открыть такие файлы, а может и открыть, от чего это зависит я не понял. Если даже она открывает все файлы без ошибок, то CHKDSK всёравно находит общие кластеры и предлагает исправить, что приводит к потере информации.
Да не, я про кривизну FlashFileSD от PRLLC, она к OS не привязана вовсе.
ubobrov
Oct 28 2005, 06:29
Цитата(xoms @ Oct 28 2005, 08:33)
Да не, я про кривизну FlashFileSD от PRLLC, она к OS не привязана вовсе.
Вот в том то и кривизна, что допускает запись файлов с общими кластерами, если одновременно открыто 2 и более файла. По одному файлу FlashFileSD работает превосходно, никаких потологий!
Да пожалуй ты прав...
Придётся закрывать, потом открывать....
ubobrov
Oct 28 2005, 07:30
Цитата(xoms @ Oct 28 2005, 09:51)
Да пожалуй ты прав...
Придётся закрывать, потом открывать....
Можно попробовать запрет записи одного файла, пока не обновятся кластеры другого.
Гм.. вобщем то кластеры обновляются после выхода из ну например
fputc. И если fputc защитить от переключения задач, то писать можно одновременно хоть в несколько файлов.
ubobrov
Oct 28 2005, 11:11
Цитата(xoms @ Oct 28 2005, 13:17)
Гм.. вобщем то кластеры обновляются после выхода из ну например
fputc. И если fputc защитить от переключения задач, то писать можно одновременно хоть в несколько файлов.
Неее, надо разрешить переключение задач тогда, когда обновлены кластеры. А кластеры обновляются когда записалось SecPerClus секторов. Вот когда они обновились, тогда и можно разрешить другой задаче писать в файл, и она начнёт писать в новый кластер. А её можно прервать точно таким-же способом.
А кластеры обновляются что-ли при переходе на новый кластер или как раз при закрытии файла.
Запретить запись в новый файл нельзя, если идёт потоковая запись - буфер негде хранить например.
ubobrov
Oct 28 2005, 12:03
Цитата(xoms @ Oct 28 2005, 14:33)
А кластеры обновляются что-ли при переходе на новый кластер или как раз при закрытии файла.
Запретить запись в новый файл нельзя, если идёт потоковая запись - буфер негде хранить например.
И при переходе на новый кластер и при закрытии. А если нельзя запретить запись, то сделать этот процесс более приоритетным по отношению к другим, которым тоже надо писать в карту и не прерывать его до конца записи.
В моём случае наоборот: более преоритетный короткий процесс прерывает несколько раз менее преоритетный в момент записи.
ubobrov
Oct 28 2005, 12:42
И вобще, если при каждом прерывании процесса записи принудительно записывать файл - fflush(pfile), то можно его и не закрывать, если предполагается продолжать запись в этот-же файл после прерывания, а по окончании закрыть.
В этом случае ошибок винда не обнаруживает.
Да, зря я грешил на FlashFileSD, зря...!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.