Jump to content

    

Edit2007

Участник
  • Content Count

    368
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Edit2007

  • Rank
    Местный
  1. Error frames на шине

    Фильтры однозначно не причем. Возможно, на двух платах есть разница в скорости. CAN для сбоя достаточно бывает 1% расхождения. Тем более, если с одним устройством нормальный обмен. Вариант найти виновника - контроль за счетчиками ошибок. Очевидно, что у одной платы это будут ошибки передачи, у другой ошибки приема. Если бит ошибки формирует Kvaser - я бы однозначно смотрел в сторону подстройки скорости (железка за 500 евро у меня вызывает больше доверия, чем отлаживаемое ПО). Можно для чистоты эксперимента и Kvaser в Silent Mode перевести(исключить формирование бита ошибки с его стороны).
  2. Ищу описание функций jlink.dll

    Чем JlinkCmd не устраивает? Консольная утилита с теми же командами (Step, GetMem и проч). При остановке выводит содержимое регистров общего назначения. Если хотите привязаться к проекту - то оно как-то по другому делается (я так думаю).
  3. сам недавно начал интересоваться. вроде неплохо написано об устройстве НС (общие положения:нейроны, передаточные функции и принципы построения сети) в этом сборнике статей, для меня (который совсем с нуля этим делом интересуется) вполне прилично разжевано. нейросети.zip
  4. Сам начал (из любопытства) смотреть в сторону нейросетей. Хотел бы предложить в качестве примера модель поведения бабочки на стр.14 (в зависимости от освещения и температуры бабочка открывает и закрывает крылья), которая описана в книге Беркинблит М.Б. "Нейронные сети" 1993 г. Эту модель можно адаптировать под управление освещением (включить свет = равно открыть крылья, например) . Сама книга является пособием по биологии и нейрофизиологии, но собержит много примеров нейронных сетей, в основном отвечающих за поведение животных (насекомых). PS: качество djvu так себе, но избавит от необходимости искать книгу в сети (для быстого ознакомления). Беркинблит М.Б. Нейронные сети 1993.djvu
  5. Проверьте в файле startup.a51 для верхнего приложения сегмент, определяющий расположение векторов прерывания. В файле по умолчанию (для загрузчика) CSEG AT 0 ?C_STARTUP: LJMP STARTUP1 В файле для приложения CSEG AT 0x2000 ?C_STARTUP: LJMP STARTUP1 где 0x2000 это величина смещения. Подробности в описании CSEG AT (кодовый сегмент разместить по жесткому адресу). Возможно именно это переопределяет для линкера размещение данных. При сборке приложения в выходном файле (hex-bin) не должно быть ссылок на область загрузчика.
  6. Я использовал это для приложения с загрузчиком на Silabs-ах. С 0-го адреса был загрузчик,но он работал без прерываний. На всех векторах стояла заглушка JMP $+0x2000 Приложение располагалось по адресу 0x2000 (как раз этой опцией + вкладка линкера убрать галку From Target Dialog и выставить CodeRange 0x2000 - и до конца флеши). Таким образом приложение становится независимо от загрузчика. В сухом остатке - Keil может разместить таблицу векторов по этому адресу, но физически прерывания будут срабатывать по фиксированным адресам. Переход с фиксированного адреса на перенесеный нужно обеспечивать ручками.
  7. У меня с кейлом были следующие проблемы. Подключал через инклюд локальный файл (из папки проекта), с целью как раз править HSE_VALUE. Но кейл при компиляции находил такой же файл в своих системных папках первым и использовал его. Лечилось перетасовкой путей к инклюдам. Но это было в 4-м Кейле. (Я на 5-й так и не перешел).
  8. Наверное меня не так поняли. Вы из строкового HEX-файла поучаете бинарный образ прошивки. Далее этот образ разбиваете по страницам (секторам) и передаете в МК для записи. Все упрощается на порядок.
  9. Лучше перед передачей данных в МК сделать преобразование HEX->BIN.
  10. Посмотрите в справке µVision User's Guide->Debug Commands или µVision User's Guide->Debug Functions в поле Command можно менять отдельные переменные (поля структуры) или вызовом собственной отладочной функции изменить всю структуру
  11. Извиняюсь за OFF-TOP, но если от суда проблемы за схему - это жестко. А уж STM c 4-мя блоГами - просто фанат соцсетей.
  12. Если с Keil все работает (прошивается), а из другой среды нет (не шьется, но есть отладка) - возможно, что нет доступа к алгоритмам прошивки камня. В Keil соответствующие *.flm файлы лежат в отдельной папке. Эти *.flm файлы можно использовать и для JLINK. Порядок подключения (добавления в базу) должен быть описан в доках на JLINK.
  13. BUS OFF чаще всего из-за несовпадения скорости (например внутренний генератор неточный). Пересброс СAN обычно делается через его повторную инициализацию (чтоб весь МК не сбрасывать). Если в параметрах уверены - достаточно бывает установить режим инициализации СAN сбросить флаги ошибок, затем вернуться в рабочий режим. PS - CAN использую не от STM.
  14. Посылка по CAN в STM32F3

    :wacko: Почитайте спецификацию на CAN?хотя бы в русском переводе.
  15. Непонятный рестарт программы

    склоняюсь к версии "дикого" указателя (неверное значение адреса или размера блока для копирования). Уж больно симптомы к этому располагают - ОЗУ зачищается (частично), а код не перезапускается (нет начального тестирования по словам ТС -значит сработал не RESET - и WDT с питанием скорее всего ни при чем). Возможно, неверный указатель на функцию забрасывает исполнение в случайное место.