Название: Удаленная отладка stm32 BareMetal Отправлено: kamil от Ноябрь 19, 2015, 17:30 Есть некоторый код, для микроконтроллера stm32, который хорошо было бы отлаживать в qt creator'e. Проект использует cmake для сборки, и пока неплохо работает в связке с qt creator. Пока можно компилировать и заливать на плату. Осталось сделать последний шаг - отладку.
Вроде бы сделал как в туториолах в интернетах, но что-то он не так работает. Приведу тут все настройки. openocd server: (http://zaripov.net/share/qt/1.png) device: (http://zaripov.net/share/qt/2.png) gdb client: (http://zaripov.net/share/qt/3.png) stm32 kit: (http://zaripov.net/share/qt/4.png) project: (http://zaripov.net/share/qt/5.png) Но в данном случае при вызове дебага или при нажатии на F5 ничего не происходит, ни ошибок, на сообщений, только в Application output: Код: Debugging starts И все. При этом если запустить openocd вручную: (http://zaripov.net/share/qt/7.png) И подключиться к нему по Debug->Start Debugging->Attach to Running Debug Server: (http://zaripov.net/share/qt/6.png) То он нормально соединяется и отлаживает нормально. Что я делаю не так? Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kuzulis от Ноябрь 19, 2015, 18:48 Никто не проверял работу с CMake (по крайней мере я). Оно точно работало с QBS и фейковым QMake, но про CMake никто не заявлял. Как вариант, попробуй PIPE режим.
UPD: Посмотри что выводится в Debugger View (QtCreator->Window->Views->Debugger View или как-то так). UPD2: И выложи-ка минимальный CMake проект (просто с main.cpp и стартап файлом без использования всякой периферии и прочего). Если будет время - я могу посмотреть. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kamil от Ноябрь 20, 2015, 02:24 Никто не проверял работу с CMake (по крайней мере я). Оно точно работало с QBS и фейковым QMake, но про CMake никто не заявлял. Как вариант, попробуй PIPE режим. UPD: Посмотри что выводится в Debugger View (QtCreator->Window->Views->Debugger View или как-то так). UPD2: И выложи-ка минимальный CMake проект (просто с main.cpp и стартап файлом без использования всякой периферии и прочего). Если будет время - я могу посмотреть. Тут выложил простейший компилируемый проект из одного main.c: https://drive.google.com/folderview?id=0By2N30gBjyToVzE5bUxNeWtHdFk&usp=sharing Что выводит Debugger View пока не могу - пока платы нет под рукой. Завтра выложу результ. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kuzulis от Ноябрь 21, 2015, 13:12 Что-то у меня вообще ничего не работает с stm32f4discovery (креатор крешится), даже с QBS.. Возможно что-то поломали.. или это из-за того что у меня Windows 10.. я вообще без понятия в чем дело...
UPD: Даже старые версии креатора (3.4.x) тоже крешатся.. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: Old от Ноябрь 21, 2015, 18:19 Но в данном случае при вызове дебага или при нажатии на F5 ничего не происходит, ни ошибок, на сообщений, только в Application output: Зайдите на вкладку настройки параметров проекта (Project) -> подзакладка запуска (Run) -> конфигурация запускаКод: Debugging starts и выберите запуск вашего проекта через сервер GDB или аппаратный отладчик. И все будет работать. По крайней мере у меня в linux все работает с последним креатером и CMake. :) Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kuzulis от Ноябрь 23, 2015, 14:31 Сейчас проверил с QtCreator 3.6.x (самосборный) в связке с QBS на Windows 8.1 x32 - все работает...
UPD: И также все работает в QtCreator 3.5.1 (оффициальный) на Windows 8.1 x32 хосте. UPD2: А по поводу CMake примера - я даже не смог его открыть (я вообще не использую CMake, поэтому не знаю/забыл как там надо). Я просто скачал все файлы и папочки (main.c , CMakeLists.txt и tools/) и попробовал открыть.. Креатор спросил о выборе генератора, я выбрал "Unix generator (ARM)", и жмакнул на "Run CMake"... оно мне выдало сто-пицот ошибок. Итого: CMake в топку! Нет времени разбираться что там и как (жуйте кактус сами). ;) Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kamil от Ноябрь 23, 2015, 15:44 Сейчас проверил с QtCreator 3.6.x (самосборный) в связке с QBS на Windows 8.1 x32 - все работает... UPD: И также все работает в QtCreator 3.5.1 (оффициальный) на Windows 8.1 x32 хосте. UPD2: А по поводу CMake примера - я даже не смог его открыть (я вообще не использую CMake, поэтому не знаю/забыл как там надо). Я просто скачал все файлы и папочки (main.c , CMakeLists.txt и tools/) и попробовал открыть.. Креатор спросил о выборе генератора, я выбрал "Unix generator (ARM)", и жмакнул на "Run CMake"... оно мне выдало сто-пицот ошибок. Итого: CMake в топку! Нет времени разбираться что там и как (жуйте кактус сами). ;) Да, Cmake входит в голову не сразу. Ничего страшного, разжую. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kamil от Ноябрь 23, 2015, 15:53 Но в данном случае при вызове дебага или при нажатии на F5 ничего не происходит, ни ошибок, на сообщений, только в Application output: Зайдите на вкладку настройки параметров проекта (Project) -> подзакладка запуска (Run) -> конфигурация запускаКод: Debugging starts и выберите запуск вашего проекта через сервер GDB или аппаратный отладчик. И все будет работать. По крайней мере у меня в linux все работает с последним креатером и CMake. :) Да, точно. Теперь все работает. Только правда крашится при попытке остановится или приостановится, но с этим постараюсь разобраться сам. UPD: если у кого тоже будет крашится: надо зачекать Tools->Options...->GDB Extended->Use asynchronus mode to control the inferior. UPD2: может кто знает, можно ли автоматически закрывать gdb сервер автоматически, после завершения отладки? А то сейчас openocd остается запущенным и подключенным к контроллеру после остановка отладки. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kuzulis от Ноябрь 23, 2015, 16:56 Цитировать может кто знает, можно ли автоматически закрывать gdb сервер автоматически Неа, еще не реализовано... хотя в Linux оно останавливает openocd (как-то само собой работает). Попробуй PIPE режим, как вариант. Название: Re: Удаленная отладка stm32 BareMetal Отправлено: Old от Ноябрь 23, 2015, 19:34 UPD2: может кто знает, можно ли автоматически закрывать gdb сервер автоматически, после завершения отладки? А то сейчас openocd остается запущенным и подключенным к контроллеру после остановка отладки. Под linux все закрывается. И при запуске openocd в режиме tcp/ip, и через пайпы.Название: Re: Удаленная отладка stm32 BareMetal Отправлено: kuzulis от Ноябрь 29, 2015, 19:02 Цитировать может кто знает, можно ли автоматически закрывать gdb сервер автоматически Вот, я вроде пофиксил: https://codereview.qt-project.org/142408 Если повезет, то будет в 3.6. ;) |