Forum: Mikrocontroller und Digitale Elektronik C Programm auf NGW100


von Gast (Gast)


Lesenswert?

Hallo!

ich wollte folgendes Programm mit "avr32-gcc -o test test.c" compilieren

#include <stdio.h>
int main()
{
  printf("Test!\n");
  return 0;
}

als ich es dann auf das Board übertragen hatte und mit ./test starten 
wollte,
bekomme ich nur einen blinkenden cursor, jedoch keine Ausgabe.

von 900ss (Gast)


Lesenswert?

Es fehlen Dir da einige Initialisierungen weiterer Hardware (UART, 
LCD-Treiber?). Grab mal in den Sourcen/Doku, wohin printf() seine 
Ausgabe schickt und initailisere dann die entsprechende Hardware noch. 
Das steckt nicht im Startup-Code der Lib. Mußt du beim AVR ja auch "zu 
Fuß" machen.
Ansonsten evtl. mal bei Avrfreaks suchen, vielleicht haben die was für 
native 'C'.

Gruß 900ss

von Gast (Gast)


Lesenswert?

Das programm wird aus dem Linux heraus gestartet, welches bereits 
vorinstalliert ist.

von Marius W. (mw1987)


Lesenswert?

Also das Programm sollte soweit funktionieren. Aber du hast zum 
Kompilieren den "normalen" avr32-gcc genommen. Das wird so aber nicht 
funktionieren.

Der avr32-gcc kann nur Programme bauen, die nativ auf dem NGW laufen, 
also komplett ohne Linux. Wenn du ein Programm fürs NGW100 mit Linux 
drauf bauen willst, musst du avr32-linux-gcc nehmen. Den bekommst du, 
wenn du dir das aktuelle Buildroot von Atmel besorgst.

1. Buildroot 2.3.0 von Atmel runterlade und entpacken
2. "make atngw100_defconfig" ausführen
3. "make" ausführen
3b. Warten ;-)
4. Du solltest dann in build_avr32/staging_dir/usr/bin den 
avr32-linux-gcc finden, mit dem kannst du dann Linux-Programme bauen.

EDIT: Es empfiehlt sich auch, wenn du eh ein Buildroot gemacht hast, ein 
Update von Linux aufm NGW100. Die Anleitung gibts bei AVR-Freaks: 
http://www.avrfreaks.net/wiki/index.php/Documentation:NGW/Firmware_upgrade

MfG
Marius

von Gast (Gast)


Lesenswert?

Leider bricht das "make" mit einem Fehler ab. die letzten Zeilen waren:

/tmp/ccLYptgb.s: Assembler messages:
/tmp/ccLYptgb.s:12: Error: invalid register list `,lr'
/tmp/ccLYptgb.s:22: Error: invalid register list `,pc'
/tmp/ccLYptgb.s:36: Error: invalid register list `,pc'
/tmp/ccLYptgb.s:54: Error: invalid register list `,lr'
/tmp/ccLYptgb.s:68: Error: invalid register list `,pc'
make[2]: *** [crtbegin.o] Fehler 1
make[2]: Verlasse Verzeichnis 
'/home/user/Desktop/buildroot-avr32-v2.3.0/toolchain_build_avr32/gcc-4.2 
.2-initial/gcc'
make[1]: *** [all-gcc] Fehler 2
make[1]: Verlasse Verzeichnis 
'/home/user/Desktop/buildroot-avr32-v2.3.0/toolchain_build_avr32/gcc-4.2 
.2-initial'
make: *** 
[/home/user/Desktop/buildroot-avr32-v2.3.0/toolchain_build_avr32/gcc-4.2 
.2-initial/.compiled]  Fehler 2

von Mark .. (mork)


Lesenswert?

Das ist ein bekannter Fehler und sollte durch ein downgraden Deines 
Host-Compilers von Version 4.3 auf 4.2 erledigt sein. Siehe auch 
http://www.atmel.no/buildroot/buildroot-issues.html (ganz unten)

MfG Mark

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.