Oleg_IT 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Есть вопросы. Работаю на IAR 4.11. CDC-IO.2007-01-23 С ATMega8 собирается, а с ATMega48 и ATMega88 нет, говорит памяти мало. Хотя должно хватать, с ATMega8 получается 2 686 bytes of CODE memory (+ 34 range fill ) 187 bytes of DATA memory (+ 5 absolute ) В ATMega48 – 4 Кб. Почему? AVR-CDC.2006-08-28 В файле sw-uart.c неизвестно несколько переменных, PRR, PRADC… На каком компиляторе они работают. Может я чего пропустил? У кого есть вариант адаптированный для IAR 4.11? Помогите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Может применить оптимизацию? Кстати встречался в IARе, что частенько максимальная оптимизация по скорости дает МЕНЬШИЙ код, чем макс. оптимизация по размеру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба На каком компиляторе они работают. Может я чего пропустил? На gcc по моему Попробуйте мой вариант, вроде все собирается, только поправьте регистры прерываний, у мега8 и 88 они разные. Увидите на что ругается компилятор TEMP.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Оптимизация не помогла prottoss - нет файла usb_descriptors.h Если не сложно дайте ещё main.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Я первый пост понял так , что для мега48 код получается 4 кб, а под мега8 - 2 с копейками.. Ж)... А что конкретно говорит компилятор? Может вы его не правильно понимаете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 · Жалоба Я первый пост понял так , что для мега48 код получается 4 кб, а под мега8 - 2 с копейками.. Ж)... Кто помнит banned, тут есть очень простое объяснение :) Под mega8 код компилировался в GCC там все в порядке с байтами, а вот в IAR проблема, ведь как мы помним из banned, 1 байт IAR - 2 байта AVR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexG_changed 0 12 февраля, 2007 Опубликовано 12 февраля, 2007 (изменено) · Жалоба При переносе программы с Atmega8 на ATmega*8 размер кода возрастает, видимо за счет других методов доступа к регистрам периферии. Но разумеется не в два раза, а на ~8%, хотя это еще от самой программы зависит. Изменено 12 февраля, 2007 пользователем AlexG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 13 февраля, 2007 Опубликовано 13 февраля, 2007 · Жалоба Оптимизация не помогла prottoss - нет файла usb_descriptors.h Если не сложно дайте ещё main.c TEMP.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 13 февраля, 2007 Опубликовано 13 февраля, 2007 · Жалоба Я первый пост понял так , что для мега48 код получается 4 кб, а под мега8 - 2 с копейками.. Ж)... А что конкретно говорит компилятор? Может вы его не правильно понимаете? Компилятор говорит это: Error[e16]: Segment TINY_Z (size: 0x16 align: 0) is too long for segment definition. At least 0x16 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE", where at the moment of placement the available memory ranges were "DATA:0--1" Кто помнит banned, тут есть очень простое объяснение :) Под mega8 код компилировался в GCC там все в порядке с байтами, а вот в IAR проблема, ведь как мы помним из banned, 1 байт IAR - 2 байта AVR Можно про banned подробнее, не слышал я про это. Ещё раз к prottoss не хватает определений USBDeviceDescriptor, USBDeviceDescriptor, … И всё что в avr910. В «AVR910 In-System Programming» применяемых функций нет. Кстати, определение # if defined GIMSK # define USB_INTR_ENABLE GIMSK # elif defined EIMSK # define USB_INTR_ENABLE EIMSK # else # define USB_INTR_ENABLE GICR # endif IAR не понимает, приходится ручками править. Это в IAR так и задумано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TomaT 0 13 февраля, 2007 Опубликовано 13 февраля, 2007 · Жалоба Можно про banned подробнее, не слышал я про это. AVR Das Mal, zwei, drei :) http://electronix.ru/forum/index.php?showtopic=16600 Ведь специально написали "Для обязательного прочтения..." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 13 февраля, 2007 Опубликовано 13 февраля, 2007 · Жалоба так проблема с сегментом памяти TINY_Z... там есть какие то проблемы и отличия в мега8 и мега48... почитайте эту ветку... http://electronix.ru/forum/index.php?showt...=13883&st=0 вроде тут что то про это было или тут http://electronix.ru/forum/index.php?showtopic=18676 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться