roboforum.ru

Технический форум по робототехнике.

Помогите в Си AVR

Re: Помогите в Си AVR

Vooon » 07 июл 2011, 15:06

ЭЭЭ! cvavr чистый???

Re: Помогите в Си AVR

=DeaD= » 07 июл 2011, 15:20

CVAVR чистый Си, а gcc - грязный Си чтоли? :shock:

Недавно же разбирали побитовый доступ, что он не в синтаксисе Си?

Re: Помогите в Си AVR

Romikgy » 07 июл 2011, 16:43

нет , не грязный , а линухподобный....

Добавлено спустя 53 секунды:
=DeaD= писал(а):Недавно же разбирали побитовый доступ, что он не в синтаксисе Си?

чет упустил эту дисскусию ((

Re: Помогите в Си AVR

osc » 07 июл 2011, 17:28

В чём его линухоподобность?

Re: Помогите в Си AVR

EasyTech » 07 июл 2011, 18:03

Как писал админ easyelectronics xон совместим с этой платформой.
Выбрал WinAVR т.к. у easyelectronics всё расписано до мелочей и примеров дофига))
По описанию WinAVR далеко идет вперед))

Re: Помогите в Си AVR

Romikgy » 07 июл 2011, 18:28

osc писал(а):В чём его линухоподобность?

в gcc )))

Re: Помогите в Си AVR

Vooon » 08 июл 2011, 08:16

Это не ответ, давай контретно.

Re: Помогите в Си AVR

Michael_K » 08 июл 2011, 10:04

Да чего там спорить. стандартные "компьютерные" яп (практически любые вообще) плохо подходят для микроконтроллеров с гарвардской архитектурой, поэтому и возникают всякие "примочки" и расширения.

То же самое касается и традиционного построения компилятора - например разделения компилятора и линкера - эта техника очень сильно мешает оптимизации кода (что в случае МК гораздо критичнее, чем в случае компа).

Re: Помогите в Си AVR

=DeaD= » 08 июл 2011, 10:23

А какая оптимизация имеется в виду - производительности или объема программы?

Re: Помогите в Си AVR

Romikgy » 08 июл 2011, 10:26

Vooon писал(а):Это не ответ, давай контретно.

сильно конкретно не могу )))
компилятор winavr был портирован со стандартного gcc от юникс\линух систем, поэтому в нем многое осталось от этого компилятора, и это понятно .... а вот стиль написания , используя gcc мне (субъективно) не сильно нравится...(до сих пор у меня дрож от описания прерываний на winavr) хотя в нем и больше свобод для реализации разных зае...в
в общем как я и говорил выше писать можно на любом языке ...
PS не относится к компилятору но к спору winavr и cvavr , у cvavr очень хороший визард , это очень удобно для начинающих , кто не совсем разобрался с переферией МК , за это ему огромный плюс)))

Re: Помогите в Си AVR

galex1981 » 08 июл 2011, 10:42

А чем линуксовые компиляторы плохи? Если вся ОС собрана с их помошью и глюков в них меньше чем в любых других

Re: Помогите в Си AVR

=DeaD= » 08 июл 2011, 10:56

Как вообще Си\Си++ компилятор линукс-подобным? Может библиотеки? Среда разработки?
Или что имеется в виду? Возможность запуска из командной строки?

Re: Помогите в Си AVR

Michael_K » 08 июл 2011, 11:06

=DeaD= писал(а):А какая оптимизация имеется в виду - производительности или объема программы?

а любая. Вообще возможности оптимизации ограничены, когда компилятор не знает, как именно будет использован объектный модуль, а линкер не знает, что написано в исходнике, не умеет перелопачивать объектники, и не делает сквозную оптимизацию.

Добавлено спустя 6 минут 45 секунд:
Ну вот недавно разбирали код для пика и авр. В пике компилятор нагородил фигню, потому что стэк у пика неадресуемый, и компилятор создал программный стэк для локальных переменных. Вдруг там где-нибудь рекурсия всплывет. Или эта же функция будет использоваться в прерывании в другом модуле.

В авр компилятор создал функции, а их копии инлайнил. Он мог бы просто инлайнить и не оставлять их отдельные копии, но он не знал, вдруг в другом объектнике потребуется указатель на эту функцию. И т.п.

Такой фигни очень много.

Ну а как описать расположенный во флэш массив указателей на строки расположенные в рам (или наоборот, или все во флэш) - можно вообще поэмы писать :)

Re: Помогите в Си AVR

=DeaD= » 08 июл 2011, 11:12

Это вроде всё касается объемов получаемой программы? Или я упустил и где-то пострадала производительность?

Re: Помогите в Си AVR

Michael_K » 08 июл 2011, 11:20

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


Rambler\'s Top100 Mail.ru counter