реклама на сайте
подробности

 
 
> EFM32 (EnergyMicro) и ULINK, FYI: почему не отлаживается и как побороть.
KnightIgor
сообщение Sep 30 2013, 11:04
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Делюсь опытом.
Ключевые слова: EFM32, EnergyMicro, ULINK, SWDCLK, Bootloader, debug, отладка.

Как видно из форума, похоже мало кто на пространстве СНГ использует Cortex-Mx процессоры от EnergyMicro (ныне под Silabs). Форумчанам виднее, почему. Моя гипотеза: ввиду экспортных ограничений на эти процессоры, т.к. имеется встроенный модуль AES. Тем не менее, поделюсь нарытым опытом здесь.

Предыстория.
Хотя я вожусь с процессором довольно давно (наверное, с того времени, как они только начали появляться), ввиду удачного стечения обстоятельств с нижеописаной проблемой до недавнего момента мне сталкиваться не приходилось, т.к. для отладки и программирования я использовал DK от EnergyMicro, поскольку на нем есть замечательный бесплатный J-LINK, который к тому же никак не "залочен" (русский технический новояз) на сами EFM процессоры. Это и было до сих пор решающим фактором, почему все шло гладко. И тут на днях обращается ко мне коллега из другой конторы и жалуется на то, что, применив камень в своей разработке, он не может отлаживаться: все виснет непонятно где.

Проблема.
Начали разбираться, и накопали следующее.
С целью упрощения производства и последующей актуализации было решено не затирать встроенный загрузчик в первых 2K и разместить программу выше. При запуске под отладчиком прохождение зацикливалось где-то в загрузчике, не доходя до main() основной программы. Выясняем: вначале, как и описано, загрузчик анализирует состояние линии 0 порта F, что есть также сигнал SWDCLK. Если линия в "0", то происходит переход на пользовательскую программу, иначе - в ожидание команд по USART0. Возник вопрос, почему же я никогда с таким поведением не сталкивался? Ответ подсказал осциллограф: в то время, как мой onboard-JLINK выдает положительные импульсы по SWDCLK, то ULINK - отрицательные (по логике, не по полярности напряжения, конечно). Таким образом, под ULINK загрузчик ловит пассивное состояние SWDCLK как "1" и видит свой звездный час. onboard JLINK писался же SEGGER под неусыпным оком EnergyMicro, которая объяснила, как себя правильно вести.

Решение.
Тем, кто затирал и будет затирать встроенный загрузчик, беспокоиться не о чем: они с вышеописаным поведением не столкнутся.
Кто же хочет сохранить загрузчик, но и отлаживаться по ULINK, следует модицифировать загрузчик (исходные тексты есть на сайте EnergyMicro) так, чтобы он в момент проверки состояния SWDCLK проверял дополнительно, не находится ли он под отладкой, и принимал соответствующее решение. Вариант модифицированного фрагмента из проекта загрузчика (файл bootloader.c, версия 1.64, строки от 168):
Код
    /* Check if pins are not asserted AND firmware is valid */
//    if ((SWDpins != 0x1) && (BOOT_checkFirmwareIsValid())) // old version making troubles under ULINK
    if ((SWDpins != 0x1 || ((CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) != 0x0))
         && (BOOT_checkFirmwareIsValid()))


Сообщение отредактировал KnightIgor - Sep 30 2013, 14:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
x893
сообщение Oct 1 2013, 16:09
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Использую EFM32 во всех проектах с низким потреблением (в основном трекеры для отслеживания диких животных). По сравнению с STM32L дает 2-х кратное увеличение времени в sleep. Компоненты конечно тоже приходится использовать малопотребляющие. После покупки Silabs конечно есть смутные сомнения, но они говорят, что ничего особо не изменится. Контора неплохая и поддержка гораздо адекватнее, чем у других. Когда друг передал на распитии пива привет - они прямо сильно обрадовались и в блоге написали, что первый привет был из России. Небольшие проблемы конечно бывают, но как то быстро всё решается через форум.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 19:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016