Jump to content

    

Edit2007

Участник
  • Content Count

    373
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Edit2007

  • Rank
    Местный
  1. Насколько помню опят работ с MCS-51, данное окно ( View->Serial Windows ->UART) предназначалось для стыковки симулятора с COM-портом. То есть, программа крутится в симуляторе, и при обращении к регистру данных УАРТ писала (или читала) данные c COM-ПК. Настройка была через debug-команду assign. Работает ли эта фишка под ARM - не знаю, поскольку у всех производителей порты разные. В 51-й был фиксированный регистр данных - следовательно проще реализовать.
  2. Ну если вы только между "своими некоторыми контроллерами" связь держите, то под вашу ответственность можно. А если кто-то со стороны в вашей сети присутствует, или вы в чужую сеть входите - то лучше не рисковать. И c CAN FD могут возникнуть проблемы. Там это поле по полной используется.
  3. может порядок инициализации?? Сперва таймер и он срабатывает, потом что-то еще, потом порты - поэтому затянуто. Возможно, что это аппаратное - чтобы возникло прерывание - нужно что-то включить, а это самое включение происходит с задержкой.
  4. только при условии что оба числа беззнаковые или одного знака ( -3 * 5 = -15; -15<-3 <5)
  5. В Keil этого нет, по крайней мере мне не удалось получить аналогичные данные ((  Вместе с hex-файлом создается html-файл проекта, в котором указан максимальный размер стека (без учета косвенных вызовов и прерываний) и размер стека для каждой функции (в том числе и дерево вызовов)
  6. Фильтры однозначно не причем. Возможно, на двух платах есть разница в скорости. CAN для сбоя достаточно бывает 1% расхождения. Тем более, если с одним устройством нормальный обмен. Вариант найти виновника - контроль за счетчиками ошибок. Очевидно, что у одной платы это будут ошибки передачи, у другой ошибки приема. Если бит ошибки формирует Kvaser - я бы однозначно смотрел в сторону подстройки скорости (железка за 500 евро у меня вызывает больше доверия, чем отлаживаемое ПО). Можно для чистоты эксперимента и Kvaser в Silent Mode перевести(исключить формирование бита ошибки с его стороны).
  7. Чем JlinkCmd не устраивает? Консольная утилита с теми же командами (Step, GetMem и проч). При остановке выводит содержимое регистров общего назначения. Если хотите привязаться к проекту - то оно как-то по другому делается (я так думаю).
  8. сам недавно начал интересоваться. вроде неплохо написано об устройстве НС (общие положения:нейроны, передаточные функции и принципы построения сети) в этом сборнике статей, для меня (который совсем с нуля этим делом интересуется) вполне прилично разжевано. нейросети.zip
  9. Сам начал (из любопытства) смотреть в сторону нейросетей. Хотел бы предложить в качестве примера модель поведения бабочки на стр.14 (в зависимости от освещения и температуры бабочка открывает и закрывает крылья), которая описана в книге Беркинблит М.Б. "Нейронные сети" 1993 г. Эту модель можно адаптировать под управление освещением (включить свет = равно открыть крылья, например) . Сама книга является пособием по биологии и нейрофизиологии, но собержит много примеров нейронных сетей, в основном отвечающих за поведение животных (насекомых). PS: качество djvu так себе, но избавит от необходимости искать книгу в сети (для быстого ознакомления). Беркинблит М.Б. Нейронные сети 1993.djvu
  10. Проверьте в файле startup.a51 для верхнего приложения сегмент, определяющий расположение векторов прерывания. В файле по умолчанию (для загрузчика) CSEG AT 0 ?C_STARTUP: LJMP STARTUP1 В файле для приложения CSEG AT 0x2000 ?C_STARTUP: LJMP STARTUP1 где 0x2000 это величина смещения. Подробности в описании CSEG AT (кодовый сегмент разместить по жесткому адресу). Возможно именно это переопределяет для линкера размещение данных. При сборке приложения в выходном файле (hex-bin) не должно быть ссылок на область загрузчика.
  11. Я использовал это для приложения с загрузчиком на Silabs-ах. С 0-го адреса был загрузчик,но он работал без прерываний. На всех векторах стояла заглушка JMP $+0x2000 Приложение располагалось по адресу 0x2000 (как раз этой опцией + вкладка линкера убрать галку From Target Dialog и выставить CodeRange 0x2000 - и до конца флеши). Таким образом приложение становится независимо от загрузчика. В сухом остатке - Keil может разместить таблицу векторов по этому адресу, но физически прерывания будут срабатывать по фиксированным адресам. Переход с фиксированного адреса на перенесеный нужно обеспечивать ручками.
  12. У меня с кейлом были следующие проблемы. Подключал через инклюд локальный файл (из папки проекта), с целью как раз править HSE_VALUE. Но кейл при компиляции находил такой же файл в своих системных папках первым и использовал его. Лечилось перетасовкой путей к инклюдам. Но это было в 4-м Кейле. (Я на 5-й так и не перешел).
  13. Наверное меня не так поняли. Вы из строкового HEX-файла поучаете бинарный образ прошивки. Далее этот образ разбиваете по страницам (секторам) и передаете в МК для записи. Все упрощается на порядок.
  14. Лучше перед передачей данных в МК сделать преобразование HEX->BIN.
  15. Посмотрите в справке µVision User's Guide->Debug Commands или µVision User's Guide->Debug Functions в поле Command можно менять отдельные переменные (поля структуры) или вызовом собственной отладочной функции изменить всю структуру