реклама на сайте
подробности

 
 
> Кто еще хорошо помнит как устроен FAT?
Allregia
сообщение Oct 18 2016, 18:49
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Вопрос можео несколько глуповатый - на диске с ФАТ 2 файла, большой и маленький.
Если файлу поставить аттрибут "System", вроде так метятся неперемещаемые файлы?
Гарантирует ли это, что при перезаписи файла он запишется в те-же сектора?

Правда, если файл сначала удалят, а потом на его место запишут другой, то тогда он уже не попадет на те-же сектора?
А если я скорректирую бут-сектор, что так Root Entry=2, а в FAT вообще все незанятые кластеру пропишу как BAD, то если удалить только один файл, а потом писать снова, ему деваться некуда будет, только в те-же сектра где он был?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kabdim
сообщение Oct 21 2016, 09:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Кмк проблема "юзер блал устаревший файл фирмваре" проще и безошибочней решается интеграцией файла прошивки в ресурсы редактора настроек и подготовки итоговой прошивки, чем то решение которое вы выбрали. В этом случае редактор настроек всегда соответствует прошивке.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 21 2016, 12:07
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Раз это бутлоадер, то все эти танцы с бубнами и ФАТами - лишние. Самый правильный и простой путь: делаете устройство с вендор-специфик интерфейсом, без всяких профилей, через эндпоинты. А на ПК пишете приложение для заливки прошивок и конфигурирования. Ничего лишнего, юзеру удобнее и полный контроль его действий и прошивки и пр.
Для пользователя это в 100 раз удобнее чем все эти танцы с бубнами и костыли. Да и размер бутлоадера меньше будет.

PS: Да и вообще непонятно - как Вы во флешь контроллера пишете при работающем в это время USB-стеке? Вроде обычно во всех МК во время записи во флешь программ, код оттуда выполнять нельзя. Что за МК такой, позволяющий это? Или Вы код USB-стека в ОЗУ разместили?
Go to the top of the page
 
+Quote Post
Allregia
сообщение Oct 21 2016, 13:03
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 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 по этому адресу сложно?

Нет, просто не очень хочется переписывать программу подготовки (шифрации) образа фирмваре, чтобы она еще разбивала на блоки и вставляла номер блока. Она у нас написана двано и использоуется (с разными парамтерами) для всех устройств.
Я понимаю, что ее так модернизировать тоже не долго sm.gif, но тут "не долго", там "не долго" - в сумме накапливается много времени на все это. А как я уже упомянул - неправильные действия не приводят к фатальным последствиям, максимум - юзер потратит еще полторы лишних минуты, чтобы сделать все правильно.

P.S. Лучше подскажите еще такую вещь - куда сразу смотреть в доки по процам, чтобы понять нужен им или не нужен подтягивающий резистор на Д+? На то, может ли USB был и хостом и девайсом? или на OTG? Но у LPC1768 он OTG/Host/Device, а резистор требует.

Я вот с STM32F103 до этого дел не имел, а из тех что имел - он только LPC1768 нужен был.
В последние годы работал с SM32F407, L151, L467 - им всем он не нужен, так я и для F103 забыл его в пробный вариант платы поставить, пришлось допаивать.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 21 2016, 14:40
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Allregia @ Oct 21 2016, 16:03) *
Вот этого и хтелось бы избежать, поэтому и выбран был MSD, как не требующий драйверов и специальных программ.

Имхо - для юзера куда хуже пляски с бубнами с подключениями/отключениями устройства, отключение кеширования в диспетчере оборудования, какими-то манипуляциями да ещё и несколькими файлами да ещё в определённом порядке их.
И при этом ещё ничего и не гарантируется, что всё равно будет записано неправильно, так как никаких гарантий от винды по поводу порядка записи кластеров нету, хоть сколько Вы у себя отлаживайте и проверяйте, найдётся система где кластера будут писаться в неправильном порядке (хоть сколько это устройство не дёргай). И объясняйте потом юзеру что это он зря порылся в реестре и поставил какие-то опции, или поставил какую-то хитрую прогу кеширования взамен стандартной. В ответ Вас будут спрашивать: А почему другие программы работают нормально, а Ваша - нет?
Маты от "благодарных" юзеров Вам, как разработчику этого велосипеда, гарантированы. wink.gif
Куда проще - запустить файлик и нажать в нём одну кнопку "прошить". А уж про настройки и говорить нечего.

Цитата(Allregia @ Oct 21 2016, 16:03) *
У меня это работает уже несколько лет в паре устройств на LPC1768, конкретно сейчас это делается для STM32F103.

На LPC17xx стирание сектора флешь занимает вроде около 100мс. В это время все прерывания запрещаются. Ну возможно что USB-протокол (и MSD) устойчив к таким ситуациям....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 03:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016