Перейти к содержанию
    

Отладка 1986ВЕ81Т

Коллеги, всем привет.

 

Осваиваю 1986ВЕ81Т. Это отечественный Cortex-m4 для космоса без Флеш/ПЗУ, у которого есть специальное ОЗУ программ.

Написал в 5ом Кейле небольшой проект и пытаюсь отлаживать на отладочной плате через Ulink2. Для этого использую flash programming algorithm из FLM-файла для СОЗУ 1986ВЕ81Т, скачанного с форума Миландра.

 

Ulink и МК Кейл видит, всё как-будто хорошо, но частенько при попытке залить программу в СОЗУ (область начинается с 0х1000000) и запустить Debug-сессию, Keil сначала призадумывается и немного погодя выдает ошибку. Точный текст сообщения смогу сказать завтра, но речь про превышение таймаута. При этом изредка загрузка и debug проходят нормально.

 

МК на отладочной плате находится в кроватке, я менял МК на другой экземпляр, пробовал разные загрузочные режимы - ничего не изменилось. Кроме того, есть другая отладочная плата с впаянным процессором - там тоже самое.

Я, разумеется, понимаю, что по интернету диагноз не поставишь, нужно смотреть схему отладочной платы, итд итп, и этим я буду заниматься.

 

Сейчас же мне важен чужой опыт - кто-нибудь сталкивался с подобной проблемой? И если да, то каково было решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас же мне важен чужой опыт - кто-нибудь сталкивался с подобной проблемой? И если да, то каково было решение?
Была подобная проблема на совсем другом проце (уже не помню, то ли STM32 то ли вообще AT91SAM7) и совсем в другой среде (gdb+openocd). Суть проблемы была в следующем - в программе настраивалась пересылка данных из АЦП в ОЗУ через ПДП. В процессе заливки свежей программы отладчик использовал эту же область ОЗУ то ли под буфер для записываемых во флешь данных, то ли для кода самого загрузчика. Поскольку АЦП и ПДП продолжали "молотить" - то ли записываемые данные затирались и вылетала ошибка при проверке записанного, то ли сам загрузчик затирался и в процессе его выполнения процессор улетал в исключение, а отладчик не мог дождаться его попадания на точку останова в конце загрузчика. Вылечил принудительным выключением ПДП в скрипте отладчика перед началом загрузки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была подобная проблема на совсем другом проце (уже не помню, то ли STM32 то ли вообще AT91SAM7) и совсем в другой среде (gdb+openocd). Суть проблемы была в следующем - в программе настраивалась пересылка данных из АЦП в ОЗУ через ПДП. В процессе заливки свежей программы отладчик использовал эту же область ОЗУ то ли под буфер для записываемых во флешь данных, то ли для кода самого загрузчика. Поскольку АЦП и ПДП продолжали "молотить" - то ли записываемые данные затирались и вылетала ошибка при проверке записанного, то ли сам загрузчик затирался и в процессе его выполнения процессор улетал в исключение, а отладчик не мог дождаться его попадания на точку останова в конце загрузчика. Вылечил принудительным выключением ПДП в скрипте отладчика перед началом загрузки.

 

Сергей, благодарю за ответ. Только, боюсь, у меня иной случай. При включении питания в ОЗУ нет программы и периферия бездействует - в поисках источника проблемы я много раз ресетил и обесточивал МК прежде чем начать debug. Хотя, в буте отечественного МК, конечно, может сидеть что-то интересное

 

Я включаю питание. Пользовательский код не загружен. Контроллер в одном из загрузочных режимов. Инициирую debug... Когда все проходит штатно, сразу начинают бежать индикаторы прогресса и загрузка+верификация длятся секунд 5-10. Но если возникает ошибка, то сначала возникает пауза, а затем через пару секунд вылетает сообщение об истечении таймаута.

Изменено пользователем Konrad

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей, благодарю за ответ. Только, боюсь, у меня иной случай. При включении питания в ОЗУ нет программы и периферия бездействует - в поисках источника проблемы я много раз ресетил и обесточивал МК прежде чем начать debug. Хотя, в буте отечественного МК, конечно, может сидеть что-то интересное

 

Я включаю питание. Пользовательский код не загружен. Контроллер в одном из загрузочных режимов. Инициирую debug... Когда все проходит штатно, сразу начинают бежать индикаторы прогресса и загрузка+верификация длятся секунд 5-10. Но если возникает ошибка, то сначала возникает пауза, а затем через пару секунд вылетает сообщение об истечении таймаута.

 

Я думаю на форуме Миландра и в его службе тех поддержки вы быстрее найдете ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...