С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/27: Рейтинг темы: голосов - 27, средняя оценка - 4.81
smoytir

отладка в GDB, не уходит в прерывание

17.09.2016, 22:37. Показов 5117. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Изучаю мк stm32c8t6, компилятор GCC отладка в gdb через st-link. Столкнулся с проблемой которую не могу решить 3 день подряд. Не могу выйти на прерывание (не выходит в ловушку) ни по таймеру 2, ни по SysTick. Счетчик досчитывает и перегружается в регистре управления и состояния прерывание появляется значение 0x0480f000 (0хf- номер отложенного исключения с наибольшим приоритетом, бит 23 =1 отложенное прерывание станет активным на следующем шаге отладки, бит 26 = 1 Systysk в состоянии ожидания). На обработчик прерывания ни при пошаговой отладке ни continue не выходит. Где искать и в какую сторону думать, подскажите пожалуйста? Таблица векторов вроде верная:
Code
1
2
3
4
5
6
7
0000000 5000 2000 0041 0800 0065 0800 0065 0800
0000010 0065 0800 0065 0800 0065 0800 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0065 0800
0000030 0065 0800 0000 0000 0065 0800 0065 0800
0000040 bf00 bf00 bf00 bf00 bf00 bf00 4807 f04f
0000050 0100 6001 2110 6041 6081 f04f 0107 6001
0000060 f7ff bfee bf00 f7ff bffd 0000 e010 e000
Программа:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
.syntax unified
.cpu cortex-m3
.thumb
.equ STACKINIT, 0x20005000 //20kb
.section .text
.global Riset_Homdler
//.global SysTick_Homdler
.global dummy
.word STACKINIT
.word   Riset_Homdler +1
.word   dummy+1
.word   dummy+1
.word   dummy +1
.word   dummy +1
.word   dummy +1
.word   0
.word   0
.word   0
.word   0
.word   dummy+1
.word   dummy+1
.word   0
.word   dummy +1
.word   dummy +1
Riset_Homdler:
nop //пустые команды здесь что бы не успевались регистры систик  переписаться
nop
nop
nop
nop
nop
//инициализация систик
ldr r0, =0xe000e010
mov r1, #0
str r1, [r0]
ldr r1, =16 //значение счетчика
str r1, [r0,#4]//грузим значение перезагрузки
str r1, [r0,#8] //грузим начальное значение
mov r1, #0x7 //запуск систик
str r1, [r0]
b Riset_Homdler
//SysTick прерывания ловушка:
dummy:
nop
b dummy
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2016, 22:37
Ответы с готовыми решениями:

Отладка GDB
Всем доброго дня! Знакомлюсь с отладчиком GDB Хочу выполнить пример из книги: Создаю файл bug.cpp Компилирую программу...

qtcrator отладка в gdb
Можно ли как-то посмотреть какие значения возвращает функция без дополнительных переменных для отладки? Просто: вызвал функцию прошелся по...

Отладка программ с gdb
Вот, что нужно выполнить: 1) Модифицировать программу подсчёта статистики встречаемости символов таким образом, чтобы вызвать ошибку...

7
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
17.09.2016, 22:54
А если в прирывании ножкой дернуть?? Светодиод зажечь?? Работает? Может вы в него просто не попадаете???
0
smoytir
17.09.2016, 23:14
именно не попадаю, отладчик никогда не переходит в цикл dummy, хотя случись прерывание должен зациклится в нем, это и не могу решить.
0 / 0 / 0
Регистрация: 16.06.2016
Сообщений: 37
18.09.2016, 06:31
У меня было такое при одинаковых приоритетах с Systysk, равному 0. Попробуйте поставить разные приоритеты для прерываний.
0
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
18.09.2016, 09:53
Цитата Сообщение от smoyter
именно не попадаю, отладчик никогда не переходит в цикл dummy, хотя случись прерывание должен зациклится в нем, это и не могу решить.
Я имел ввиду вы ВООБЩЕ туда попадаете?? Вы можете в нем зажечь диод? Ну и ли поменять значение порта вода/вывода?
0
smoytir
18.09.2016, 14:04
Цитата Сообщение от TotSamiyMihotych
У меня было такое при одинаковых приоритетах с Systysk, равному 0. Попробуйте поставить разные приоритеты для прерываний.
Спасибо, вы уменьшали приоритеты других прерываний? или систик? В моем случае пытаюсь вызвать только одно прерывание, т.е. конфликтов быть не должно. Но попробую.
Цитата Сообщение от kos
Я имел ввиду вы ВООБЩЕ туда попадаете?? Вы можете в нем зажечь диод? Ну и ли поменять значение порта вода/вывода?
Если верить отладчику нет, не попадаю. Ставлю брейк на nop в цикле dummy и отладчик никогда на него не переходит, т.е. брейк не срабатывает, то же и в пошаговом режиме (описанный метод прекрасно работал на кейле). Писал выше, систик отмечается, насколько могу судить по регистру ICSR, как отложенное прерывание но никогда не переходит в обработчик dummy, тоже и с другим прерыванием. Как вариант, попробую моргнуть светодиодом в обработчике и запустить без отладчика, может быть проблема с gdb?
0 / 0 / 0
Регистрация: 16.06.2016
Сообщений: 37
18.09.2016, 14:20
smoyter, я уменьшал приоритет других прерываний на более меньший. Использовал кодогенератор CubeMX, можно почитать в ветке про EXTI (только у меня прерывание срабатывало 1 раз, потом вечно сидело в pending).
0
smoytir
19.09.2016, 15:48
Разобрался в чем дело. Контроллер не уходит в прерывание пока отладка выполняется пошагово (в gdb команда step). Как только отладчик запускает непрерывное выполнение командой continue, прерывание осуществляется, выполняется его обработка. спасибо.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.09.2016, 15:48
Помогаю со студенческими работами здесь

Срывается отладка gdb
Здравствуйте. Использую IDE Eclipse, компиляторы из MinGW. Во время отладки обычно всё хорошо, но иногда в совершенно разных местах...

Отладка через GDB в Qt Creator
Привет. Скажите вот при запуске debug получаю вот такое сообщение Debugging starts Listening on port 10000 Remote debugging from host...

Отладка GDB winapi приложений
Здравствуйте, появилась надобность в ручную с помощью gdb отлаживать приложение на WinAPI.Однако, если с консольными приложениями все...

МК не уходит в прерывание
Миконтролер Atmega165P не хочет уходить в прерывание по изменению состояния на ножке PB6, что странно что в Протеусе он уходит, вот код ...

PIC16F84A - Не уходит в прерывание
PIC16F84A - Не уходит в прерывание не уходит в прерывание - проверял в протеус. ; На RB7 подать +5в LIST P=PIC16F84A ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru