Jump to content

    

Intel4004

Участник
  • Content Count

    70
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Intel4004

  • Rank
    Участник
  • Birthday 11/06/1973

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2125 profile views
  1. У меня снабженцы не смогли найти у нормальных поставщиков флешки типа AT49F и купили партию судя по всему в каком-то музее. 1998 год выпуска. Паяются, правда, хреново, но работают как новые.
  2. Недавно практически такую-же тему создавал. В результате пришел к тому, что написал обертку вокруг кейловских MDK USB и MDK FS. Работает так: если нужен доступ к флешке, которая в данный момент используется как USB MSC - то ждем 5 сек с последнего обращения по MSC (на самом деле винда сбрасывает флаг "смонтировано" через полторы секунды после последней записи, т.ч. 5 - для пущей надежности), ставим MSC в паузу (переключаем владельца на FS), читаем/пишем на флешку. После этого если только читали - переключаем владельца назад на MSC. Если писали - делаем USB Disconnect/Connect.
  3. Сделал. Стресстесты еще недельку погоняю, но вроде работает, винда больше не возмущается. Но если у кого-нибудь через сколь угодно долгое время возникнет идея как решить эту проблему красиво, без костылей - приму эту идею с благодарностью.
  4. Пока добавлю задержку перед дисконнектом, пока не пройдет секунда с последней записи по MSC. Тоже костыль, тоже второго уровня, но по крайней мере может спасти от воплей современной винды "устройство было извлечено некорректно, надо проверить". Только вот еще регулярно встречаются древние виндовс (2000, xp) в которых, ЕМНИП, флешка кешируется...
  5. В смысле после принудительного дисконнекта сбросить на диске флаг "не размонтировано" (или как он там называется)? Так ведь это тоже костыль. Причем второго уровня, поверх первого. Винда на этот флаг хотя-бы чекдиск запускает...
  6. Исходные данные: Есть устройство, имеющее на борту флешку и USB. Естессно эта флешка отдается наружу как USB mass storage. Все прекрасно работает, но только до тех пока пока устройству не захочется что-то записать на эту флешку в тот момент, когда оно(устройство) подключено к компьютеру по USB. Пока что я реализовал костыль: принудительно вырубаю USB перед записью во флешку. В результате регулярно при следующем подключении винда мне сообщает, что устройство было извлечено некорректно. Так вот, вопрос: есть ли какая-нибудь возможность со стороны USB устройства сообщить хосту, что устройство хочет отключиться? Чтобы винда сбросила кеш и корректно размонтировала диск? Я понимаю, что в рамках MSC это невозможно. Но может быть есть какие-нибудь другие способы? Если что - свободных эндпоинтов на устройстве хватает, реализовать еще один USB-класс - не проблема.
  7. Ну, можно в свойствах проекта, на вкладке Target отрезать от IRAM1 нужное количество памяти, вписать его в IRAM2, и поставить на IRAM2 галочку NoInit. Смысл этого действия тот-же, но не требует редактирования scatter.
  8. Буду думать. PS. 24 байта (непонятно(0), указатель на свободное место, указатель на heap, указатель на мутекс, непонятно(0), свободное место(0)).
  9. Тогда второй вопрос: а как к этому отнесется Keil RTX ?
  10. Я бы с удовольствием. Но сторонние библиотеки (JSON например) эту кучу пользуют со страшной силой. И компилять из одного комплекта исходников пару десятков разных бинарников? И иметь геморрой с производством, которое все перепутает и будет, как вы говорите, сношать мне мозги что ничего не работает? Лучше я отмучаюсь один раз, написав универсальную прошивку, чем пару раз в неделю заново объяснять что и в каком случае из этого зоопарка надо прошивать.
  11. Этот вариант я знаю. Проблема в том, что конфигурацию платы я могу прочитать только после запуска RTOS.
  12. Поясняю: на плате могут распаять SRAM разного размера, могут вообще не распаивать. Конфигурация платы будет прошита в EEPROMке. В зависимости от конфигурации настраиваю heap (адрес/размер), и в зависимости от размера блокирую некоторые функции программы, чтобы не выжрать весь heap.
  13. Проблема в том, что на этапе компиляции я еще не знаю какие именно микросхемы SRAM будут распаяны на плате. Достаточно ли для этого по новому адресу прописать пустую HEAP-структуру, и подменить указатель на heap по адресу __user_libspace()+8 ? Или ссылки на heap еще где-то присутствуют?
  14. Я же UDP отлаживал, соответственно у меня открыто окно с регистрами UDP (Peripherals->System Viewer->UDP). И галочка "periodic update" стоит. Вот он и портил FIFO. Достаточно убрать галочку или закрыть окошко с регистрами - все нормально.