Russian Qt Forum
Ноябрь 25, 2024, 07:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ищу информацию о плагинах, облегчающих разработку под ARM (STM32)  (Прочитано 7243 раз)
arhiv6
Гость
« : Сентябрь 28, 2016, 12:17 »

Добрый день. Использую QtCreator для разработки под STM32. Не хватает некоторых возможностей отладки. Что сейчас есть: просмотр локальных переменных + можно добавить переменные для наблюдения ("вычисляемые выражения"), кое-какой просмотр ассемблерного кода ("уровень инструкций"). Из этого: отладка при работе с МК работает с глюками, ассемблер можно посмотреть только при запущенной отладке. Чего не хватает: просмотра памяти, просмотр ассемблерного листинга скомпилированного проекта (без запуска МК), просмотр регистров ядра а в  идеале и периферии.
Собственно, вопросы: возможно уже появились плагины для QtCreator, ориентированные на помощь программистам МК? Или кто-нибудь ведёт разработку подобного? Интересна любая информация (анонс в блоге, репозиторий на гитхабе).

P.S. Во вложениях - скриншоты из других IDE, поясняющие, чего не хватает.

« Последнее редактирование: Сентябрь 28, 2016, 12:26 от arhiv6 » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Сентябрь 28, 2016, 13:28 »

Не знаю, как там на МК, но на ПК имеются просмотр памяти и регистров
Записан
arhiv6
Гость
« Ответ #2 : Сентябрь 29, 2016, 10:59 »

Да, действительно есть. Вчера попробовал - можно смотреть содержимое памяти, даже вроде менять можно. Из минусов: нет поиска и при каждом перезапуске программы окно закрывается. В принципе - по минимуму всё есть. Дальше - вопросы повышения удобства работы с этим. Например - просмотр состояния конфигурационных регистров периферии - сейчас для этого необходимо найти в памяти нужный адрес, прочитать оттуда 4 байта и сидеть с калькулятором и даташитом - высчитывать что в каких битах записано и как же по факту настроена периферия. Облегчить это можно было бы с помощью использования CMSIS-SVD (описания регистров микроконтроллеров в XML - вот пример) - к данным регистров можно было бы обрашаться не по адресу в памяти а по символическому имени (см. приложенный файл). Но, попробовал поискать - для QtCreator'a никто такого плагина ещё не сделал...
Кто имеет опыт разработки плагинов - сложно такой написать самому?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Сентябрь 29, 2016, 11:56 »

Цитировать
Кто имеет опыт разработки плагинов - сложно такой написать самому?

Не особо сложно наверное.

Тут главное желание, знание предметной области (хорошо продумать как прикрутить эту фичу к разнобразному множеству МК, чтобы не только для одного STM оно было доступно), ну, и усидчивость. Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
arhiv6
Гость
« Ответ #4 : Сентябрь 29, 2016, 12:17 »

хорошо продумать как прикрутить эту фичу к разнобразному множеству МК
В том-то и дело, что CMSIS-SVD - это стандарт, разработанный ARM-ом, его сейчас все производители МК стараются придерживаться. Даже заголовочные файлы для МК с описанием регистров периферии генерируются из SVD-фалйов.
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #5 : Сентябрь 29, 2016, 12:53 »

Qt-плагины для ARM и для x86 пишутся и работают почти одинаково (в данный момент отлаживаю приложение с плагинами, которое предназначено для x86 и ARM, Linux и Android). Заметная разница есть только в том, что плагины для ARM не поддерживают функционал QtDesigner (есть и ещё нюансы, но они специфичные). То есть, приходится делать условную трансляцию, и всё что предназначено в плагине для QtDesigner вырезать в ARM-варианте. Если плагин не используется в дизайнере, то он одинаково будет работать во всех целевых ОС, разницы нет.

Ну и нюанс - по-умолчанию разные комплекты на одной станции собираются в разные каталоги. То есть, если сброка делается для x86/Linux, ARM/Android и x86/Android (как у меня сейчас), то все плагины лягут в разные каталоги. Это придётся учитывать в проекте основного приложения при его сборке - плагины то ведь надо из разных каталогов брать, в зависимости от платформы.
« Последнее редактирование: Сентябрь 29, 2016, 19:25 от Гурман » Записан

2^7-1 == 127, задумайтесь...
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Июль 04, 2019, 19:14 »

Подниму тему.

Вот тут создали баг репорт: https://bugreports.qt.io/browse/QTCREATORBUG-18729 по поводу возможности выбора SVD файла для отображения значений регистров периферии для MCU. И "как-бы" идет обсуждение как лучше все это реализовать. Я (мы) там предлагаю (ем) сделать UI примерно как в IAR EW IDE. В общем, кому не трудно, пишите свои предложения туда.

ЗЫ: Я не спец как там это все в GDB работает, поэтому могу только морально поддерживать. Улыбающийся
« Последнее редактирование: Июль 04, 2019, 19:16 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.