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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Переход на Eclipse, А так же использование С++
Br.Misha
сообщение Nov 27 2010, 00:01
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Привет!
Обычно для написания программ под AVR я использовал AVR Studio + WinAVR. Но в АВРСтудио не нравилось очень плохая подсветка синтаксиса и то, что, к примеру, когда ставлю точку после структуры то не отображаються елементы структуры. Вот решил перейти на Eclipse.
Установил еклипс, плагин для AVR, создал новый проект на С, скомпилировал, сразу показало две ошибки: первая что компил хз что такое int main(void), вторую не помню. Ну я тут долго не разбирался так как при создании проекта была возможность выбора Си или С++, а так как в С++ больше возможностей (знаю так как програмлю в С++ билдер 2010), то я решил попробовать писать прошивки под AVR на С++. Ну вобщем то первые впечатлению очень даже не плохие. Не радует только одно: невозможно откомпилировать библиотеку V-USB:(, которой я ОЧЕНЬ часто пользуюсь, точей говоря, практически во всех проектах.

У меня 2 вопроса к форумчанам:
1. Сильно ли много ресурсов АВР съедает С++ по сравнению с обычным Си?
2. Можно ли как то перевести либу V-USB с Си на С++?

Спасибо!
Go to the top of the page
 
+Quote Post
follow_me
сообщение Nov 27 2010, 04:32
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



Цитата(Br.Misha @ Nov 27 2010, 02:01) *
1. Сильно ли много ресурсов АВР съедает С++ по сравнению с обычным Си?
2. Можно ли как то перевести либу V-USB с Си на С++?


1. Съедает прилично , вы заметите , но это не единственная проблема - пролемы начнутся с того что нужно самому реализовывать часть языка которая тупо отсутствует , это как минимум операторы new и delete, но там ещё куча вещей

2. Портировать с С на С++ не так тяжело , но может быть рутинно в связи с большим объемом кода который нужно портировать

Сообщение отредактировал IgorKossak - Nov 27 2010, 22:09
Причина редактирования: Излишнее цитирование
Go to the top of the page
 
+Quote Post
ARV
сообщение Nov 27 2010, 05:59
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



да вы прямо как тот новый русский, который, как только в машине бензин кончается, покупает новую! если компиляция не прошла - значит вы что-то сделали не так, но вместо поиска собственных оплошностей вы сразу решили платформу поменять!

я пользуюсь эклипсом года полтора - никаких проблем, кроме неспешной загрузки и индексации! тем не менее я очень доволен smile.gif рекомендую огласить точный список проблем, и наверняка вам подскажут, как их побороть в рамках С, без привлечения плюсов smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
_dem
сообщение Nov 27 2010, 07:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970



Цитата(Br.Misha @ Nov 27 2010, 03:01) *
1. Сильно ли много ресурсов АВР съедает С++ по сравнению с обычным Си?
2. Можно ли как то перевести либу V-USB с Си на С++?

Спасибо!


1. при вдумчивом подходе к коду и понимании, как оно внутри работает - разница не критична
2. extern "C"
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение Nov 27 2010, 10:07
Сообщение #5


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Если честно, то наиболее в С++ меня привлекает использование классов. Вообще в программировании под авр на Си мне е хватает только классов и булевых переменных.
Лан, почитал я в инете неоч хорошие отзывы а С++ в АВР. Решил всетаки писать на Си. Вчера у меня что то не получалось с мейкфайломСегодня вродь разобрался...
Go to the top of the page
 
+Quote Post
Fktrctq
сообщение Nov 27 2010, 11:18
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 10-11-05
Из: Таганрог
Пользователь №: 10 659



Возможно автору и так известно но все же: вполне сносное подобие класса можно реализовать на С используя структуры, с их же помощью и создавать булевы переменные как битовые структуры, ибо все равно меньше чем байт в ПЗУ или ОЗУ Вы не адресуете, а инструкций для битовых операций у АВР достаточно, и при грамотном подходе откомпилированный код будет очень компактным.
Из личного опыта: и я и многие знакомые-разработчики в свое время отказались от программирования на С++ под контроллеры, так что не наступайте на чужие грабли smile.gif))


--------------------
Вы пробовали выключить и снова включить?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 27 2010, 14:26
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Br.Misha @ Nov 27 2010, 14:07) *
Лан, почитал я в инете неоч хорошие отзывы а С++ в АВР.


Не вижу смысла загонять мощный экскаватор в детскую песочницу, в которой и обычным совочком управиться можно smile.gif
Go to the top of the page
 
+Quote Post
segment
сообщение Nov 27 2010, 20:04
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Использую С++, намного удобнее и понятнее код. В разумных пределах конечно использую.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 27 2010, 20:10
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Fktrctq @ Nov 27 2010, 13:18) *
Из личного опыта: и я и многие знакомые-разработчики в свое время отказались от программирования на С++ под контроллеры, так что не наступайте на чужие грабли smile.gif))
Из личного опыта: и я и многие знакомые-разработчики бесповоротно перешли с "голого" C на C++ под контроллеры. Так что не наступайте на чужие грабли - освойте инструмент на должном уровне и не слушайте советов тех, кому не хватило терпения/способностей.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 27 2010, 22:14
Сообщение #10


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Ой чувствую зарождение очередной религиозной войны.
Не заставляйте меня грохнуть тему.
Автор, дайте конкретный список вопросов, а не какие-нибудь абстракции.
Модератор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 28 2010, 07:09
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Br.Misha @ Nov 27 2010, 04:01) *
Но в АВРСтудио не нравилось очень плохая подсветка синтаксиса

a14.gif Фраза - супер. Понравилось.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 29 2010, 07:54
Сообщение #12


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Br.Misha @ Nov 27 2010, 13:07) *
Лан, почитал я в инете неоч хорошие отзывы а С++ в АВР.

Это наверно не в тех интернетах читали...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 30 2010, 08:00
Сообщение #13


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Часть темы о разворачивании отделил.
Go to the top of the page
 
+Quote Post
Br.Misha
сообщение Dec 5 2010, 02:16
Сообщение #14


Местный
***

Группа: Validating
Сообщений: 253
Регистрация: 21-12-08
Пользователь №: 42 646



Уже вродь разобрался с эклипсом, но вот появилась проблема.
Делаю проект с использованием V-USB. Там есть папка usbdrv, в аврстудио я заходил в опции, потом include directories и там добавлял эту папку, но где в эклипе это делать я не знаю.
Сверху хидеры подключил (#include "usbdrv/usbdrv.h", #include "usbdrv/requests.h"), но когда вызываю usbPoll(), то вылазит ../main.c:20: undefined reference to `usbPoll'.
Подскажите плиз как решить проблему.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 5 2010, 13:44
Сообщение #15


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Br.Misha @ Dec 5 2010, 05:16) *
когда вызываю usbPoll(), то вылазит ../main.c:20: undefined reference to `usbPoll'.

Если компилите плюсами, то сишные прототипы функций нужно заключать в скобки extern "C", уже писали сверху.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


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


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