cvv 0 3 февраля, 2008 Опубликовано 3 февраля, 2008 · Жалоба Вобщем после удачной компиляции и прошивки схема перестала работать. Такое впечатление что IAR выполнил какую-то неявную дополнительную настройку или что-то подобное подскажите с чего начать разруливать ситуацию ато в микроконтроллерах я новичок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 3 февраля, 2008 Опубликовано 3 февраля, 2008 · Жалоба Такое впечатление что IAR выполнил какую-то неявную дополнительную настройку или что-то подобноеВ IAR иначе ("прямее") организована работа с данными в флеш и eeprom. Ищите в коде ключевые слова __eeprom, __flash, читайте WinAVR/DOC/avr-libc/FAQ.html и WinAVR/DOC/avr-libc/index.html. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cvv 0 3 февраля, 2008 Опубликовано 3 февраля, 2008 · Жалоба В IAR иначе ("прямее") организована работа с данными в флеш и eeprom. Ищите в коде ключевые слова __eeprom, __flash, читайте WinAVR/DOC/avr-libc/FAQ.html и WinAVR/DOC/avr-libc/index.html. ключевые слова eeprom && flash заменил на аналоги GCC. кстати пользую не WinAVR а cdk4avr который в частности содержит более свежий GCC ключевые слова eeprom && flash заменил на аналоги GCC. но Это повлияло только на то что прошивки стали влазить во флеш и епром соответсвенно. Пишу для ATMega48 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 3 февраля, 2008 Опубликовано 3 февраля, 2008 · Жалоба ключевые слова eeprom && flash заменил на аналоги GCC. но Это повлияло только на то что прошивки стали влазить во флеш и епром соответсвенно. Прочитайте FAQ по приведенной мной ссылке в папке документации WinAVR (или где в вашем пакете лежит документация на avr-libc). Замены ключевых слов недостаточно - надо изменить и обращения к таким переменным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 3 февраля, 2008 Опубликовано 3 февраля, 2008 · Жалоба кстати пользую не WinAVR а cdk4avr который в частности содержит более свежий GCC По поиску cdk4avr ссылки на середину 2007 г, а WinAvr 2007-12-20 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
733259 0 4 февраля, 2008 Опубликовано 4 февраля, 2008 · Жалоба По поиску cdk4avr ссылки на середину 2007 г, а WinAvr 2007-12-20В последних WinAvr gcc 4.x.x - ИМХО не лучший вариант, код больше, оптимизация хуже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cvv 0 4 февраля, 2008 Опубликовано 4 февраля, 2008 · Жалоба В последних WinAvr gcc 4.x.x - ИМХО не лучший вариант, код больше, оптимизация хуже. Поддерживаю... gcc 4.x.x - редкий sucks а вообшето я поначалу собирался сам скомпилить gcc но потом передумал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
733259 0 4 февраля, 2008 Опубликовано 4 февраля, 2008 · Жалоба а вообшето я поначалу собирался сам скомпилить gcc но потом передумал.Может стоит собрать gcc 3.4.6 и новые binutils для собственного спокойствия от багов (в cdk4avr вроде 3.4.5). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cvv 0 4 февраля, 2008 Опубликовано 4 февраля, 2008 · Жалоба Может стоит собрать gcc 3.4.6 и новые binutils для собственного спокойствия от багов (в cdk4avr вроде 3.4.5). Если необходимость встанет ребром то придется... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cvv 0 4 февраля, 2008 Опубликовано 4 февраля, 2008 · Жалоба * Главная проблема была в кривизне прошивки - она не стартовала до получения команды с последовательного порта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gte 6 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба Надо разместить таблицу с двухбайтными значениями в памяти программ (WINAVR). Почитал FAQ, конференцию, Яндекс. Написал следующий код. При трансляции ошибок нет. Значения с таблицы не считывет. { unsigned int dac_cod = 0; const unsigned int *data = table_v; uint16_t table_v[] = {0xAAAA,0x0600,0x5B00,0x4F00,0x6600,0x6D00,0x7D00,0x0700,0x7F00,0x6F00,0x8000,0x 7D00,0x0700,0x7F00,0x6F00,0xAAAA}; dac_cod =pgm_read_word(data); } Где ошибка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба Значения с таблицы не считывет. uint16_t table_v[] = {0xAAAA,0x0600,0x5B00,0x4F00,0x6600,0x6D00,0x7D00,0x0700,0x7F00,0x6F00,0x8000,0x 7D00,0x0700,0x7F00,0x6F00,0xAAAA}; Где ошибка? const uint16_t table_v[] PROGMEM = {0xAAAA,0x0600,0x5B00,0x4F00,0x6600,0x6D00,0x7D00,0x0700,0x7F00,0x6F00,0x8000,0x 7D00,0x0700,0x7F00,0x6F00,0xAAAA}; или const prog_uint16_t table_v[] = {0xAAAA,0x0600,0x5B00,0x4F00,0x6600,0x6D00,0x7D00,0x0700,0x7F00,0x6F00,0x8000,0x 7D00,0x0700,0x7F00,0x6F00,0xAAAA}; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба У меня была проблема при переходе с ИАР на MSPGCC (под MSP430) идеальный код, зацепиться не за что. А в девайсе не работает ни в какую. Мучался с неделю, пока один старший товарищ не заметил (опыт не пропьёшь!), что ИАР формирует файл прошивки несколько иначе, чем средства GCC. Проблема была в формате текстового файла (hex,ti-text - не суть) GCC формирует текстовик в линуховом формате - то есть в конце строки ставится только один символ - 0x0D, в то время как в формате MS(DOS,Win - не важно) положено 2 символа - 0A 0D. А прошивал я старыми привычными средствами. В результате загрузчик не находил конца строки (0А), а 0D прошивал в процессор, в результате там оказалась полная лажа. Короче, резюме: при использовании GCC загрузчик должен быть соответствующий, либо нужно преобразовывать формат файла прошивки. Не совсем в тему, конечно, речь-то идёт об AVR, но может кому пригодится, чтобы не страдали как я Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gte 6 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба На конструкцию const uint16_t table_v[] PROGMEM = дает сообщение * um_mega8.c, line 268: warning: '__progmem__' attribute ignored вторую взял, Static variable address beyond the RAM limit: table_v -> :0x800060 но с предупреждением Repeated variable name table_v within block. Rename it Я, так понимаю, пытается в RAM массив определить. Короче, резюме: при использовании GCC загрузчик должен быть соответствующий, либо нужно преобразовывать формат файла прошивки. Спасибо. Прошивать буду AVReal, посмотрю за этим моментом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xelax 0 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба подключи #include <avr/pgmspace.h> Должно всё быть ок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться