Betatests für ELF->AVR COFF mit GNU binutils

Gast #39984
Lesenswert?

Ich habe soeben das Announcment für <subject> auf den gängigen
Foren (u. a. AVRfreaks.net und avr-gcc-list@avr1.org) gepostet.
Ich habe keine rechte Lust, es hier noch in Deutsch zu
wiederholen, zumal ich dann ja wohl auch noch das README
übersetzen müßte...  Wen's interessiert, bitte schaut dort rein.
Gast #39985
Lesenswert?

Bevor dieser thread hier im nirvana des forums verschwindet möchte ich 
mich hier auch noch mal für jörgs anstrengungen dieses tool zu 
verwirklichen herzlich bedanken.
Zumal er eigentlich gar keine interessen hat dieses tool zu 
verwirklichen da er gar kein windoof besitzt..:).
was atmel mit der elf unterstützung jahrelang nicht geschafft hat, hat 
jörg eben in ein paar monaten einfach so aus dem boden gestampft. Ich 
bin mir sicher das du hunderten von avr-gcc usern die unter windows 
arbeiten ein riesen gefallen getan hast.

DANKE,

Kai
Gast #39987
Lesenswert?

Ja, ich habe mittlerweile noch zwei Bugreports, witzigerweise
beide von den Alpha-Testern. ;-)  Da bin ich gerade an der
Analyse...

Im Großen und Ganzen scheint es aber ganz gut gelungen, was
natürlich auch den fleißigen Alpha-Testern zu danken ist.  Die
haben dafür schließlich auch auf sich genommen, daß sie sich
die Tools selbst compilieren mußten, da ich niemandem Windows-
Binaries liefern kann.  Aber ich denke, daß sich der Aufwand
gelohnt hat.

Nun ist Atmel dran, endlich ELF einzuführen. ;-)
Gast #39988
Lesenswert?

Hi

ich habe folgendes Programm mal getestet (eine frühe Vorstufe zu einem 
DDS)

#include <avr/io.h>
#include <avr/pgmspace.h>


//Hauptschleife
void main(void)
{

unsigned char i=0;
unsigned char sintab[256]={
  128,131,134,137,140,144,147,150,153,156,159,162,165,168,171,174,
  177,179,182,185,188,191,193,196,199,201,204,206,209,211,213,216,
  218,220,222,224,226,228,230,232,234,235,237,239,240,241,243,244,
  245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,
  255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,
  245,244,243,241,240,239,237,235,234,232,230,228,226,224,222,220,
  218,216,213,211,209,206,204,201,199,196,193,191,188,185,182,179,
  177,174,171,168,165,162,159,156,153,150,147,144,140,137,134,131,
  128,125,122,119,116,112,109,106,103,100, 97, 94, 91, 88, 85, 82,
   79, 77, 74, 71, 68, 65, 63, 60, 57, 55, 52, 50, 47, 45, 43, 40,
   38, 36, 34, 32, 30, 28, 26, 24, 22, 21, 19, 17, 16, 15, 13, 12,
   11, 10,  8,  7,  6,  6,  5,  4,  3,  3,  2,  2,  2,  1,  1,  0,
    0,  0,  1,  1,  2,  2,  2,  3,  3,  4,  5,  6,  6,  7,  8, 10,
   11, 12, 13, 15, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36,
   38, 40, 43, 45, 47, 50, 52, 55, 57, 60, 63, 65, 68, 71, 74, 77,
   79, 82, 85, 88, 91, 94, 97,100,103,106,109,112,116,119,122,125};


  DDRD = 0xFF;

  while(1)
  {
    PORTD=sintab[i++];
  }

}

Das gibt, wenn ich das .cof-File per AVRStudio4.07 in den Mega16 lade 
keine Reaktion von sich. Über sintab schreibt er im Watchfenster "not in 
scope" Lade ich allerdings das HEX-File über das JTAG-Interface rein 
(Also nix debugging, reines Flash-programmieren) erscheint am PORTD-DAC 
ein Sinus. Ich häng mal c, elf, cof und hex an.

Matthias
Angehängte Dateien:
Gast #39989
Lesenswert?

Nun, folge doch mal der Beschreibung in meinem README.
avr-objdump -g sagt:

void main ()
{ /* 0x8e */
  /* file C:\Daten\MATTHIAS\schilling\bootloader/boot.c line 7 addr 0x8e 
*/
  { /* 0x96 */
    uint8 sintab[256]:int16 /* 0x1 */;
    register uint8 i /* 0x12 */;
...

Das sieht mir komplett OK aus und entspricht auch dem, was man
mit gleichem Kommando aus dem ELF-File lesen kann.

Sieht also nach AVR Studio Bug aus.

Ansonsten trifft bezüglich der Initialisierung des Datensegments
in AVR Studio natürlich das zu, was im README unter known
problems steht -- die neue DLL, die das für den AVR-GCC
ordentlich kann, hat Atmel nach wie vor noch nicht freigegeben.
Wird wohl erst mit dem nächsten Release werden, ich habe eine
Aussage, daß AVR Studio demnächst vom Beta offiziell zum
Release erhoben werden soll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren