Комментарии 36
И самый простой вариант, который Я не буду рассматривать в статье: ST CubeIDE.
Тут кому что удобнее и по сути это дело вкуса.
Можете немного подробнее раскрыть чем же установка и настройка целого набора программ и прочих средств разработки удобнее, чем установка установка одной среды, где уже производителем настроено всё? Спрашиваю на полном серьёзе, не с целью наехать. Может быть мне тоже такое надо, но я просто не понимаю плюсов такого решения.
Эклипс - не очень.
Да, я таким же вопросом задавался. Но мной руководил скорее инженерный интерес и желание разобарться. А если говорить про полезность -она, как мне кажется, заключается в том, что после того как разобрался с детальной настройкой инструментариев и способами их связывания воедино в среду разработки - можно отладить практически любую проблему которая может случиться в ходе работы. Без разбора этого всего хозяйства - я не понимал как выстроен тот же CubeIDE, из чего он состоит и т.д.
А тут после того как расковырял - у меня есть возможность понять, куда рыть в случае чего, или как минимум есть возможность организовать себе альтернативу в случае если CubeIDE по каким либо причинам мне будет недоступен. Ну и вишенка на торте - подобный разбор открывает возможность сделать потом переход на китайские аналоги, с четким пониманием, что нужно сделать и что требуется для адаптации текущей среды к ним.
Не в контексте именно разработки, но да, мне такое надо. Спасибо.
Не только вам так надо. И именно как отмечено выше в комментарии - среда разработки строится из отдельных компонент и не ограничена, или даже лучше сказать не использует, прориетарные системы заточенные на определенные контроллеры. И да разработчики стараются точно знать что происходит на каждом этапе и иметь эту возможность на протяжении всего жизненного цикла продукта. Кстати недавний пример - популярная среда разработки Keil для армов уже не так популярна как я слышал.
Установка одной среды не спасает при необходимости делать сборку на тех же Github Actions. Я как-то раз настраивал сборку при помощи headless eclipse одной вендорской IDE, и это было самым большим стимулом перейти окончательно на gcc+cmake+vscode
Как минимум VS Code поддерживает кучу плагинов, типа cmake, Ctest, pvs stduio, asciidoc, ouml и так далее, все можно делать в одной среде, и код и требования, и дизайн и юнит тесты и проверка статический анализатором и так далее.
Один раз настроил и дальше уже удобно и просто.
-наличие make cmake + gcc проектов не от stm , проекты на других платформах и языках
-куда более шустрый и функциональный интерфейс редактора кода чем в эклпипсе
-обнаружил в vscode в качестве плагина просто изумительный uart терминал
сколь я помню, учетку новую теперь тоже создать не так просто. Мою забанили/удалили, восстановить/создать новую не получилось, хотя почта была совсем не .ru
Кажется что проблем с регистрацией gmail.com почты у меня не возникло, а при авторизации в CubeIDE нет такой сумасшедшей проверки геопозиции и должен пустить. Пока что.
Аналогично. Старую учётку забанили. При попытке регистрации с gmail.com либо не присылают письмо, либо присылают с уже протухшей ссылкой.
Немного изучив вопрос я нашел интересным для себя интересным плагин для отладки (и он, как оказалось, единственный) Cortex-Debug.
Есть еще Native-Debug, по сути то же самое, никаких преимуществ. Из полезного, но упущенного я бы отметил RTOS-Views плагин
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8|GPIO_PIN_9);
HAL_Delay(1000);
/* USER CODE BEGIN 3 */
}
Лучше размещать код в другом месте, т.к. при переформировании проекта в CubeIDE расположенный таким образом будет стерт.
while (1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8|GPIO_PIN_9);
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8|GPIO_PIN_9);
HAL_Delay(1000);
}
Подскажите, не много не понял. CubeIDE и Eclipse это разве не одно и тоже? Ну в том плане, что CubeIDE это преднастроенный Exlipse? Есть ли смысл морочиться именно с настройкой Eclipse?
Хотелось бы ещё увидеть настройку SWV( serial wire viever) в связке openocd + vscode. Я долго мучился, но так и не смог поднять этот механизм, хотя он крайне полезен при разработке для отладки т.к. есть способ печати дебага из коробки и не надо занимать другие интерфейсы.
Ещё есть вопрос, почему rdimon, a не файл с заглушками для системных вызовов?
У меня тоже есть текст про настройку Toolchain для ARM-Cortex-Mxx
https://habr.com/ru/articles/673522/
Отличная работа!
При сборке stm утиля возникла небольшая неприятность:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find libusb (missing: LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/Findlibusb.cmake:138 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:98 (find_package)
Но я её решил заклинанием из интернетов )
sudo apt-get install libusb-1.0-0-dev
Отличная работа!
При сборке stm утиля возникла небольшая неприятность:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find libusb (missing: LIBUSB_INCLUDE_DIR LIBUSB_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/Findlibusb.cmake:138 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:98 (find_package)
Но я её решил заклинанием из интернетов )
sudo apt-get install libusb-1.0-0-dev
Отличная работа, спасибо!
Особенно про python 3.8 для запуска GDB. Сам столько времени на это потратил, хорошо на форуме подсказали.
st-util запускается, GDB подключается, но потом скипает соединение. В чем может быть дело?
$ st-util
st-util 1.8.0-32-g32ce4bf
2024-06-04T09:43:34 INFO common.c: STM32F76x_F77x: 512 KiB SRAM, 2048 KiB flash in at least 2 KiB pages.
2024-06-04T09:43:34 INFO gdb-server.c: Listening at *:4242...
2024-06-04T09:44:25 INFO common.c: STM32F76x_F77x: 512 KiB SRAM, 2048 KiB flash in at least 2 KiB pages.
2024-06-04T09:44:25 INFO gdb-server.c: Found 8 hw breakpoint registers
2024-06-04T09:44:25 INFO gdb-server.c: Chip clidr: 09000003, I-Cache: off, D-Cache: off
2024-06-04T09:44:25 INFO gdb-server.c: cache: LoUU: 1, LoC: 1, LoUIS: 0
2024-06-04T09:44:25 INFO gdb-server.c: cache: ctr: 8303c003, DminLine: 32 bytes, IminLine: 32 bytes
2024-06-04T09:44:25 INFO gdb-server.c: D-Cache L0: 2024-06-04T09:44:25 INFO gdb-server.c: f00fe019 LineSize: 8, ways: 4, sets: 128 (width: 12)
2024-06-04T09:44:25 INFO gdb-server.c: I-Cache L0: 2024-06-04T09:44:25 INFO gdb-server.c: f01fe009 LineSize: 8, ways: 2, sets: 256 (width: 13)
2024-06-04T09:44:25 INFO gdb-server.c: GDB connected.
2024-06-04T09:44:26 ERROR gdb-server.c: cannot recv: -2

Есть ли возможность где посмотреть битовую детализацию регистра CPACR (Coprocessor Access Control Register, base addr: 0xE000ED88) для микропроцессора ARM Cortex M4?
В документе ARM Cortex-M4 Processor (Revision: r0p1) Technical Reference Manual отсутствует структура битового поля для регистра CPACR.
STM32. Подготавливаем среду разработки в Linux