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

Странное поведение J-Link при прошивке EFM32

Доброго всем времени суток!

Возникла необходимость запустить проект на EFM32G222F128, довольно интересный контроллер с хорошей аналоговой частью, но столкнулся с очень странной проблемой. Я пользуюсь EmBitz по причине очень простого и эффективного интерфейса (жаль, что автор не развивает проект, конечно), начинал с разных STM32, были и M3, и M4, и M7, разбирался с nrf51822 от Нордика, недавно реализовывал проект на ATSAMC21, то есть, в принципе, работал с широким спектром контроллеров в связке с китайским J-Link OB, и всегда все получалось. Из претензий ну разве что баги EmBitz при работе с SVD-файлами от Atmel.

Но вот создал проект с EFM32, подключил их библиотеки для периферии, и понеслось - какие-то странные адреса при отладке, только методом проб и ошибок выяснил, что J-Link ничего не шьет в контроллер. Но отлаживает, если запустить J-Link Flash и прошить там. Проект, собранный в Keil, работает, шьется и отлаживается, то есть, дело в настройках J-Link. Почитал мануалы, думал, что это может быть связано с различными режимами входа в программирование, но нет, ни один не сработал. Скорость даже ниже, чем в Keil. Особых настроек в EmBitz нет, в мануале к J-Link тоже ничего вразумительного не нашел. Что удивительно, но в логе он пишет, что все прошил, хотя и не проверил. Если прошивка внутри уже есть - отлаживает на ура.

Может быть, кто-то сталкивался с подобными странностями, было бы интересно послушать идеи.

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


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

Если с Keil все работает (прошивается), а из другой среды нет (не шьется, но есть отладка) - возможно, что нет доступа к алгоритмам прошивки камня.

В Keil соответствующие  *.flm файлы лежат в отдельной папке. Эти *.flm файлы можно использовать и для JLINK. Порядок подключения (добавления в базу) должен быть описан в доках на JLINK.

 

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


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

11 hours ago, Polaris said:

Может быть, кто-то сталкивался с подобными странностями, было бы интересно послушать идеи.

У меня что-то аналогичное сейчас с Kinetis MKE18F512VLL16

J-Link Flash прошивает нормально, а IAR своим отладчиком глючит на определенных областях при прошивке.

Выяснил что  вмешивается встроенный в ROM чипа загрузчик.
IAR каким-то образом вызывает его API,  которое затирает то что IAR только что прошил. 

Т.е. надо поднимать все скрипты IAR-а и править.  

У EFM32 вижу тоже есть встроенный в ROM загрузчик.

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


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

15 minutes ago, AlexandrY said:

У меня что-то аналогичное сейчас с Kinetis MKE18F512VLL16

J-Link Flash прошивает нормально, а IAR своим отладчиком глючит на определенных областях при прошивке.

Выяснил что  вмешивается встроенный в ROM чипа загрузчик.
IAR каким-то образом вызывает его API,  которое затирает то что IAR только что прошил. 

Т.е. надо поднимать все скрипты IAR-а и править.  

У EFM32 вижу тоже есть встроенный в ROM загрузчик.

То есть есть ещё чудеса !

Перед прошивкой надо креститься и святой водой плату обрызгать.

И всё будет отлично.

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


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

12 минут назад, x893 сказал:

Перед прошивкой надо креститься и святой водой плату обрызгать.

Думаю, что достаточно будет не забыть завести сигнал RESET в J-Link и выбрать подходящий тип сброса. ... и можно оставаться атеистом :wink:

Ну а если RESET не завели, то тут остаётся пенять только на себя.

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


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

41 minutes ago, jcxz said:

Думаю, что достаточно будет не забыть завести сигнал RESET в J-Link и выбрать подходящий тип сброса. ... и можно оставаться атеистом :wink:

Ну а если RESET не завели, то тут остаётся пенять только на себя.

В J-Link OB отсутствует RESET

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


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

24 minutes ago, Polaris said:

В J-Link OB отсутствует RESET

RESET есть, но только у того кто свечку поставил.

P.S. А кто три раза перекрестился, ещё и SWO имеет и последовательный порт.

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


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

3 minutes ago, x893 said:

RESET есть, но только у того кто свечку поставил.

P.S. А кто три раза перекрестился, ещё и SWO имеет и последовательный порт.

Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее?

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


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

Just now, Polaris said:

Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее?

Зачем мне знать EmBitz, если я знаю про openocd.

Причем не 2014 года (как в EmBitz). а немного свежее (2018).

Чувтсво юмора немного есть.

 

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


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

2 часа назад, Polaris сказал:

Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее?

Возможно, что в "другом софте" чуть-чуть отличаются тайминги процесса подключения. И вышеназванный BootROM не успевает сделать своего чёрного дела. Но с RESET должно быть надёжнее вне зависимости от таймингов.

PS: при похожих проблемах (но на других МК и с другой IDE) мне часто помогало отключение boot-пинами возможности запуска пользовательского ПО. Т.е. - boot-пинами поставить переход в BootROM в режим загрузки с внешнего интерфейса (UART, CAN, ...) - не знаю какие возможности загрузки есть Вашем МК. Вобщем - чтобы при старте CPU управление не передавалось программе во флешь. И вообще при отладке лучше всегда ставить boot-пины в такой режим. Тогда и RESET на JTAG-е/SWD меньше нужен.

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


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

On 11/23/2018 at 3:22 PM, jcxz said:

Возможно, что в "другом софте" чуть-чуть отличаются тайминги процесса подключения. И вышеназванный BootROM не успевает сделать своего чёрного дела. Но с RESET должно быть надёжнее вне зависимости от таймингов.

PS: при похожих проблемах (но на других МК и с другой IDE) мне часто помогало отключение boot-пинами возможности запуска пользовательского ПО. Т.е. - boot-пинами поставить переход в BootROM в режим загрузки с внешнего интерфейса (UART, CAN, ...) - не знаю какие возможности загрузки есть Вашем МК. Вобщем - чтобы при старте CPU управление не передавалось программе во флешь. И вообще при отладке лучше всегда ставить boot-пины в такой режим. Тогда и RESET на JTAG-е/SWD меньше нужен.

В EFM32 нет boot пинов. Там в первых 2KB есть встроенный загрузчик (во всяком случае, в процессоре топик стартера, я тоже с таким работал), поддерживающий XMODEM. Свою программу надо изначально размещать, начиная с 2К (с перемещением векторов), если хочется сохранить этот самый родной загрузчик, который весьма полезен для производства, например: можно прошивать процессоры через последовательный порт с помощью макро для TERATERM.

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

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


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

3 hours ago, KnightIgor said:

В EFM32 нет boot пинов. Там в первых 2KB есть встроенный загрузчик (во всяком случае, в процессоре топик стартера, я тоже с таким работал), поддерживающий XMODEM. Свою программу надо изначально размещать, начиная с 2К (с перемещением векторов), если хочется сохранить этот самый родной загрузчик, который весьма полезен для производства, например: можно прошивать процессоры через последовательный порт с помощью макро для TERATERM.

 

Нет, мне загрузчик не нужен. Проблема в скриптах для j-link, которые идут в комплекте с EmBitz, что конкретно - я до сих пор понять не могу.

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


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

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

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

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

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

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

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

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

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

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