![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| LeonidPr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Доброго всем времени суток. Столкнулся со следующей проблемой, возможно вы предложите варианты её решения.
Есть девайс на STM32F107RC. Реализован Mass storage device на базе примеров от ST. Физическое хранилище - внутренняя флэш контроллера (мне много не надо, 160КБ достаточно). Файловая система FAT16. Внутренняя программа контроллера непрерывно проверяет наличие в хранилище некоторого файла, если он там есть - читает его в ОЗУ и обрабатывает. Для работы с FAT16 пользуюсь FatFS. Так вот, проблема в следующем: когда я кидаю файл, именно во время записи прошивка глючит, иногда улетает в исключение HardFault. Такого не наблюдается ни когда файл уже есть (идет нормальная его обработка), ни когда его нет (на дисплее сообщение об отсутствии файла). Я так понимаю причина в том, что когда винда его пишет, то сначала создается запись в каталоге. Если в это время я пытаюсь проверить его наличие, видимо FatFS сообщает что все OK! Ну и моя прошивка соответственно пытается этот файл считать, но его фактически нет в этот момент. Вот такая проблемка. Мой вариант решения - тормозить обработку на время записи файла. Но, скорее всего в устройстве не будет кнопок. Тогда выходит, нужна внешняя прога, которая будет по USB слать запрос на стоп/старт. Может у кого-то есть другие варианты? Собственно, я хотел узнать, можно ли как-то понять, что файловая операция завершена (т.е. виндовая прога, выполнявшая копирование вызвала CloseHandle)? А, есть еще один вариант - записывать в хранилище некоторый файл-флаг. Если он есть - обработка работает. Но это - не очень удобно. --------------------
pkunzip.zip |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
||||
|
||||
| LeonidPr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Согласен конечно. Только вот загвоздка. USB Trace показывает что хост периодически шлет девайсу SCSI команду Test Unit Ready, проверяя готовность устройства. Посмотрю на работе завтра насколько часто это происходит.
--------------------
pkunzip.zip |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
||||
|
||||
| LeonidPr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Ну да, что-то туплю. И то верно. Спасибо, что подбросили идейку. Тему закрываю.
--------------------
pkunzip.zip |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |