STM32CubeIDE (вопросы и ответы)

Чем дольше я пытаюсь понять как работать в этой среде разработки, тем чаще возникают разного рода вопросы.
На какие-то нахожу ответы в интернете, на какие-то нет…

Вот первый интересующий меня вопрос:
Создаю новый проект:

Выбираю чип, и далее указываю имя проекта и что он должен быть именно С++:

Конфигурируем выводы и создается новый проект. НО!
Он почему-то всё равно не С++ а просто С и ничего не знает о классах и других “плюшках” cpp… :frowning:

class_error

И как быть? Как её заставить на cpp переключиться? ))

Вчера не находил… Сегодня нашел…

Помог совет создать проект как С, потом конвертировать его в С++, потом переименовать через иде main.c в main.cpp…

рукамии все файлы проекта в cpp переименовать и все взлетит

типа так
image

Вроде бы с cpp разобрался, спасибо!


Теперь разбираюсь с размером скомпилированного файла. После компиляции получаю такой вывод:

stm32_size

Нашел вот такое описание:

«text» — это мой код, векторная таблица плюс константы.

«data» предназначены для инициализированных переменных и учитываются для RAM и FLASH. Компоновщик размещает данные во флэш-памяти, которые затем копируются из ПЗУ в ОЗУ в коде запуска.

«bss» предназначен для неинициализированных данных в ОЗУ, которые инициализируются нулем в коде запуска.

«dec» сумма text, data и bss.

Тем не менее в bss увеличился объем только после того, как неинициализированную переменную я инициализировал нулем и в основном цикле не написал ей прибавлять по единице.

Странно…

В итоге полный скомпилированный размер смотрим в dec?

Аааа…
Есть еще окно Build Analyzer…
Брррр, нипанятна еще пока )))

да, в окошке после компиляции общий размер прошивки как я понял.
По этим данным ориенитируюсь, что бы не вылезти за пределы в чипе.

Вроде более-менее тоже понятно стало. Спасибо.
А как 72МГц включить? Я пытаюсь ставить 72, оно мне только 64 предлагает, зараза )))

64MHz

А вводил изначально 72МГц…

Пока как ребёнок, не сильно понимаю иде и поэтому пальцем в небо, изучаю. ))

Не получится пальцем в небо…
Почитайте про тактирование своего МК + даташит = понять какие параметры / регистры включить.
Я тоже так начинал, да, гемморой :frowning:

1 лайк

Йоооолки-ИГОЛКИ !!!
А это прикольно!
Оказывается нужно сначала указать, что тактирование от внешнего кристала… Потом уже можно указать частоту внешнего тактирования (по умолчанию как и на платах синих таблеток - 8МГц), а там уже и 72МГц можно указать…

А мне нравится! Непонятно еще много чего, но я раньше побаивался STM32… А сейчас думаю - зря! Раньше бы начал, больше бы уже знал :smiley:

Балин…
Пока с этим игрался, что-то поломалось… ((((
Теперь не загружается ничего в МК… (((

Open On-Chip Debugger 0.11.0-rc2+dev-00037-g4c4dbd9 (2021-02-09-13:39)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.181759
Error: init mode failed (unable to connect to the target)

А таргет спокойно диодиком мигает… (( И ST-Link Utility подключается к нему…

Что сломал - так и не понял пока ))

Только шилось все и вот те на… ((( Балин блинский…

С загрузкой прошивок там вообще отдельная песня.
Когда был оригинальный чип stm + st link нормальный = проблем не было.
Перешёл на совместимые, забыл о загрузке из ide.
Теперь все ручками, компилируется, загружается через stm upload (так вроде называется, не уверен, не помню)
Так что с вашими ошибками не подскажу - гугл в помощь.

Да блин, непонятная ерунда. Только что вот (15 минут назад) все работало, теперь нет… (((

разобрался?

Какой там )))
Видишь до чего дошел - плата перестала прошиваться ))

Видимо в этом засада:

Target voltage: 3.184375

Только почему так? Все ж работало минут 20 назад…

А ST-Link Utility все нравится… Чего сломать успел - не понял.
Неужто тем, что новые (свежеприбывшие) платы к программатору подключал?..

ну с тактированием чета намутил наверное, покажи вкладку Clock Configuration.

Да вроде бы всё взад вернул…

Тактирование ну никак не влияет на загрузку софта.
Даже убитый кривыми руками чип, через st link можно погрузить, предварительно стереть содержимое флэш.

Так ST-Link Utility и CubeProgrammer нормально читают чип ))