Avr programming

Portrait de Le_Vince

Salut les électroniciens !
J'espère que vous prenez bien soin de vous en cette situation.

Alors voilà sur quoi je planche : J'essaie de générer un fichier .hex d'un programme en avrC , et j'ai sans le faire exprès désinstallé Avr studio 4, du coup je me suis dis que peut-être en passant par Arduino je pourrais générer quelque chose d'utilisable : sauf que je ne sais quel type de carte arduino serait l'équivalent le l'AT90S2313 que je vise à flasher.

Quelqu'un aurait il une piste ?

Portrait de Anonyme

Si tu veux réellement de l'aide il te faudrait être un peu plus explicite, tu veux générer un un fichier .hex mais à partir de quoi ?

Portrait de Walter

Salut, je ne suis pas sûre que cela soit une bonne idée, Avr Studio 7 est gratuit non ?
L'IDE d'avr est je pense bien plus complet qu'arduino.
Arduino ne permet pas le debug en situation je crois?

je ne sais pas si tu peux utiliser directement arduino-builder, je pense que tu sera obligé d'utilisé "avr-g++" et "avr-ld.exe".
Ce qui est quand même bien plus chiant a utiliser d'une IDE :), même avec des Makefile

Portrait de Le_Vince

Alors si il faut être plus explicite :
J'ai l'intention d'émuler le comportement d'un AT90S2313 sur une plaque FPGA Cyclone IV. Pour ca j'ai besoin de générer un fichier .hex à destination donc d'un AT90S2313, que je puisse ensuite transformer en ROM, et me servir de ce ROM pour programmer mon Cyclone IV en VHDL depuis Quartus II.
Avr studio 7 gratuit ? J'utilise pas Google alors mes référencements sont peut-être plus faible via Duckduckgo, en tous les cas je ne l'ai pas trouvé. Avec Avr studio oui on peut débug en temps réel.
Bon du coup j'ai récupéré une version d'AVR4 et j'utilise comme compilateur avr-gcc.exe et comme make , un make.exe qui trainait dans WIN-AVR.
De quoi s'agit il avr-ld.exe si je peux poser la question ? ^^ Je ne suis pas très callé, j'ai besoin de comprendre plus ce que je fais par ailleurs alors :)
 

Portrait de Le_Vince

Et le code .hex et bien je pense que le language qu'on utilise pour coder des At en AVR c'est du C++, mais puisque je ne m'y connais qu'en C je dirai du C.
Des programmes qui ont ce genre d'allure :

#define  F_CPU 8000000UL
#include "avr/io.h"
#include "util/delay.h"
#include "string.h"

void USART_Init (void) ; // T0 car il y en a au moins 2, de 2 a 4
void USART_Transmit (unsigned char data); //

int main (void)
{

DDRE |= 0x02; // PE1 sortie, PE0 en entrée
PORTE |= 0x00 ; // Tx => PE1, Rx => Rx
USART_Init() ; // 9600 Bauds 8bits, 1 bit de parité

while (1)
{
 USART_Transmit("Hello world");
 _delay_ms(3000);

}

}

void USART_Init (void)
{
// unsigned int tap ;
UBRR0L = 51  ; //  PIEGE
UCSR0B = (1<<TXEN0) ;
UCSR0C = (1<<UCSZ00)|(1<<UCSZ01) ;
}

void USART_Transmit(unsigned char data)
{
for (int i =0; i<strlen(data); i++)
{

while (! (UCSR0A & (1<<UDRE0))) ;
UDR0 = data[i];

}
}

Portrait de Walter

avr-ld est ce qui va te permettre de combiner tout les objets compilés(.o) avec avr-gcc  ou avr-g++.
C'est ce qui est utilisé lorsque du utilise l'option -o de avr-gcc.

Pour le studio, j'ai regadé directement chez Microchip.

Mais du coup si tu réinstallé le V4, tu n'a plus de soucis?

Portrait de Anonyme

Walter va se faire un plaisir de te donner la solution comme il a commencé a te répondre !

Portrait de Le_Vince

Plus de soucis ouais, pas l'air d'il y avoir un lot de solution alternative.
Thanks !

Portrait de Walter

Tu n'a pas essayé la dernière version du studio du coup?
Après Visual code a des extension pour les µC AVR, mais je crois que c'est chiant à configurer, il faut connaître les options à donner à avrdude.
J'aime bien cette outils (sorte de notepad++), proche d'un IDE conventionnel, mais beaucoup plus léger.
Il y a aussi eclipse qui a des plugins pour les avr, mais je ne sais pas ce que vaux l'extension.
Par contre les IDE qui utilise eclipse sont vraiment bien, enfin de mon point de vue.
Je suppose aussi que  Visual studio 2019 doit aussi avoir des extensions pour ton µC.
 

Portrait de djaroblida

Bojour, je suis nouveau dans ce groupe j'éspère que je trouve le bon acuille de vous.