Начало тут
https://kazus.ru/forums/showthread.php?t=13936.
Есть сейчас у меня задача простенького терморегулятора на MEGA48 + DS18b20.
Решил параллельно пробовать на WinAVR и на IAR.
Первое что бросилось в глаза - WinAVR 2006 дает немного меньшего размера код чем WinAVR 2009. Решенно - делаю на WinAVR 2006 (все сделано по умолчанию в AVR Studio) и IAR AVR 5.20.
Исходники стараюсь делать максимально одинаковыми.
Под DS18b20 использовал код автора, которого не знаю (спасибо ему за это).
Написал пока только получение данных с 18b20 и вывод температуры на 3-х разрядный семисегментный индикатор.
Итоги компиляции:
WinAVR:
AVR Memory Usage
Device: atmega48
Program: 790 bytes (19.3% Full)
(.text + .data + .bootloader)
Data: 3 bytes (0.6% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...
----------------------------------------------------
IAR:
IAR Universal Linker V4.61L/W32
Copyright (C) 1987-2009 IAR Systems AB.
748 bytes of CODE memory (+ 18 range fill )
67 bytes of DATA memory (+ 23 absolute )
Errors: none
Warnings: none
-----------------------------------------------------
IAR выиграл 42 байта
и самое интересное - прошивка IAR работает - т.е. показывает температуру в комнате,
прошивка WinAVR не работает - показывает на индикаторе 255.
Спецы по WinAVR помогите - оба проекта вложил.