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

 
 
51 страниц V  « < 7 8 9 10 11 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
RA3WUM
сообщение Mar 8 2009, 21:42
Сообщение #121


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

Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578



Подскажите, как прикрутить к эклипсу компилятор от iar?


--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх!
В. Кипелов, Беги за солнцем.
Go to the top of the page
 
+Quote Post
msalov
сообщение Mar 9 2009, 08:41
Сообщение #122


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(RA3WUM @ Mar 8 2009, 23:42) *
Подскажите, как прикрутить к эклипсу компилятор от iar?

http://www.iar.com/website1/1.0.1.0/79/1/
http://electronix.ru/forum/index.php?showtopic=34843
Go to the top of the page
 
+Quote Post
RA3WUM
сообщение Mar 10 2009, 13:32
Сообщение #123


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

Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578



Цитата(gotty @ Mar 9 2009, 11:41) *

Ни в одной из ссылок нет ответа на заданный вопрос.
Существует eclipse plugin for IAR Embedded Workbench AVR, но его рассылают только тем у кого есть лицензия.
Может кто-то поделится?


--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх!
В. Кипелов, Беги за солнцем.
Go to the top of the page
 
+Quote Post
msalov
сообщение Mar 10 2009, 14:18
Сообщение #124


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Цитата(RA3WUM @ Mar 10 2009, 15:32) *
Ни в одной из ссылок нет ответа на заданный вопрос.
Существует eclipse plugin for IAR Embedded Workbench AVR, но его рассылают только тем у кого есть лицензия.
Может кто-то поделится?

Если Вы ожидаете получать ответы по теме, рекомендую Вам научиться задавать вопросы. Если Вы со со мной не согласны - прочитайте свой вопрос и попытайтесь найти там слово AVR.
Go to the top of the page
 
+Quote Post
ZiB
сообщение Mar 11 2009, 08:58
Сообщение #125


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Всем, привет!
Перехожу с IAR-а на связку Eclipse + WinAVR. Пока возникло пару вопросов, может кто подскажет что нибудь.

1) Как в Eclipse установить "ключевые слова пользователя" (в IAR-е user keywords), необходимо для подсветки своих переименованных типов данных.
я просто уже привык писать вместо "unsigned char" Byte, Eclipse естественно его не "подсвечивает".

2) Есть обработчик прерываний из обработчика прерываний происходит вызов функции, как сказать компилятору что бы в обработчик прерываний сохранял только те регистры которые действительно используются (как в самом, так и во внешней функции), а не все? (уровень оптимизации менял, не помогло).
{Отвечаю сам себе. Вероятнее всего сохранение всех регистров происходит по причине нахождения функции во внешнем файле, который при компиляции собирается отдельно. В связи с чем новый вопрос, я использую плагин AVR-Eclipse и не понял пока как указать ему собрать всё вместе, а не по отдельности. В IAR-е такого не было в пределах проекта проблем не наблюдалось...}
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Mar 11 2009, 12:08
Сообщение #126


Начинающий профессионал
*****

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



на форуме бывает aesok, который большой спец по WinAvr.
Посмотрите документацию по gcc на предмет __attribute(naked)


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 11 2009, 12:21
Сообщение #127


;
******

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



Цитата(mdmitry @ Mar 11 2009, 16:08) *
Посмотрите документацию по gcc на предмет __attribute(naked)

Ага, будет Вам и кофе, и какао с чаем. Вот тута обговаривали:

http://electronix.ru/forum/index.php?showt...56739&st=-5
Go to the top of the page
 
+Quote Post
injen-d
сообщение Mar 11 2009, 18:03
Сообщение #128


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

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Пользуюсь Eclipse ganymede 3.4.0 + WinAVR
Проблема в следующем:
при использовании в программе константы, объявленной в мейк-файле, например:

в мейк-файле:
было #F_CPU = 18432000
поменял на F_CPU=10260000

в .cpp-файле:
#if F_CPU<15000000UL
...
#endif

эклипса почти постоянно тупит и при наведении курсора на F_CPU показывает одно из предыдущих значений этой константы на котором она (эклипса) почему-то "зациклилась" (ее особенно любимые значения 8000000 и 18432000, но наверное это случайность), изредка значение по непонятным законам обновляется. Соответственно весь код между #if и #endif затеняется как выключенный.
Но, компилится все как надо!
Все бы - ничего, но текст программы становится нечитабельным.
Может кто подскажет как это побороть?
В качестве временной меры переопределяю F_CPU в .cpp-файле тем же значением, что и в мейк-файле, но душа требует красоты...


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
Terminator
сообщение Mar 13 2009, 04:05
Сообщение #129


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



может обновить CDT?
Index->rebuild пробовали?
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 13 2009, 07:28
Сообщение #130


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(ZiB @ Mar 11 2009, 11:58) *
2) Есть обработчик прерываний из обработчика прерываний происходит вызов функции, как сказать компилятору что бы в обработчик прерываний сохранял только те регистры которые действительно используются (как в самом, так и во внешней функции), а не все? (уровень оптимизации менял, не помогло).


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

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

Есть одна очень простая аксиома: Обработчик прерывания должен выполнять только МИНИМАЛЬНО НЕОБХОДИМЫЕ действия и выполняться за как можно меньшее время. В идеале только работа с портами ввода вывода, обновление буферов с полученными/выведенными данными и установка флагов. Никакой обработки данных в прерывании!! Подготавливаться и обрабытываться данные далжны вне обработчика прерывания. Помните пока работает обработчик прерывания, все другие запросы прерываний обрабатываться не могут, и если обработчик выполняется очень долго, то может возникнуть ситуация когда эти запросы будут пропущены.

bb-offtopic.gif Книжки по программированию в которых даны примеры программ с нарушением этой аксиомы нужно сразу на костер.

Вызываю функцию в обработчике прерывания Вы скорее всего нарушаете эту аксиому.

Анатолий.

Сообщение отредактировал aesok - Mar 13 2009, 07:48
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 13 2009, 07:44
Сообщение #131


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

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



Цитата(injen-d @ Mar 11 2009, 21:03) *
эклипса почти постоянно тупит и при наведении курсора на F_CPU показывает одно из предыдущих значений этой константы на котором она (эклипса) почему-то "зациклилась"

Я думаю, она помнит значение с последней компиляции
А вот зачем постоянно менять F_CPU я, чесгря, не понимаю cranky.gif


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Mar 13 2009, 07:56
Сообщение #132


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(ZiB @ Mar 11 2009, 11:58) *
1) Как в Eclipse установить "ключевые слова пользователя" (в IAR-е user keywords), необходимо для подсветки своих переименованных типов данных.
я просто уже привык писать вместо "unsigned char" Byte, Eclipse естественно его не "подсвечивает".

Preferences \ C/C++ \ Editor \ Syntax coloring - очень широкие возможности по настройке подстветки.

Тока, надеюсь, у вас не так: #define Byte unsigned char ? wink.gif
Go to the top of the page
 
+Quote Post
ZiB
сообщение Mar 13 2009, 08:47
Сообщение #133


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Цитата(aesok @ Mar 13 2009, 13:28) *
Компилятор не знает какие регистры используются в вызываемой функции, и поэтому сохраняет все call-used регистры в обработчике прерывания если в нем есть вызов функции. Вызываемая функция может находиться в другом модуле, и компилятор не может про нее ничего знать. Даже если функции находятся в одном файле они компилируются независимо.

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

Есть одна очень простая аксиома: Обработчик прерывания должен выполнять только МИНИМАЛЬНО НЕОБХОДИМЫЕ действия и выполняться за как можно меньшее время. В идеале только работа с портами ввода вывода, обновление буферов с полученными/выведенными данными и установка флагов. Никакой обработки данных в прерывании!! Подготавливаться и обрабытываться данные далжны вне обработчика прерывания. Помните пока работает обработчик прерывания, все другие запросы прерываний обрабатываться не могут, и если обработчик выполняется очень долго, то может возникнуть ситуация когда эти запросы будут пропущены.

bb-offtopic.gif Книжки по программированию в которых даны примеры программ с нарушением этой аксиомы нужно сразу на костер.

Вызываю функцию в обработчике прерывания Вы скорее всего нарушаете эту аксиому.

Анатолий.

Спасибо за совет, но я уже разобрался сам.
Насчет аксиомы, не буду спорить, скажу просто что Вы не правы, так как все "эти" аксиомы нужно рассматривать в контексте конкретной задачи.
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 13 2009, 10:00
Сообщение #134


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(ZiB @ Mar 13 2009, 11:47) *
Насчет аксиомы, не буду спорить, скажу просто что Вы не правы, так как все "эти" аксиомы нужно рассматривать в контексте конкретной задачи.


Следование этой аксиоме уменьшает количество рассматриваемых контекстов при решении задачи.

Анатолий.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Mar 13 2009, 14:27
Сообщение #135


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(aesok @ Mar 13 2009, 15:28) *
Никакой обработки данных в прерывании!!

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


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

51 страниц V  « < 7 8 9 10 11 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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