Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Начал работать с http://www.recursion.jp/avrcdc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Oleg_IT
Есть вопросы.
Работаю на 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
Может применить оптимизацию? Кстати встречался в IARе, что частенько максимальная оптимизация по скорости дает МЕНЬШИЙ код, чем макс. оптимизация по размеру.
prottoss
Цитата(Oleg_IT @ Feb 12 2007, 20:15) *
На каком компиляторе они работают. Может я чего пропустил?
На gcc по моему

Попробуйте мой вариант, вроде все собирается, только поправьте регистры прерываний, у мега8 и 88 они разные. Увидите на что ругается компилятор
Oleg_IT
Оптимизация не помогла

prottoss - нет файла usb_descriptors.h
Если не сложно дайте ещё main.c
GDI
Я первый пост понял так , что для мега48 код получается 4 кб, а под мега8 - 2 с копейками.. Ж)... А что конкретно говорит компилятор? Может вы его не правильно понимаете?
defunct
Цитата(GDI @ Feb 12 2007, 17:21) *
Я первый пост понял так , что для мега48 код получается 4 кб, а под мега8 - 2 с копейками.. Ж)...


Кто помнит banned, тут есть очень простое объяснение smile.gif
Под mega8 код компилировался в GCC там все в порядке с байтами, а вот в IAR проблема, ведь как мы помним из banned, 1 байт IAR - 2 байта AVR biggrin.gif
AlexG_changed
При переносе программы с Atmega8 на ATmega*8 размер кода возрастает, видимо за счет других методов доступа к регистрам периферии. Но разумеется не в два раза, а на ~8%, хотя это еще от самой программы зависит.
prottoss
Цитата(Oleg_IT @ Feb 12 2007, 21:49) *
Оптимизация не помогла
prottoss - нет файла usb_descriptors.h
Если не сложно дайте ещё main.c
Oleg_IT
Цитата(GDI @ Feb 12 2007, 18:21) *
Я первый пост понял так , что для мега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"


Цитата(defunct @ Feb 12 2007, 21:06) *
Кто помнит banned, тут есть очень простое объяснение smile.gif
Под mega8 код компилировался в GCC там все в порядке с байтами, а вот в IAR проблема, ведь как мы помним из banned, 1 байт IAR - 2 байта AVR biggrin.gif

Можно про 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
Цитата(Oleg_IT @ Feb 13 2007, 10:01) *
Можно про banned подробнее, не слышал я про это.

AVR Das Mal, zwei, drei smile.gif http://electronix.ru/forum/index.php?showtopic=16600
Ведь специально написали "Для обязательного прочтения..."
GDI
так проблема с сегментом памяти TINY_Z... там есть какие то проблемы и отличия в мега8 и мега48... почитайте эту ветку... http://electronix.ru/forum/index.php?showt...=13883&st=0 вроде тут что то про это было или тут http://electronix.ru/forum/index.php?showtopic=18676
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.