Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
1

Отладчик

08.10.2019, 08:20. Просмотров 300. Ответов 12
Метки iar, keil (Все метки)

Здравствуйте.

По F11 программа исправно доходит до желаемой строки в main.c
Но если поставить на эту строку брейкпоинт, то при запуске RUN программа до этой точки не доходит.
Хотя сами брейкпоинты работают, проверено.
Сие наблюдается в отладчиках и от Keil, и от IAR
Как следует понимать такое поведение и что с эти делать?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2019, 08:20
Ответы с готовыми решениями:

Программатор-Отладчик
Здравствуйте! Подскажите, пожалуйста, программатор\отладчик для микроконтроллера MSP430FW429,...

Отладчик ST-link v2 и STM32F100C8
Dmirtiy Vovk, Привет! Подскажите пожалуйста как подключали STM32F100C8 к програматору ST-link v2...

UART через отладчик??
Наткнулся на такую вот статью про ИАР: http://www.iar.com/website1/1.0.1.0/2839/1/ Т.е. что...

Универсальный JTAG отладчик
Принесли тут пару роутеров-кирпичей. Решил поиграться с ними, оживить их. Но похоже нужен jtag....

STM32 Discovery - глючит отладчик
Кто-нибудь сталкивался с такой ситуацией (на убунте, если что), что платы stm32f0discovery и...

12
_SayHello
755 / 451 / 147
Регистрация: 30.07.2015
Сообщений: 1,513
08.10.2019, 11:23 2
ARTMED, а куда доходит программа? Оптимизация есть?
1
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
08.10.2019, 17:33  [ТС] 3
Если остановить программу, она может оказаться любом месте.
Есть основания полагать, что что-то не так с прерыванием или его обработкой.
Данные накопятся, сообщу конкретно.
Спасибо за отклик.
0
locm
2236 / 992 / 126
Регистрация: 28.10.2011
Сообщений: 3,350
Записей в блоге: 6
08.10.2019, 20:33 4
Цитата Сообщение от ARTMED Посмотреть сообщение
Если остановить программу, она может оказаться любом месте.
До точки останова или может быть после нее?
0
08.10.2019, 20:33
i8085
2475 / 1539 / 307
Регистрация: 11.09.2009
Сообщений: 5,635
08.10.2019, 23:54 5
Цитата Сообщение от ARTMED Посмотреть сообщение
Данные накопятся, сообщу конкретно.
Посмотрите, где вы ставите "брейкпоинт" - в основном цикле или внутри обработчика прерывания. Это наведёт на нужные мысли.
0
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
09.10.2019, 09:48  [ТС] 6
Да, именно так и делаю.
В поисках нужных мыслей иду по программе с помощью F11, ставлю где-попало брейкпоинты, проверяю их на RUN и иду дальше.
А что еще остается делать?
-----------------------------------------------------------------------

Добавлено через 40 минут
В блоке NVIC_Init есть такая строчка:
C
1
2
3
/* Enable the Selected IRQ Channels --------------------------------------*/
    NVIC->ISER[(NVIC_InitStruct->NVIC_IRQChannel >> 0x05)] =
      (u32)0x01 << (NVIC_InitStruct->NVIC_IRQChannel & (u8)0x1F);
на которой отладчик IAR по F11 зависает (или останавливается если так кому удобнее). Вне зависимости от того, поставлена ли галка на DIWS или нет.

Если эту строчку закомментить, то по RUN программа благополучно доходит до заданной точки.

Что с такой ситуации можно сделать?

Добавлено через 47 минут
Дополнительная информация.

В конструкции ниже NVIC_Init вызывается трижды, но затыкается отладчик только при третьем обращении.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Enable the ADC Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = ADC_PRE_EMPTION_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = ADC_SUB_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
 /* Enable the Update Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = TIM1_UP_PRE_EMPTION_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = TIM1_UP_SUB_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
 /* Enable the TIM1 BRK Interrupt */
 NVIC_InitStructure.NVIC_IRQChannel = TIM1_BRK_IRQChannel;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = BRK_PRE_EMPTION_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = BRK_SUB_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
0
ValeryS
Модератор
7871 / 5855 / 765
Регистрация: 14.02.2011
Сообщений: 20,131
Завершенные тесты: 1
09.10.2019, 10:19 7
ARTMED, проект создан для того контроллера что и железный контроллер?
0
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
09.10.2019, 11:00  [ТС] 8
Не совсем.
Проект создавался для STM32F103VBH6.
У меня stm32F103C8T6
Глубоко не копал, но разницы окромя количества ног, не увидел.
0
ValeryS
Модератор
7871 / 5855 / 765
Регистрация: 14.02.2011
Сообщений: 20,131
Завершенные тесты: 1
09.10.2019, 11:21 9
Цитата Сообщение от ARTMED Посмотреть сообщение
Глубоко не копал, но разницы окромя количества ног, не увидел.
а так же размер памяти и добавочной периферии

вот он тебе и пытается установить вектор прерывания которого нет в
Цитата Сообщение от ARTMED Посмотреть сообщение
stm32F103C8T6
перекомпилируй проект

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
добавочной периферии
например у
Цитата Сообщение от ARTMED Посмотреть сообщение
STM32F103VBH6
есть ЦАП а у
Цитата Сообщение от ARTMED Посмотреть сообщение
stm32F103C8T6
нету
0
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
09.10.2019, 11:46  [ТС] 10
Гм....
Согласно даташиту: STM32F103x8 and STM32F103xB are referred to as medium-density devices,
а DAC у medium-density devices согласно того же даташита нет.
С другой стороны, DAC в программе действительно мне попадался (см. скрин), но он, насколько я понял рассчитан на другой МК (программа универсальна).

Я Вас правильно понял, что неработающий для medium-density DAC может вытеснить из памяти прерывания у STM32F103С8?
0
Миниатюры
Отладчик  
_SayHello
755 / 451 / 147
Регистрация: 30.07.2015
Сообщений: 1,513
09.10.2019, 12:12 11
ARTMED,
Цитата Сообщение от ARTMED Посмотреть сообщение
Я Вас правильно понял, что неработающий для medium-density DAC может вытеснить из памяти прерывания у STM32F103С8?
Вряд ли, таблица векторов одна на все семейчтво medium-density.
Цитата Сообщение от ARTMED Посмотреть сообщение
на которой отладчик IAR по F11 зависает
Что значит зависает? В Hard Fault вылетает? Или IAR в целом зависает?
В любом случае, пересоберите проект под свой девайс. В линкерном файле будут отличия по размеру флэш секции точно. В целом не должно быть критично, но лучше пересобрать.
0
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
09.10.2019, 12:20  [ТС] 12
Цитата Сообщение от _SayHello Посмотреть сообщение
ARTMED,
Что значит зависает? В Hard Fault вылетает? Или IAR в целом зависает?
В любом случае, пересоберите проект под свой девайс. В линкерном файле будут отличия по размеру флэш секции точно. В целом не должно быть критично, но лучше пересобрать.
Включаем отладчик, и нажимаем F11, наблюдаем прохождение программы.
В один прекрасный момент отладчик перестает реагировать на нажатие F11, и в меню у него оказываются только две рабочие функции - Break и Stop.
При нажатии Break программа оказывается в каком угодно месте.

Пересобрать попробую, спасибо.
0
ARTMED
117 / 8 / 0
Регистрация: 23.05.2016
Сообщений: 200
12.10.2019, 12:50  [ТС] 13
Коротко.

Согласно мануалу на библиотеку пакостный блок занимается синхронизацией отработки ошибки.

Дело нужное, но в настоящий момент не важное, да и решаемое иными способами.

Поэтому весь блок TIM1_BRK_IRQHandler*был закоментирован, и программа пошла дальше.

До успеха далеко, но работать можно.

Всем спасибо за участие.
0
12.10.2019, 12:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2019, 12:50

Отладчик-программатор ST-LinkV2. Оригинал VS Китай
Задавался я в самом начале &quot;упражнений&quot; с STM32, вопросом, который одновременно является заголовком...

Отладчик KEIL5.13 не входит в прерывание в пошаговом режиме
Добрый день, уважаемые коллеги. Имеем KEIL5.13 и плату STM32VLDyscovery (STM32F100RBT,...

Отладчик
Установила новый CodeBloks. После написания программы хочу запустить отладчик. Ставлю breakpoint....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.