Давай все разберем по порядку:
Код
In file included from main.c:4:
C:/WinAVR/avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>."
Означает: в файле "main.c" в строке 4 идет включение заголовочного файла "#include <avr/delay.h>". Далее идет вывод
warning из файла
avr/delay.h, что означает:
"этот файл перенесен в <util/delay.h>". Вот само содержание файла
"avr/delay.h":
Код
#ifndef _AVR_DELAY_H_
#define _AVR_DELAY_H_
#warning "This file has been moved to <util/delay.h>."
#include <util/delay.h>
#endif /* _AVR_DELAY_H_ */
Теперь думаю вопросов не должно возникать по этому поводу. Замени строчку
"#include <avr/delay.h>" на
"#include <util/delay.h>".
Далее:
Код
main.c:23: warning: 'main' is normally a non-static function
Говорит о том, что функция
"main" является обычной функцией а не статической. Это значит, что ты написал вот так:
Код
static int main(void)
{
...
}
Это были предупреждения компилятора.
Теперь ошибки линковщика:
Код
Linking: main.elf
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=4000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=obj/main.o -std=gnu99 -MD -MP -MF .dep/main.elf.d obj/main.o --output main.elf -Wl,-Map=main.map,--cref --section-start=.text=0x0000,
C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/crttn2313.o: In function `__vectors':
../../../../../avr-libc-1.4.4/crt1/gcrt1.S:51: undefined reference to `main'
make.exe: *** [main.elf] Error 1
Это означает, что линковщик не пожет найти функцию
"main" которая вызывается из функции
"__vectors" которая находиться в объектной библиотеке
"crttn2313.o". А найти функцию
"main" линковщик не может потому, что она была объявленна как статическая. А как нам известно, статические функции видны только в пределах файла в котором они описанны, также как и статические переменные определенные вне каких либо функций.
Надеюсь, теперь у тебя никаких вопросов нет.