Bon j'ai réussi à refaire blink !
Etape 0 : Installation de AVRStudio 5.1 de base sans se poser plus de question
Etape 1 : Recréation de la lib Arduino Core sous AVR Studio.
- J'ai recréé un nouveau projet ArduinoCore de type "AVRGCC C++ Static Library Project" en choissant le bon processeur (ATmega328P)
- J'ai ajouté tous les sources de la lib core -> AVRStudio a copier tous les sources dans le répertoire du projet
- J'ai copier manuellement le répertoire "variants" sous le répertoire du projet
- Modif de
Plateform.h pour ajouter un
#include "math.h" avant
#include "util/delay.h"- J'ai effectué les modifs suivantes dans la configuration du projet :
AVG/GNU C Compiler
- Symbols : définir F_CPU=16000000UL et ARDUINO=100
- Directories : ajouter en chemin relatif le répertoire du projet (..) ainsi que le répertoire standard (../variants/standard)
- Optimisations : size (-Os) -fdata-sections et -ffunction-sections
- Warnings : All (-Wall)
AVG/GNU C++ Compiler
Idem mais en plus :
- Miscellaneous : -fno-exceptions
Et hop ca compile et ca crée libArduinoCore.a
On ferme la solution
Etape 2 : Projet blink
- Créer un projet Blink de type AVRGCC C++ Executable Projet
--> crée automatiquement un fichier blink.cpp avec un main. On vire tout et on met à la place setup() et loop(). On précède le tout d'un #include "Arduino.h"
#include "Arduino.h"
#define LED 13
void setup()
{
pinMode( LED, OUTPUT );
}
void loop()
{
digitalWrite( LED, HIGH ) ;
delay( 500 );
digitalWrite( LED, LOW ) ;
delay( 500 );
}
- J'ai effectué les modifs suivantes dans la configuration du projet :
AVG/GNU C Compiler
- Symbols : définir F_CPU=16000000UL et ARDUINO=100
- Directories : ajouter en chemin relatif le répertoire du projet (..) ainsi que le répertoire standard (../variants/standard)
- Optimisations : size (-Os) -fdata-sections et -ffunction-sections
- Warnings : All (-Wall)
AVG/GNU C++ Compiler
Idem mais en plus :
- Miscellaneous : -fno-exceptions
AVG/GNU C++ Linker
- libraries : files : ajouter libArduinoCore.a
- libraries : directory : ajouter le répertoire Release situé sous le projet de la lib
- Optimization : cocher Garbage collect ... (-Wl,--gc-sections)
- Miscellaneous : ajouter -lm
Et hop ca compile et ca génère blink.hex
Etape 3 : Upload
je me suis pas embeté, j'ai repiqué depuis l'IDE Arduino la ligne de commande avrdude que j'ai collé dans un fichier bat. Pas encore regardé si je pouvais intégrer cela à AVRStudio dans le projet
Bon ben maintenant y' plus qu'a passer aux autres libs et essayer des exemples plus complets.