|
WinAVR - как оно?, Эффективность компилятора |
|
|
|
Jul 29 2005, 10:47
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892

|
Задумал я тут тулзы унифицировать окончательно. И понял, что альтернативы GNU / GCC нет - ибо, например, покупку IAR, считаю бессмысленной. Я просто понял, что оптимизация кода головой программера (и инвестирование денег в этого программера, и стимулирование оного (сделал хорошо - получи премию), разумеется, вздрачивание - куда же без него) дает больший эффект, чем выигрыш самого лучшего компилятора. Что касается среды - http://www.eclipse.org/ ок. С Армами все понятно. Там GCC рулит. Сами проверяли, инфы есть много на эту тему. Но вот для AVR (иногда надо делать "контроллеры светодиодов" за 1.5$) никогда не пробовал subj. Каково мнение народа? http://winavr.sourceforge.net/
|
|
|
|
|
 |
Ответов
|
May 29 2006, 13:51
|
Частый гость
 
Группа: Свой
Сообщений: 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);} }
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|