|
|
  |
Нужна помощ по uC/FS, файловая система |
|
|
|
Oct 14 2005, 11:13
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Есть uC/FS, но без драйвера ММС, не представляю как туда свой драйвер прилепить. Подскажите, кто делал, плиз...
|
|
|
|
|
Oct 26 2005, 13:28
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(ubobrov @ Oct 14 2005, 14:13) Есть uC/FS, но без драйвера ММС, не представляю как туда свой драйвер прилепить. Подскажите, кто делал, плиз... Всё, прикрутил, но использовать небуду, тяжёлая она и тормознутая, FlashFileSD быстрее работает, хоть и криво!
|
|
|
|
|
Oct 28 2005, 05:05
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(xoms @ Oct 28 2005, 07:49) А в чём кривизна собственно? У меня как-то работает и ничего плохого пока. Он привинчен к uC/OS и одновременно может записываться 2 файла: один длинный, а другой короткий. Тот процесс, что пишет короткие файлы несколько раз прерывает процесс, пишущий длинные файы и у файлов получаются общие кластеры. Винда может и не открыть такие файлы, а может и открыть, от чего это зависит я не понял. Если даже она открывает все файлы без ошибок, то CHKDSK всёравно находит общие кластеры и предлагает исправить, что приводит к потере информации.
|
|
|
|
|
Oct 28 2005, 06:29
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(xoms @ Oct 28 2005, 08:33) Да не, я про кривизну FlashFileSD от PRLLC, она к OS не привязана вовсе. Вот в том то и кривизна, что допускает запись файлов с общими кластерами, если одновременно открыто 2 и более файла. По одному файлу FlashFileSD работает превосходно, никаких потологий!
|
|
|
|
|
Oct 28 2005, 07:30
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(xoms @ Oct 28 2005, 09:51) Да пожалуй ты прав... Придётся закрывать, потом открывать.... Можно попробовать запрет записи одного файла, пока не обновятся кластеры другого.
|
|
|
|
|
Oct 28 2005, 11:11
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(xoms @ Oct 28 2005, 13:17) Гм.. вобщем то кластеры обновляются после выхода из ну например fputc. И если fputc защитить от переключения задач, то писать можно одновременно хоть в несколько файлов. Неее, надо разрешить переключение задач тогда, когда обновлены кластеры. А кластеры обновляются когда записалось SecPerClus секторов. Вот когда они обновились, тогда и можно разрешить другой задаче писать в файл, и она начнёт писать в новый кластер. А её можно прервать точно таким-же способом.
|
|
|
|
|
Oct 28 2005, 12:03
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
Цитата(xoms @ Oct 28 2005, 14:33) А кластеры обновляются что-ли при переходе на новый кластер или как раз при закрытии файла. Запретить запись в новый файл нельзя, если идёт потоковая запись - буфер негде хранить например. И при переходе на новый кластер и при закрытии. А если нельзя запретить запись, то сделать этот процесс более приоритетным по отношению к другим, которым тоже надо писать в карту и не прерывать его до конца записи. В моём случае наоборот: более преоритетный короткий процесс прерывает несколько раз менее преоритетный в момент записи.
|
|
|
|
|
Oct 28 2005, 12:42
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 15-08-05
Пользователь №: 7 636

|
И вобще, если при каждом прерывании процесса записи принудительно записывать файл - fflush(pfile), то можно его и не закрывать, если предполагается продолжать запись в этот-же файл после прерывания, а по окончании закрыть. В этом случае ошибок винда не обнаруживает.
Да, зря я грешил на FlashFileSD, зря...!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|