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

 
 
> WinAVR - как оно?, Эффективность компилятора
Evgeny_CD
сообщение Jul 29 2005, 10:47
Сообщение #1


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Задумал я тут тулзы унифицировать окончательно. И понял, что альтернативы GNU / GCC нет - ибо, например, покупку IAR, считаю бессмысленной. Я просто понял, что оптимизация кода головой программера (и инвестирование денег в этого программера, и стимулирование оного (сделал хорошо - получи премию), разумеется, вздрачивание - куда же без него) дает больший эффект, чем выигрыш самого лучшего компилятора.

Что касается среды - http://www.eclipse.org/ ок.

С Армами все понятно. Там GCC рулит. Сами проверяли, инфы есть много на эту тему.

Но вот для AVR (иногда надо делать "контроллеры светодиодов" за 1.5$) никогда не пробовал subj. Каково мнение народа?

http://winavr.sourceforge.net/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_4afc_
сообщение May 29 2006, 12:54
Сообщение #2


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Я тоже пользуюсь только им, но раньше ( а скорее всего и сейчас) у него была одна особенность - он хранил все данные в RAM перенося их туда из FLASH в начальном коде. Раньше можно было только строки (char) хранить во FLASH. Причём в принципе заставить хранить там данные можно, а вот заставить взять средствами си - не получалось, он не использовал код LPM и брал соответственно значение из RAM.

При изменении переменных из прерываний не забывайте про volatile.

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

(Пример - обработка внешнего последовательного АЦП на си потребовала бы поставить Atmega48 на 80МГц, периписав код на асм с разделением регистров - уложился в 10 wink.gif
Go to the top of the page
 
+Quote Post
msn
сообщение May 29 2006, 13:51
Сообщение #3


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

Группа: Свой
Сообщений: 126
Регистрация: 1-01-06
Из: Украина, Киев
Пользователь №: 12 759



Цитата(_4afc_ @ May 29 2006, 15:54) *
Я тоже пользуюсь только им, но раньше ( а скорее всего и сейчас) у него была одна особенность - он хранил все данные в RAM перенося их туда из FLASH в начальном коде. Раньше можно было только строки (char) хранить во FLASH. Причём в принципе заставить хранить там данные можно, а вот заставить взять средствами си - не получалось, он не использовал код LPM и брал соответственно значение из RAM.

Сейчас вроде все нормально:
Код
prog_char ansi_rus[64]={0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4,    // Таблица перекодировки таблицы ЖКИ в соответствии с таблицей ANSI
...
                        0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7};

...

void print_char(u8_t ch)
{
if (lcd_x>(LCD_COLUMN-1) || lcd_y>(LCD_ROW-1)) {return;}   // Если за пределами ЖКИ
if (ch>=0xc0 && !fl_no_use_ansi_rus) {ch=pgm_read_byte(&ansi_rus[ch-0xc0]);}
lcd_wr_data(ch);                                           // Вывести символ по текущим координатам
lcd_x++;                                                   // Передвигаемся на следующие знакоместо
}


Или

Код
const char txtErrorMaster__0[] PROGMEM = "  Исход. состояние  ";// 0 Текстовое представлениие произошедшей аврии / предупреждения
const char txtErrorMaster__1[] PROGMEM = "   Отказ модуля 1   ";// 1
const char txtErrorMaster__2[] PROGMEM = "   Отказ модуля 2   ";// 2
....

PGM_P txtErorrMaster[] = {txtErrorMaster__0,                    // Буфер для поиндексного доступа
                          txtErrorMaster__1,
                          txtErrorMaster__2,
....
};

....


void print_str(PGM_P addr)
{
u8_t ch;
while ((ch=pgm_read_byte(addr++))) {print_char(ch);}
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Evgeny_CD   WinAVR - как оно?   Jul 29 2005, 10:47
- - pulsar-17   Мнение хорошее. Компилятор делает хороший код, но ...   Jul 29 2005, 13:56
- - ReAl   Цитата(Evgeny_CD @ Jul 29 2005, 13:47)Задумал...   Jul 29 2005, 19:54
- - impatt   avr-gcc штука классная, причём не надо тырить у IA...   Aug 16 2005, 07:51
- - sensor_ua   Вот пробую под eclipse AVR-GCC4.0.2 сборки klen.or...   Jan 11 2006, 09:38
- - misyachniy   impatt В GCC есть SIGNAL () и INTERRUPT(). Разниц...   Jan 13 2006, 15:12
|- - impatt   Цитата(misyachniy @ Jan 13 2006, 18:12) i...   May 17 2006, 05:02
- - m16   Цитата([banned] @ May 17 2006, 10...   May 17 2006, 06:31
- - beer_warrior   Пользуюсь с 2003 года.Жалоб нет. Надо немножко при...   May 17 2006, 14:55
- - halfdoom   Цитата(Evgeny_CD @ Jul 29 2005, 13:47) И ...   May 18 2006, 09:40
|- - SasaVitebsk   Цитата(halfdoom @ May 18 2006, 12:40) Цит...   May 27 2006, 13:59
|- - halfdoom   Цитата(SasaVitebsk @ May 27 2006, 16:59) ...   Jun 2 2006, 06:51
- - Laksus   Цитатаmisyachniy Jan 13 2006, 18:12 impatt В GCC е...   May 26 2006, 22:52
|- - msn   Пользуюсь больше 4-х лет. Особых замечаний не было...   May 26 2006, 23:10
|- - msn   Пользуюсь больше 4-х лет. Особых замечаний не было...   May 26 2006, 23:10
|- - aesok   Цитата(msn @ May 27 2006, 02:10) .... до ...   May 27 2006, 18:33
- - SpiritDance   А собственнно в чем вопрос у автора, если альтерна...   May 27 2006, 15:14
- - klen   Вставлю вой пятачек с двумя дырачками как выразил...   May 27 2006, 17:29
- - beer_warrior   ЦитатаПричём в принципе заставить хранить там данн...   May 29 2006, 13:52
- - defunct   Цитата(_4afc_ @ May 29 2006, 15:54) Ну и ...   May 29 2006, 14:10
|- - _4afc_   Цитата(defunct @ May 29 2006, 18:10) Цита...   Jun 2 2006, 09:45
- - beer_warrior   ЦитатаСкорее всего это произошло из за того, что в...   May 29 2006, 14:42
- - sff   Я WinAVR использую года 2 и за это время сложилось...   May 29 2006, 15:22
- - pitt   "Но вот для AVR (иногда надо делать "кон...   Jun 2 2006, 00:22
- - GetSmart   Неужто лучше ImageCraft ?   Jun 2 2006, 00:51
|- - klen   Цитата(GetSmart @ Jun 2 2006, 04:51) Неуж...   Jun 2 2006, 05:38
- - pitt   Самый сер'езный нрдостаток AVRGCC, с моей точк...   Jun 2 2006, 10:53
- - beer_warrior   Цитатаотсутствие прагмы управления оптимизацией. А...   Jun 2 2006, 12:10
|- - pitt   Цитата(beer_warrior @ Jun 2 2006, 08:10) ...   Jun 2 2006, 12:54
- - WHALE   Цитата(_4afc_ @ Jun 2 2006, 13:45) Больше...   Jun 2 2006, 12:32
- - beer_warrior   ЦитатаТеперь представем себе, что она нам необходи...   Jun 2 2006, 13:07
|- - pitt   Цитата(beer_warrior @ Jun 2 2006, 09:07) ...   Jun 2 2006, 13:59
- - pitt   avrfreaks   Jun 2 2006, 16:56
- - Igor_U   Помогите разобраться. Не собирается проект. Линков...   Jun 8 2006, 07:11


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

 


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


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