|
Запрет остановки / паузы отладки, Linux / Eclipse / STM32F051 / JLink / SWD / OpenOCD |
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 26)
|
May 19 2017, 18:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Шаманъ @ May 19 2017, 21:11)  А зачем он мне, если OpenOCD вполне справляется? Тем более я пользуюсь gcc/gdb, и не уверен, что st-link или j-link беспроблемно стыкуются с gdb. Все ясно с вами ))) Цитата Зачем это делать? А кто будет настраивать порты на некие безопасные значения, чтобы не попалить силу, подключенную снаружи, пока шьется флэш? Я вот всегда решаю это аппаратно, дабы не зависеть от всяких отладчиков/программаторов. Цитата OpenOCD умеет заливать проги в несколько сотен разных процессоров, и не только заливать  Но если Вам хочется сделать что-то особенное, то нет проблем добавить несколько команд в скрипт  Прогу в ОЗУ корректировать не нужно, она сама по себе. А что там с st-link? А то же самое - ST-LINK шьет абсолютно все STM8/STM32. В китаях идут по 100р за штучку. Обед в столовке и то дороже Сам им давно не пользуюсь - медленный слишком. У конторы, где работую, деньги есть на оригинальные j-link, а уж на его клонов и подавно. Себе лично прикупиль несколько клонов, домой. Не разорился ни разу )) Все встроенные в платки discovery st-link перешил на j-link, на сайте сеггера есть прошивка. Цитата Вообще-то без тактирования с включенным питанием драйверов любой ТФТ по идее медленно деградирует. Ну-ну ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 20 2017, 05:36
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Forger @ May 19 2017, 21:41)  А кто будет настраивать порты на некие безопасные значения, чтобы не попалить силу, подключенную снаружи, пока шьется флэш? Я вот всегда решаю это аппаратно, дабы не зависеть от всяких отладчиков/программаторов. Эх, не читаете Вы то, что я пишу. Я не предлагал критически важные вещи делать зависимыми от программатора. В то же время иметь возможность установить в произвольное состояние любые порты/внутренние регистры/память это однозначно хорошо. На счет кто будет настраивать, я тоже отвечал: Цитата(Шаманъ @ May 19 2017, 21:11)  ...если Вам хочется сделать что-то особенное, то нет проблем добавить несколько команд в скрипт  Прогу в ОЗУ корректировать не нужно, она сама по себе. Цитата Ну-ну ... Хоть ну, хоть без ну, но попробуйте включить подсветку, питание драйверов при активном reset'е. У меня идут такие же медленно расплывающиеся цветные полосы, что и без reseta. В этом состоянии есть постоянное напряжение на "ячейках" ТФТ индикатора, которое приводит к его медленной порчи. Возможно в других ТФТ все по-другому, но в двух которые у меня именно так...
|
|
|
|
|
May 20 2017, 07:25
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Шаманъ @ May 20 2017, 08:36)  Эх, не читаете Вы то, что я пишу. Я не предлагал критически важные вещи делать зависимыми от программатора. В то же время иметь возможность установить в произвольное состояние любые порты/внутренние регистры/память это однозначно хорошо. Мы отклоняемся от темы. В данном случае никакое программное решение с этим OpenOCD все равно толком не поможет, а спасет лишь это: 1) железное (аппаратное решение). 2) В случае с Keil можно прямо под отладчиком и работающем камне смотреть любые переменные и строить графики. Это отлично работает под j-link. 3) Использовать RTT (голый или под SystemViewer), это тот же пункт 3, но без Keil 4) UART + простейшая программка-терминал, или любой другой интерфейс с соотв. софтом. Цитата У меня идут такие же медленно расплывающиеся цветные полосы, что и без reseta. В этом состоянии есть постоянное напряжение на "ячейках" ТФТ индикатора, которое приводит к его медленной порчи. Т.е. при активном сигнале сброса на TFT-панели она ведет себя таким образом? Дайте ее название, мне стало даже любопытно ))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 20 2017, 18:36
|

Знающий
   
Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423

|
Цитата(Шаманъ) В том же OpenOCD можно проинициализировать что угодно, и как надо (я, например, LTDC запускаю, чтобы матрицу не мучать во время программирования - показывает синенький экран  ). Цитата(Шаманъ) более того можно в скриптах включить PLL и получить приличное ускорение верификации программы. А как это делается - что-то пишется в память по адресам, где находятся регистры периферии? Можете привести примеры (или дать ссылку, где почитать), как этим пользоваться?
--------------------
|
|
|
|
|
May 20 2017, 19:23
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Forger @ May 20 2017, 16:11)  Когда его вывод RESET притянут к GND "полосы" тоже есть? Да без разницы. Такое впечатление, что с resetом это вообще не связано (может они его внутри подключить забыли  ). Цитата(arhiv6 @ May 20 2017, 21:36)  А как это делается - что-то пишется в память по адресам, где находятся регистры периферии? Можете привести примеры (или дать ссылку, где почитать), как этим пользоваться? Да, пишется в память. Например, вот так: CODE $_TARGETNAME configure -event reset-init { # Configure PLL to boost clock to HSI x 4 (64 MHz) mww 0x40023804 0x08012008 ;# RCC_PLLCFGR 16 Mhz /8 (M) * 128 (N) /4(P) mww 0x40023C00 0x00000102 ;# FLASH_ACR = PRFTBE | 2(Latency) mmw 0x40023800 0x01000000 0 ;# RCC_CR |= PLLON sleep 10 ;# Wait for PLL to lock mmw 0x40023808 0x00001000 0 ;# RCC_CFGR |= RCC_CFGR_PPRE1_DIV2 mmw 0x40023808 0x00000002 0 ;# RCC_CFGR |= RCC_CFGR_SW_PLL
# Boost JTAG frequency adapter_khz 8000
#Confgure PLL SAI to clock LTDC (to prevend TFT degradation during flash loading) mww 0x40023888 0x69011800 ;# RCC_PLLSAICFGR LTDC clock = 16 Mhz /8 (M) * 96 (N) / 6® mmw 0x40023800 0x10000000 0 ;# RCC_CR |= PLLSAION sleep 10 ;# Wait for PLL to lock mmw 0x40023830 0x000001E3 0 ;# AHB1ENR Enable GPIO A,B,F,G,H,I # Configure GPIO A mww 0x40020000 0xA8000080 ;# MODER mww 0x40020008 0xFC0000C0 ;# OSPEED mww 0x40020020 0x00E00000 ;# AFRL # Configure GPIO B mww 0x40020400 0x000A0280 ;# MODER mww 0x40020408 0x000F00C0 ;# OSPEED mww 0x40020424 0x000000EE ;# AFRH # Configure GPIO F mww 0x40021400 0x00100000 ;# MODER DE=OUTPUT mww 0x40021408 0x00000000 ;# OSPEED # Configure GPIO G mww 0x40021800 0x0280A000 ;# MODER mww 0x40021808 0x03C0F000 ;# OSPEED mww 0x40021820 0xEE000000 ;# AFRL mww 0x40021824 0x0009E000 ;# AFRH # Configure GPIO H mww 0x40021C00 0xAAA80000 ;# MODER mww 0x40021C08 0xFFFC0000 ;# OSPEED mww 0x40021C24 0xEEEEEEE0 ;# AFRH # Configure GPIO I mww 0x40022000 0x0028002A ;# MODER mww 0x40022008 0x003C003F ;# OSPEED mww 0x40022020 0x00000EEE ;# AFRL mww 0x40022024 0x00000EE0 ;# AFRH
mmw 0x40023844 0x04000000 0 ;# APB2ENR |= LTDC #Configure LTDC mww 0x40016808 0x00270013 ;# SSCR mww 0x4001680C 0x002D0016 ;# BPCR mww 0x40016810 0x034D01F6 ;# AWCR mww 0x40016814 0x041F020C ;# TWCR mww 0x4001682C 0x000000FF ;# BCCR mmw 0x40016818 0x00002220 0 ;# GCR mmw 0x40016818 0x00000001 0 ;# GCR }
Команда mww addr word записывает слово word в память по адресу addr, команда mmw addr set clear модифицирует слово по адресу addr в соответствии с битовыми масками set и clear
|
|
|
|
|
May 20 2017, 20:31
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(nanorobot @ May 19 2017, 08:36)  Отлаживаю дивайс на STM32 с помощью JLink. Иногда требуется "запаузить" отладку, посмотреть состояние переменных и т.п. Если момент паузы приходится когда на силовую часть подано напряжение (с ЦАПа), резисторы начинают гореть. Есть ли возможность запретить остановку прогаммы JLink-ом на каком то интервале программного кода? Да не проблема. В Cortex-M on-chip breakpoints можно поставить только в области 0x00000000 - 0x1fffffff. Перенесите код который нельзя прерывать в RAM и не сможете там поставить on-chip breakpoints. Софтварные брикпойнты, конечно, при этом надо в J-Link запретить.
|
|
|
|
|
May 20 2017, 20:42
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(arhiv6 @ May 21 2017, 00:36)  А как это делается - что-то пишется в память по адресам, где находятся регистры периферии? Можете привести примеры (или дать ссылку, где почитать), как этим пользоваться? Сорри, arhiv6, Вы автор статьи на изи об OpenOCD и SEGGER RTT? Хочется вопросов пару задать. Но - завтра.
Сообщение отредактировал nanorobot - May 20 2017, 20:43
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|