|
Кто еще хорошо помнит как устроен FAT? |
|
|
|
Oct 18 2016, 18:49
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Вопрос можео несколько глуповатый - на диске с ФАТ 2 файла, большой и маленький. Если файлу поставить аттрибут "System", вроде так метятся неперемещаемые файлы? Гарантирует ли это, что при перезаписи файла он запишется в те-же сектора?
Правда, если файл сначала удалят, а потом на его место запишут другой, то тогда он уже не попадет на те-же сектора? А если я скорректирую бут-сектор, что так Root Entry=2, а в FAT вообще все незанятые кластеру пропишу как BAD, то если удалить только один файл, а потом писать снова, ему деваться некуда будет, только в те-же сектра где он был?
|
|
|
|
|
 |
Ответов
|
Oct 21 2016, 13:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(jcxz @ Oct 21 2016, 13:07)  Раз это бутлоадер, то все эти танцы с бубнами и ФАТами - лишние. Самый правильный и простой путь: делаете устройство с вендор-специфик интерфейсом, без всяких профилей, через эндпоинты. А на ПК пишете приложение для заливки Вот этого и хтелось бы избежать, поэтому и выбран был MSD, как не требующий драйверов и специальных программ. А программа для изменения настроек - так она одному из ста понадобится, тем более, что их мобно поменять с самого устройства (там есть TFT и кнопки+энкодер). Цитата PS: Да и вообще непонятно - как Вы во флешь контроллера пишете при работающем в это время USB-стеке? Вроде обычно во всех МК во время записи во флешь программ, код оттуда выполнять нельзя. Что за МК такой, позволяющий это? Или Вы код USB-стека в ОЗУ разместили? Нет. Вообще идея это на моя, я уже упоминал - AN-10866 от NXP для LPC1700. Лкгко гугглиться: https://www.google.co.il/url?sa=t&rct=j...Vbd7ac7IWCsjiIwУ меня это работает уже несколько лет в паре устройств на LPC1768, конкретно сейчас это делается для STM32F103. Там, где у меня стоит STM32F407 и STM32F767 я этого пока не делал, там бутлоадер, или тоже USB но в хосте, грузится с USB-флешки, или с SD-карточки. Цитата Прочесть 2-4 байта адреса из начала блока данных и записать остаток в FLASH по этому адресу сложно? Нет, просто не очень хочется переписывать программу подготовки (шифрации) образа фирмваре, чтобы она еще разбивала на блоки и вставляла номер блока. Она у нас написана двано и использоуется (с разными парамтерами) для всех устройств. Я понимаю, что ее так модернизировать тоже не долго  , но тут "не долго", там "не долго" - в сумме накапливается много времени на все это. А как я уже упомянул - неправильные действия не приводят к фатальным последствиям, максимум - юзер потратит еще полторы лишних минуты, чтобы сделать все правильно. P.S. Лучше подскажите еще такую вещь - куда сразу смотреть в доки по процам, чтобы понять нужен им или не нужен подтягивающий резистор на Д+? На то, может ли USB был и хостом и девайсом? или на OTG? Но у LPC1768 он OTG/Host/Device, а резистор требует. Я вот с STM32F103 до этого дел не имел, а из тех что имел - он только LPC1768 нужен был. В последние годы работал с SM32F407, L151, L467 - им всем он не нужен, так я и для F103 забыл его в пробный вариант платы поставить, пришлось допаивать.
|
|
|
|
|
Oct 21 2016, 14:40
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Allregia @ Oct 21 2016, 16:03)  Вот этого и хтелось бы избежать, поэтому и выбран был MSD, как не требующий драйверов и специальных программ. Имхо - для юзера куда хуже пляски с бубнами с подключениями/отключениями устройства, отключение кеширования в диспетчере оборудования, какими-то манипуляциями да ещё и несколькими файлами да ещё в определённом порядке их. И при этом ещё ничего и не гарантируется, что всё равно будет записано неправильно, так как никаких гарантий от винды по поводу порядка записи кластеров нету, хоть сколько Вы у себя отлаживайте и проверяйте, найдётся система где кластера будут писаться в неправильном порядке (хоть сколько это устройство не дёргай). И объясняйте потом юзеру что это он зря порылся в реестре и поставил какие-то опции, или поставил какую-то хитрую прогу кеширования взамен стандартной. В ответ Вас будут спрашивать: А почему другие программы работают нормально, а Ваша - нет? Маты от "благодарных" юзеров Вам, как разработчику этого велосипеда, гарантированы.  Куда проще - запустить файлик и нажать в нём одну кнопку "прошить". А уж про настройки и говорить нечего. Цитата(Allregia @ Oct 21 2016, 16:03)  У меня это работает уже несколько лет в паре устройств на LPC1768, конкретно сейчас это делается для STM32F103. На LPC17xx стирание сектора флешь занимает вроде около 100мс. В это время все прерывания запрещаются. Ну возможно что USB-протокол (и MSD) устойчив к таким ситуациям....
|
|
|
|
Сообщений в этой теме
Allregia Кто еще хорошо помнит как устроен FAT? Oct 18 2016, 18:49 AlexRayne Цитата(Allregia @ Oct 18 2016, 21:49) Воп... Oct 19 2016, 06:54 Allregia Цитата(AlexRayne @ Oct 19 2016, 07:54) Да... Oct 19 2016, 18:30  Ruslan1 Цитата(Allregia @ Oct 19 2016, 20:30) Я н... Oct 19 2016, 19:04  HardEgor Цитата(Allregia @ Oct 20 2016, 01:30) Име... Oct 20 2016, 13:03 adnega Цитата(Allregia @ Oct 18 2016, 21:49) Гар... Oct 19 2016, 07:55 CrimsonPig Цитата(Allregia @ Oct 18 2016, 19:49) Воп... Oct 19 2016, 08:09 megajohn Цитата(Allregia @ Oct 18 2016, 21:49) А е... Oct 19 2016, 09:32 HardEgor Цитата(Allregia @ Oct 19 2016, 01:49) А е... Oct 19 2016, 10:22 jcxz Цитата(HardEgor @ Oct 19 2016, 13:22) Про... Oct 19 2016, 15:01 TSerg Делается контейнер, по примеру TrueCrypt и размеро... Oct 19 2016, 15:41 Allregia Цитатаили делайте все правильно.
"Правильно... Oct 19 2016, 21:20 adnega Цитата(Allregia @ Oct 20 2016, 00:20) Но ... Oct 19 2016, 21:35  Allregia Цитата(adnega @ Oct 19 2016, 22:35) Зачем... Oct 19 2016, 23:18   adnega Цитата(Allregia @ Oct 20 2016, 02:18) В о... Oct 20 2016, 10:36   jcxz Цитата(Allregia @ Oct 20 2016, 02:18) Но ... Oct 20 2016, 10:46 Ruslan1 Allregia, извините, пожалуйста, но я просто не мог... Oct 21 2016, 07:02 Allregia ЦитатаOk. Сделайте два раздела - один большой и од... Oct 20 2016, 14:16 sigmaN Я не понял, т.е. все эти танцы с бубном нужны искл... Oct 20 2016, 14:52 Allregia Цитата(sigmaN @ Oct 20 2016, 15:52) Я не ... Oct 20 2016, 18:27  YAM Цитата(Allregia @ Oct 20 2016, 21:27) Я у... Oct 20 2016, 18:38   Allregia Цитата(YAM @ Oct 20 2016, 19:38) При чем ... Oct 20 2016, 19:09    YAM Цитата(Allregia @ Oct 20 2016, 22:09) Это... Oct 21 2016, 14:46     Allregia Цитата(YAM @ Oct 21 2016, 15:46) Да.
У ме... Oct 21 2016, 15:23 YAM В таких случаях я делаю просто 2 диска с необходим... Oct 20 2016, 16:34 sigmaN ЦитатаВидимо да, Вы не поняли. А какие именно... Oct 20 2016, 20:01 Allregia Цитата(sigmaN @ Oct 20 2016, 21:01) Имела... Oct 20 2016, 20:41  CrimsonPig Цитата(Allregia @ Oct 20 2016, 21:41) Да ... Oct 20 2016, 21:20   Allregia Цитата(CrimsonPig @ Oct 20 2016, 22:20) Н... Oct 20 2016, 22:42 controller_m30 Я недавно делал USB MSD с программной генерацией: ... Oct 20 2016, 23:01 sigmaN ЦитатаДа никакая это не "свысокоуровневая зад... Oct 21 2016, 07:00 sigmaN ЦитатаНо опять же не понимаю даже зачем требование... Oct 21 2016, 07:12 gerber Если хотите внутри устройства сами управлять распо... Oct 21 2016, 07:27 Allregia Цитатанедавно делал USB MSD с программной генераци... Oct 21 2016, 08:08 Kabdim Не проще, добавлять параметры суфиксом к прошивке ... Oct 21 2016, 08:11 Allregia ЦитатаНе проще, добавлять параметры суфиксом к про... Oct 21 2016, 08:15  Kabdim Цитата(Allregia @ Oct 21 2016, 11:15) Так... Oct 21 2016, 09:23 sigmaN Media Transfer Protocol в этом случае выглядит оче... Oct 21 2016, 08:48 Allregia ЦитатаНа много красивее чем предложенный мной FatF... Oct 21 2016, 09:31 CrimsonPig Цитата(Allregia @ Oct 21 2016, 10:31) Fat... Oct 21 2016, 09:46  Allregia Цитата(CrimsonPig @ Oct 21 2016, 10:46) Н... Oct 21 2016, 10:35   CrimsonPig Цитата(Allregia @ Oct 21 2016, 11:35) Вы ... Oct 21 2016, 11:03 controller_m30 По поводу защиты от удаления, но не перезаписи.
Уд... Oct 21 2016, 10:07 gerber Ещё можно делать ремаппинг на лету - пусть "В... Oct 21 2016, 10:55 Allregia Цитата(gerber @ Oct 21 2016, 11:55) Ещё м... Oct 21 2016, 11:36 XVR 2 ТС - ваша задача в общем случае не решается вооб... Oct 21 2016, 12:42 Allregia YAM, щiро дякую!
C двумя LUN получилось велик... Oct 22 2016, 08:32 YAM Цитата(Allregia @ Oct 22 2016, 11:32) YAM... Oct 22 2016, 14:09 Allregia Интересно - откуда берется ограничение на мин. раз... Oct 22 2016, 15:10 YAM Цитата(Allregia @ Oct 22 2016, 18:10) Инт... Oct 22 2016, 15:45 Allregia Странно, я перебрал длину диска от 4К до 8К, т.е о... Oct 22 2016, 17:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|