[Решено] Простейший способ отладки?

турбосквит
Сб 21 июля 2018 г., 23:46
Я наконец-то получил надежную кабели между модулем SI4432 и синей таблеткой, и я получил FR22-библиотеку, модифицированную для STM32Duino, но есть проблема: программа должна работать навсегда, но теперь она работает 8 петлей (+/- 1) и джемов, а теперь и сейчас. Мне нужно отладить библиотеку, но как самый простой способ сделать это?
Я думаю, что я столкнусь с одной из этих проблем с прерыванием RF22.

Я использую этот код, чтобы проверить, что мой HW работает. Обычно я использую C и Eclipse/openocd (на другой машине), и мне интересно, если
- Есть инструменты отладки в Arduino
- или что я должен сделать, чтобы иметь возможность отлаживать код с Eclipse/openocd

Я думаю, что использование Just Debug Prints-довольно трудоемкий способ отладки незнакомого кода.

Дэйвид.Прентис
Sun 22 июля 2018 г., 6:21
Я просто добавляю флаг отладки в рецепт сборки Arduino IDE. И скопируйте эльф в видимый каталог как часть рецепта.

Затем я использую Rowley Crossworks для отладки «извлеченного исполняемого файла».
У меня есть лицензия на любитель для Роули.

Это означает, что я отлаживаю фактический подлинный проект Arduino.

Дэйвид.

Стивестронг
Sun 22 июля 2018 г., 7:56 утра
В верхней правой части страницы есть поле поиска...

турбосквит
Sun 22 июля 2018 г. 9:36 утра
Stevestrong: я попытался искать, но после нескольких десятков страниц я сдался.

турбосквит
Солнце 22 июля 2018 г. 10:22 утра
[Дэйвид.Прентис - Sun 22 июля 2018 г. 6:21] - Я просто добавляю флаг отладки в рецепт сборки Arduino IDE. И скопируйте эльф в видимый каталог как часть рецепта.

Затем я использую Rowley Crossworks для отладки «извлеченного исполняемого файла».
У меня есть лицензия на любитель для Роули.

Это означает, что я отлаживаю фактический подлинный проект Arduino.

Дэйвид.
Как это работает с этим?
На самом деле достаточно информации в эльфе, которую вы можете отладить на уровне исходного происхождения?

Для отладки уровня сборки GDB в порядке, но отладка незнакомые библиотеки, такую ​​как RF22, на уровне сборки...
И я тоже не очень знаком с ядрами stmduino... Мне потребовалось больше часа, чтобы выяснить, что такое GPIO STM32 для "прерывания 0".

турбосквит
Солнце 22 июля 2018 г. 10:32 утра
Может я должен попробовать... У меня уже установлен GDB-Multiarch. Мне нужно только openocd...

Дэнниф
Солнце 22 июля 2018 г. 14:10
Теперь мне нужно отладить библиотеку, но как самый простой способ сделать это? Используйте аппаратный отладчик, такой как Stlink / Jlink / CMSIS-DAP...

турбосквит
Солнце 22 июля 2018 г. 14:48
[Дэнниф - Солнце 22 июля 2018 г., 14:10] - Теперь мне нужно отладить библиотеку, но как самый простой способ сделать это? Используйте аппаратный отладчик, такой как Stlink / Jlink / CMSIS-DAP...
Я использую ST-Link V2 Mini (дешевый клон, но работает нормально). Вот для чего для OpenOcd, на самом деле.

Мне было довольно интересно, как отлаживать, используя Arduino или как настроить материал Sketch +, чтобы иметь возможность отлаживать с помощью GDB, скорее на уровне источника.

Рик Кимбалл
Sun 22 июля 2018 г., 16:42
[турбосквит - Солнце 22 июля 2018 г. 14:48] - Мне было довольно интересно, как отлаживать, используя Arduino или как настроить материал Sketch +, чтобы иметь возможность отлаживать с помощью GDB, скорее на уровне источника.
Если вы используете ядро ​​Roger's Libmaple на основе Libmaple, он уже включает флаг «-g», который добавляет таблицу символов к .Файл эльфи. Это ядро, которое вы используете? Если вы не видите исходного кода и используете ядро ​​Роджера, убедитесь, что вы используете недавнюю версию Arm-None-Eabi-GDB и недавнюю версию OpenOcd.

Вы можете взглянуть на это, если вы находитесь на Linux или OS/X

ViewTopic.PHP?F = 35&T = 3872&P = 47302#P47302

турбосквит
Sun 22 июля 2018 г., 17:03
[Рик Кимбалл - Sun 22 июля 2018 г. 16:42] -
[турбосквит - Солнце 22 июля 2018 г. 14:48] - Мне было довольно интересно, как отлаживать, используя Arduino или как настроить материал Sketch +, чтобы иметь возможность отлаживать с помощью GDB, скорее на уровне источника.
Если вы используете ядро ​​Roger's Libmaple на основе Libmaple, он уже включает флаг «-g», который добавляет таблицу символов к .Файл эльфи. Это ядро, которое вы используете? Если вы не видите исходного кода и используете ядро ​​Роджера, убедитесь, что вы используете недавнюю версию Arm-None-Eabi-GDB и недавнюю версию OpenOcd.

Вы можете взглянуть на это, если вы находитесь на Linux или OS/X

ViewTopic.PHP?F = 35&T = 3872&P = 47302#P47302
Да, я использую ядро ​​Роджера.
И у меня есть еще одна машина (моя машина разработки) с Eclipse, GDB и OpenOCD уже используется.
Думаю, я должен принести Ардуино и SW туда или установить материал отладки в этой машине (где у меня сейчас есть Arduino).

Ардуно должен работать, иначе материал от /tmp исчезает?
Вы можете, конечно, экспортировать бинарную, но затем пути исчезли.

Спасибо, я копаюсь в ссылке, которую вы дали.

Рик Кимбалл
Sun 22 июля 2018 г., 19:26
Что касается источника, недоступного. Если вы не сохраните исходный файл, он не будет доступен. Вы должны сохранить любые изменения перед отладкой.

Одна заметка в моих предыдущих комментариях я изменил свой исходный пост и добавил файл Zip, который имеет изменения в плате.TXT и платформа.TXT вместе со сценарием, который я протестировал, поэтому вы выбираете загрузку с отладкой непосредственно из ядра Roger's Libmaple.

ViewTopic.PHP?F = 35&T = 3872&P = 47302#P47421

турбосквит
Солнце 22 июля 2018 г. 8:55 вечера
Что мне нужно будет попробовать в следующий раз, когда у меня возникнут проблемы!
Я сохранил ссылку на панели инструментов для закладок.
(Я скопировал Bash-Script и GDB-сценарию.)

Я думаю, что я приближаюсь к проблеме, и это не библиотека RF22, но обработка прерывания синих таблеток.
Линия прерывания активна (низкая), но обработчик прерывания - внезапно - не вызывается.

И об источниках: речь идет не о сохранении изменений, а отладки на другой машине, чем компиляция.

ZMEMW16
Ср. 25 июля 2018 г., 6:52
Есть ли вариант словеса, в которой подробно описывается, где он читает исходный файл из?
Возможно, обновленный источник ищут на цель?
SRP

AG123
Ср. 25 июля 2018 г., 7:00 утра
GNU имеет что -то под названием DDD
https: // www.гну.org/software/ddd/
Я не слишком уверен, будет ли это сработать с рукой / но если это произойдет, это вполне может быть довольно полезно

турбосквит
Чт 26 июля 2018 г. 15:43
DDD - передняя часть GDB.
Есть также немивер. Он работает лучше, чем DDD и не является передним концом для GDB. Я не уверен в его перекрестных возможностях, но в местной среде все работает нормально.

Моду
Чт, 2 августа 2018 г., 14:59
[турбосквит - Солнце 22 июля 2018 г. 20:55] - Я думаю, что я приближаюсь к проблеме, и это не библиотека RF22, но обработка прерывания синих таблеток.
Линия прерывания активна (низкая), но обработчик прерывания - внезапно - не вызывается.
Ты очень близко. Я был Та же самая проблема в другой библиотеке драйверов для моя собственная рамка коммуна.

TL; DR: Текущее решение: после каждого прерывания вызовите и проверьте, ожидается ли какое -либо прерывание, прежде чем двигаться дальше.