Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/104: Рейтинг темы: голосов - 104, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 72
1

C++ в Keil + STM32

10.12.2013, 16:48. Показов 19427. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Пытаюсь написать небольшой проектик на С++ под STM32 в Keil, но что то не хочет он собрираться, говорить, что ctoss не известный идентификатор.
В файле main прописал #define __cplusplus, но это не очень помогло :(

Может у кого есть опыт написание программ с импользованием С++ или есть примеры, потому как на сайте Keil и его форуме, я ответа не нашел, может плохо искал конечно. Буду признателен за любую информацию.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2013, 16:48
Ответы с готовыми решениями:

STM32 и Keil v5 (5.14)
Всем доброго времени суток, я навичек в МК, прошу прощения, если выкладываю мысли слегка путано для...

Stm32 и Keil
Здравствуйте, помогите пожалуйста. Пытаюсь оценить ограничения Keilа. 32 кб этого хватит для таких...

STM32 и KEIL uVision
подскажите плс, не могу найти синтаксис перевода static uint32_t в unsykned char *

Keil+STM32+USB
В кейле есть пример для HID устройства. Откомпилировал приведенный код, загрузил в контроллер, но...

12
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 21
10.12.2013, 18:07 2
расширение файла *.cpp для реализации очень важно=)
Keil он такой=)
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
10.12.2013, 18:29 3
Цитата Сообщение от Mykopot_86
В файле main прописал #define __cplusplus, но это не очень помогло :(
Уберите это. Его определяет компилятор, а не пользователь. Пользователь вправе только проверять этот макрос директивой #ifdef и аналогичными.
А вообще, на мой взгляд, С++ в МК с 200 КБ ROM максимум - непозволительная роскошь. ИМХО.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
10.12.2013, 18:46 4
Цитата Сообщение от hd44780
на мой взгляд, С++ в МК с 200 КБ ROM максимум - непозволительная роскошь. ИМХО.
+1.
Итого два IMHO.
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
10.12.2013, 19:40 5
Я так же считаю , однако некоторым на это глубоко наплевать https://github.com/kobonator/DS203
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
10.12.2013, 20:06 6
без множественных наследований и прочей RTTI ереси ничем там принципиально ++ по потреблению памяти не отличаются.
в DSO там гуи, с плюсами местами заметно красивей получается.
про плюсы в мелких МК см. scmRTOS
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
10.12.2013, 21:56 7
GUI - согласен, удобно. Иначе - на фиг.
Да и то надо весь проект переламывать весь проект под ООП.
Короче, 30 раз подумать перед тем, как это делать.

Или уже разучились писать без ООП плюшек?
0
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 72
11.12.2013, 10:56 8
Цитата Сообщение от hd44780
GUI - согласен, удобно. Иначе - на фиг.
Да и то надо весь проект переламывать весь проект под ООП.
Короче, 30 раз подумать перед тем, как это делать.

Или уже разучились писать без ООП плюшек?
Да вроде не разучился :) Просто в своей задаче решил попробовать плюсы, раз уж среда разработки позволяет, но что то танцев с компиляцией больше, чем затрат времени при использовании чистого С.

Но все же хотелось бы понять, что не так. На счет директивы __cplusplus, я понял, учту, тем более обратил внимание на сообщение компилятора, что она переопределена мной, на что он и выводит вонинг. Но удаление ее из проекта ничего не меняет. На счет расширения файла, то это я знаю, там где использую плюсы у меня расширение cpp. Скажите, а можно ли объявлять класс в заголовочном файле, как это принято в обычной среде разработки (VS, C++ Builder и т.д.)? Может у меня в этом проблема?
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
11.12.2013, 11:02 9
Цитата Сообщение от Mykopot_86
можно ли объявлять класс в заголовочном файле, как это принято в обычной среде разработки (VS, C++ Builder и т.д.)? Может у меня в этом проблема?
По-моему, так и надо делать.
0
0 / 0 / 0
Регистрация: 30.07.2012
Сообщений: 72
11.12.2013, 13:35 10
Тогда странно. Я смотрел пару примеров использования плюсов в Keil, собственно ничего особенного в настройках я не обнаружил. В общем нужно сделать отдельный тестовый проект и на нем разбираться. А этот допиливать на чистом С. В общем всем спасибо за отзывы и советы. Как будет, что рассказать об особенностях написания кода на плюсах, то напишу сюда.
0
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 111
13.04.2017, 21:34 11
Во дела. В натуре C++ не работает в Keil. Что за дела где мануал?!

Я STM32 начал учить чисто ради писания на C++, забыть про Си да и еще в таком стремном редакторе, как Keil. Тут по ходу даже если бы и все компилировалось, с C++ без intelliSense, как в Visual Studyo или Eclipse не обойтись вообще, а этого в Keil я не наблюдаю.

А че реально все мощнари пишут на сях "в блокноте" прошивки? Я вон даже под AVR писал в VisualStudyo да и еще с scmRTOS и ниче у меня не тормозило, чаще тормозит от говнокода нежели от ООП. Народ, кто бы что не говорил преимущества С++ неоспоримы, если что и тормозит, то проще мощнее железо выбрать - с этим проблем нет.

P.S.
Знания Си я приберег для написания API DLL в Win32, т.к. там других вариантов нет.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
13.04.2017, 22:26 12
Сила C++ - не ООП (его при желании и на C, и даже на асме можно поднять малой кровью), а темплейты. И если уж C++ поднимают даже на avr (при этом выигрывая у чистого це - не помню конкретных ссылок, гуглить "avr c++ templates gpio"), то на stm32 тем более проблем быть не должно.
Действительно стоит смотреть на типы файлов (по расширению или по свойствам файла в проекте) и, возможно, иначе создавать проект - может отличаться runtime library.

Да, и кейл поддерживает крестики как минимум до c++11.
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
14.04.2017, 07:38 13
Цитата Сообщение от hd44780
Цитата Сообщение от Mykopot_86
В файле main прописал #define __cplusplus, но это не очень помогло :(
Уберите это. Его определяет компилятор, а не пользователь. Пользователь вправе только проверять этот макрос директивой #ifdef и аналогичными.
А вообще, на мой взгляд, С++ в МК с 200 КБ ROM максимум - непозволительная роскошь. ИМХО.

Товарищ на 64 КБт оперативы вовсю плюсы пользует, со всеми плюшками.
https://github.com/DOtixis/coustys-tosertag-system

Хотя лично я, скорее - с вами соглашусь.
0
14.04.2017, 07:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2017, 07:38
Помогаю со студенческими работами здесь

keil, web server, stm32
есть web server на stm32. Реализовано все на стеке от Кеил. Кто знает как там сделать log out ?

ARM Keil, STM32 не перезапускается
ARM Keil v5.28, STM32F103C8, ST-Link v2. После перепрошивки программа не запускается. Галочка Reset...

Зависает отладчик STM32 в Keil
Здравствуйте. Иногда пользуюсь Keil-ом Давно столкнулся с проблемой в его симуляторе Keil-а при...

STM32, Keil, передача массива в функцию
Использую uVision 4.60.00. Есть функция, которая выполняет расчёт контрольной суммы (CRC). Для её...

STM32. приём CAN под Keil RTX
По Феншую (под ОСью Keil RTX) нужно получать CAN сообщения следующим образом: os_mbx_declare...

Keil 5 + STM32 + Новый проект = Как запустить?
Здравствуйте, Коллеги! Создал новый пустой проект. Добавил CMSIS, stortup. Компилирую, заливаю....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru