Utilisation de WinAVR

Introduction:

WinAVR est  une suite de logiciels regroupant plusieurs outils indispensables à la programmation C.
Il intègre le compilateur AVR-GCC, AVR-libc: les librairies essentielles de AVR-GCC, AVR-as: l’assembleur, AVRdude : l’interface de programmation, AVRice : l’interface de programmation ICE, AVR-gdb: le débugeur, programmers notepad : l’éditeur et plein d’autres.
WinAVR est prévu pour être utiliser sous Windows.

Installation:

Télécharger WinAVR http://sourceforge.net/projects/winavr/files/WinAVR/20100110/ ou ici
Lancer l’exécutable qui permettra d’installer WinAVR.

Premier programme:

Nous allons créer un programme permettant de faire clignoter les Leds sur un USBasp.
Ouvrir Programmers Notepad.

Créer un nouveau projet.

Remplir les données. Et valider par OK.


Copier le code ci dessous dans la fenêtre « new »

#include 
#define F_CPU 12000000UL // 12 MHz
#include 
int main() {
 DDRC |= 11; // PC0 et PC1 en sortie
 while(1) {
 PORTC |= 1; // LED1 s'allume
 PORTC &= ~10; // LED2 s'etient
 _delay_ms(500);
 PORTC |= 10; // LED2 s'allume
 PORTC &= ~1; // LED1 s'etient
 _delay_ms(500);
 }
 return 1;
}

Puis changer le type de Plain Text en C/C++

Création du fichier de compilation MakeFile.
Ajouter un nouveau fichier.

Copier le code ci-dessous.

MCU=atmega8
TARGET=premier

CFLAGS=-g -Wall -mcall-prologues -mmcu=$(MCU) -Os
LDFLAGS=-Wl,-gc-sections -Wl,-relax
CC=avr-gcc
OBJECT_FILES=$(TARGET).o
all: $(TARGET).hex
clean:
TAB rm -f *.o *.hex *.obj *.hex
%.hex: %.obj
TAB avr-objcopy -R .eeprom -O ihex $< $@
%.obj: $(OBJECT_FILES)
TAB $(CC) $(CFLAGS) $(OBJECT_FILES) $(LDFLAGS) -o $@

Remplacer TAB par une tabulation.
Puis changer le type de Plain Text en Make. Faire une sauvegarde.Et entrez le mon de Makefile.

Ensuite faire un Make ALL dans le menu pour créer le fichier HEX.

Voici l’ensemble des fichiers de mon projet ici.

Problème de compilation:

Sous Windows 7,Windows 8, et Windows 10 WinAVR n’arrive pas à compiler le programme avec un message d’erreur du type:initialization with status code 0xC0000142

Pour résoudre ce problème,il faut télécharger le fichier suivant msys-1.0-vista64.zip avec la DLL msys-1.0.dll et la copier dans le répertoire WinAVR-20100110>utils>bin.