Salut Antoine,

J'ai pas vraiment trop d'idée non plus. Peut-être que tu peux
essayer de remplacer la ligne par:
   UCSRB |= (1 << UDRIE);

(UDRIE = Data Register Empty Interrupt Enable)

Ca permettra de tester que le tableau uart_reg est bien initialisé,
mais j'imagine que c'est bon de ce coté...

Une autre possibilité est que le vecteur d'interruption pour
Data Register Empty est mal initialisé. Il faut regarder dans
la doc pour vérifier à quel numéro ça correspond, et
s'assurer que:
  1- le numéro est bien le même dans le .h de la libc
  2- dans le fichier compiler_files/main.lss, les adresses
     des vecteurs sont bien initialisés vers la bonne fonction.

Si ça aide toujours pas, il faut débugger à la LED et au
while(1) avec les interruptions verouillées, mais j'avoue
que ça doit pas être terrible...

Tiens moi au courant.
++
Olivier

Le 28 mai 09 à 17:31, Antoine albertelli a écrit :

J'ai ouvert un rapport de bug sur le bugzilla.
Après un peu de debug, j'ai trouvé que la ligne qui causait le reset est celle-ci (dans uart_send_nowait.c, ligne 61) :
sbi(*uart_regs[num].ucsrb, UDRIE); //FIXME: Apparement le bug est ici

T'aurais pas une idée, parce que là je sèche un peu...

A+



_______________________________________________
Avr-list mailing list
Avr-list@droids-corp.org
CVSWEB : http://cvsweb.droids-corp.org/cgi-bin/viewcvs.cgi/aversive
WIKI : http://wiki.droids-corp.org/index.php/Aversive
DOXYGEN : http://zer0.droids-corp.org/doxygen_aversive/html/
BUGZILLA : http://bugzilla.droids-corp.org
COMMIT LOGS : http://zer0.droids-corp.org/aversive_commitlog

Répondre à