Polaris 0 22 ноября, 2018 Опубликовано 22 ноября, 2018 · Жалоба Доброго всем времени суток! Возникла необходимость запустить проект на 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 тоже ничего вразумительного не нашел. Что удивительно, но в логе он пишет, что все прошил, хотя и не проверил. Если прошивка внутри уже есть - отлаживает на ура. Может быть, кто-то сталкивался с подобными странностями, было бы интересно послушать идеи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба Использовал Keil, SES, Simplicity Studio, Ozone с EFM32 - всё нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба Если с Keil все работает (прошивается), а из другой среды нет (не шьется, но есть отладка) - возможно, что нет доступа к алгоритмам прошивки камня. В Keil соответствующие *.flm файлы лежат в отдельной папке. Эти *.flm файлы можно использовать и для JLINK. Порядок подключения (добавления в базу) должен быть описан в доках на JLINK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 11 hours ago, Polaris said: Может быть, кто-то сталкивался с подобными странностями, было бы интересно послушать идеи. У меня что-то аналогичное сейчас с Kinetis MKE18F512VLL16 J-Link Flash прошивает нормально, а IAR своим отладчиком глючит на определенных областях при прошивке. Выяснил что вмешивается встроенный в ROM чипа загрузчик. IAR каким-то образом вызывает его API, которое затирает то что IAR только что прошил. Т.е. надо поднимать все скрипты IAR-а и править. У EFM32 вижу тоже есть встроенный в ROM загрузчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 15 minutes ago, AlexandrY said: У меня что-то аналогичное сейчас с Kinetis MKE18F512VLL16 J-Link Flash прошивает нормально, а IAR своим отладчиком глючит на определенных областях при прошивке. Выяснил что вмешивается встроенный в ROM чипа загрузчик. IAR каким-то образом вызывает его API, которое затирает то что IAR только что прошил. Т.е. надо поднимать все скрипты IAR-а и править. У EFM32 вижу тоже есть встроенный в ROM загрузчик. То есть есть ещё чудеса ! Перед прошивкой надо креститься и святой водой плату обрызгать. И всё будет отлично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 12 минут назад, x893 сказал: Перед прошивкой надо креститься и святой водой плату обрызгать. Думаю, что достаточно будет не забыть завести сигнал RESET в J-Link и выбрать подходящий тип сброса. ... и можно оставаться атеистом Ну а если RESET не завели, то тут остаётся пенять только на себя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Polaris 0 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 41 minutes ago, jcxz said: Думаю, что достаточно будет не забыть завести сигнал RESET в J-Link и выбрать подходящий тип сброса. ... и можно оставаться атеистом Ну а если RESET не завели, то тут остаётся пенять только на себя. В J-Link OB отсутствует RESET Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 24 minutes ago, Polaris said: В J-Link OB отсутствует RESET RESET есть, но только у того кто свечку поставил. P.S. А кто три раза перекрестился, ещё и SWO имеет и последовательный порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Polaris 0 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 3 minutes ago, x893 said: RESET есть, но только у того кто свечку поставил. P.S. А кто три раза перекрестился, ещё и SWO имеет и последовательный порт. Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба Just now, Polaris said: Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее? Зачем мне знать EmBitz, если я знаю про openocd. Причем не 2014 года (как в EmBitz). а немного свежее (2018). Чувтсво юмора немного есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 23 ноября, 2018 Опубликовано 23 ноября, 2018 · Жалоба 2 часа назад, Polaris сказал: Очень смешно, прям ха-ха-ха. При этом другой софт чудесно справляется как без RESET, так и без SWO. Вы вообще какой-то опыт с EmBitz имеете и его скриптами, или просто чувство юмора хорошее? Возможно, что в "другом софте" чуть-чуть отличаются тайминги процесса подключения. И вышеназванный BootROM не успевает сделать своего чёрного дела. Но с RESET должно быть надёжнее вне зависимости от таймингов. PS: при похожих проблемах (но на других МК и с другой IDE) мне часто помогало отключение boot-пинами возможности запуска пользовательского ПО. Т.е. - boot-пинами поставить переход в BootROM в режим загрузки с внешнего интерфейса (UART, CAN, ...) - не знаю какие возможности загрузки есть Вашем МК. Вобщем - чтобы при старте CPU управление не передавалось программе во флешь. И вообще при отладке лучше всегда ставить boot-пины в такой режим. Тогда и RESET на JTAG-е/SWD меньше нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 27 ноября, 2018 Опубликовано 27 ноября, 2018 (изменено) · Жалоба 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. Изменено 27 ноября, 2018 пользователем KnightIgor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Polaris 0 27 ноября, 2018 Опубликовано 27 ноября, 2018 · Жалоба 3 hours ago, KnightIgor said: В EFM32 нет boot пинов. Там в первых 2KB есть встроенный загрузчик (во всяком случае, в процессоре топик стартера, я тоже с таким работал), поддерживающий XMODEM. Свою программу надо изначально размещать, начиная с 2К (с перемещением векторов), если хочется сохранить этот самый родной загрузчик, который весьма полезен для производства, например: можно прошивать процессоры через последовательный порт с помощью макро для TERATERM. Нет, мне загрузчик не нужен. Проблема в скриптах для j-link, которые идут в комплекте с EmBitz, что конкретно - я до сих пор понять не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться