реклама на сайте
подробности

 
 
> Работа c GCC в AVR Studio, Как использовать c++
Михаил_K
сообщение Aug 26 2009, 10:49
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Добрый день.
Установил на машину AVR Studio и WinAVR, после чего появилась вроде неплохая альтернатива Image Craft. Но вот создавая проект в AVR Studio у меня получается использовать язык C, но не получается использовать С++. Как можно это побороть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Qwertty
сообщение Aug 26 2009, 20:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Студия не работает с плюсовым компилятором. Нужно написатьсвой Makefile с вызовами соответствующего компилятора и подключить в Студии как внешний. А зачем в маленьком контроллере, где любимое дело подсчитывать такты C++? Проекты для AVR не настолько большие, чтобы ощутить прелести ООП. Но это естественно ИМХО.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 26 2009, 22:16
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Qwertty @ Aug 26 2009, 23:42) *
А зачем в маленьком контроллере, где любимое дело подсчитывать такты C++? Проекты для AVR не настолько большие, чтобы ощутить прелести ООП. Но это естественно ИМХО.
Ну так и пользоваться только минимумом от С++. "С с классами" тоже неплохо. ИМХО :-)

Посмотрите, например, это
http://electronix.ru/forum/index.php?s=&am...st&p=487831

С-шный "#define-макрос" NONATOMIC_BLOCK - нечто очень хитрое, ползующееся непереносимыми на другие компиляторы расширениями GCC.
Без этих расширений не выйдет написать макрос так, чтобы изнутри привязанного к нему блока кода можно было выйти по break/goto/return.
Можно сказать "это далеко не всегда нужно", а можно привыкнуть и коазывается, что это часто удобно.

Ну так вот на С++ это же самое пишется гораздо более переносимо, остаётся зависимость от архитектуры, но привязка к расширениям GCC пропадает.

Или вот
http://electronix.ru/forum/index.php?s=&am...st&p=547510
делаем шаблон, при помощи которого любой POD-тип можно "атомизировать" - любой доступ к нему будет производиться при запрещённых прерываниях. Иначе любое обращение пришлось бы оборачивать в ATOMIC_BLOCK(ATOMIC_RESTORESTATE)

А тут
http://electronix.ru/forum/index.php?s=&am...st&p=535341
наоборот - обёртка для volatile-переменной, которая в обработчике прерывания кеширует volatile-переменную во временой, все модификации в ней и при любом выходе из прерывания сохраняет значение назад в volatile-переменную.

(эти два примера - atomiser и cache_volatile - надо бы скрестить в один, научить cache_volatile<> принимать atomic<>)

По объёму кода/тактам - везде примеры компиляции, вроде и не проигрывает тому, что для того же функционала надо будет писать на С.
И так по мелочи можно программировать пусть и без ОО, но возможностями С++ сделать работу комфортнее.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Михаил_K   Работа c GCC в AVR Studio   Aug 26 2009, 10:49
- - Marian   "WinAVR is a suite of executable, open source...   Aug 26 2009, 16:07
- - kurtis   возможно, нужно попробовать переименовать файлы ...   Aug 26 2009, 19:18
||- - Qwertty   Цитата(ReAl @ Aug 27 2009, 02:16) А тут h...   Aug 28 2009, 20:29
||- - ReAl   Цитата(Qwertty @ Aug 28 2009, 23:29) Я ви...   Aug 28 2009, 22:10
|- - Михаил_K   Цитата(Qwertty @ Aug 27 2009, 00:42) Студ...   Aug 27 2009, 06:37
|- - ReAl   Цитата(Михаил_K @ Aug 27 2009, 09:37) Жал...   Aug 27 2009, 11:36
- - _Pasha   Цитата(Михаил_K @ Aug 27 2009, 09:37) Жал...   Aug 27 2009, 14:31
- - Legotron   Цитата(Михаил_K @ Aug 27 2009, 10:37) Жал...   Sep 9 2009, 06:26
- - Sirko   Подскажите пожалуйста на русском языке, как исполь...   Sep 15 2009, 23:03
|- - haker_fox   Цитата(Sirko @ Sep 16 2009, 08:03) Подска...   Sep 16 2009, 06:30
- - Serjio   Можно для старта воспользоваться визардом в ATMANA...   Sep 16 2009, 06:04
- - Sirko   ЦитатаНапример, это http://doc.mpv.ru/c++/ Что так...   Sep 16 2009, 08:39
- - mdmitry   Цитата(Sirko @ Sep 16 2009, 12:39) Пробле...   Sep 16 2009, 10:22


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 01:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016