Forum: Mikrocontroller und Digitale Elektronik ARM Einstieg, Fragen zu Nxp Soft und Debuggen


von mike (Gast)


Lesenswert?

Hallo,
Ich steige gerade in Arm ein und habe mir eine Umgebug aus Eclipse, 
Yagarto und Jlink Edu zusammengebastelt.  Das Target ist ein lpc11c24 
board.


 Für ein einfaches Blinky Pogramm musste ich mir linker files und 
startup.s aus lpcopen-make zusammensuchen. Von Nxp selber war da nichts 
zu finden, ausser in dem lpcopen paket was aber recht generisch aussah 
und vermutlich noch an mein uC angepasst werden müsste.
Ist das normal in der Arm Welt oder nur bei Nxp so ?

2. frage:
Mein Blinky Programm verwendet den Systick Interrupt. Solange ich mit 
dem Jlink debugge werden aber keine Interrupts ausgelöst, obwohl das 
Programm läuft (schleife zählt variable hoch, lässt sich mit dem 
debugger prima checken) Starte ich den uC ohne debugger fängt die led an 
super zu blinken. Weis jemand woran das liegen könnte?

Danke
mike

von Lothar (Gast)


Lesenswert?

mike schrieb:
> Das Target ist ein lpc11c24 board.

1) Open source:

http://www.microbuilder.eu/Projects/LPC1114ReferenceDesign/LPC1114CodeBase.aspx

2) Freeware: "offiziellen" NXP Compiler runterladen, installieren, 
LPC11Cxx Demos und CMSIS kopieren, wieder deinstallieren

http://lpcxpresso.code-red-tech.com/LPCXpresso/

3) Kommerziell: IAR Compiler runterladen, installieren, LPC11Cxx Demos 
und CMSIS kopieren, wieder deinstallieren

http://supp.iar.com/Download/SW/?item=EWARM-EVAL

4) Demo-Code von anderen Boards:

https://www.olimex.com/Products/ARM/NXP/LPC-P11C24/

von W.S. (Gast)


Lesenswert?

mike schrieb:
> musste ich mir linker files und
> startup.s aus lpcopen-make zusammensuchen.

mike schrieb:
> Ist das normal in der Arm Welt oder nur bei Nxp so ?

Nee, das ist nur dann so, wenn du nen GCC benutzt.

Mit dem "Keil" hast du all diese Probleme nicht - und angesichts der 
Tatsache, daß dein Prozessor sowieso nur 32 K an Flash hat, kann ich dir 
nur raten, deine ganze Eclipse/Yagarto-Installation erstmal auf der 
Festplatte schlummern zu lassen und dir vom Keil ne Demoversion zu 
installieren.

Mach damit den Anfang und wenn du tatsächlich irgendwann mal was 
Größeres als 32 K Code basteln willst, dann krame deine GCC-Installation 
wieder hervor. Dann hast du wenigstens (hoffentlich) soviel 
Grunderfahrung gesammelt, daß du auch damit wohl klarkommen wirst.

Ansonsten zum Startup und so: Sieh dir am Anfang erstmal ein paar 
Startupcodes von verschiedenen Leuten an und schreib dir dann deinen 
eigenen Startupcode und auch deine eigenen Konfigurationsroutinen. Ach 
ja, viele GCC-Benutzer kopieren sich irgendwelche verknöselten 
Linkerscripts von von einem Projekt zum nächsten. Das ist eigentlich 
unnötig, da der GCC-Linker bereits über einen Satz derartiger Scripts 
verfügt. Man muß bloß obachtgeben, daß man den richtigen Bereich für den 
Code im Startup angibt (ich glaub. das war sowas wie .SECTION ....)

W.S.

von mike (Gast)


Lesenswert?

Danke Euch!

Werde mir Eure Tips und Hinweise jetzt mal zu Gemüte führen.

Gruß
mike

von Kindergärtner (Gast)


Lesenswert?

W.S. schrieb:
> da der GCC-Linker bereits über einen Satz derartiger Scripts
> verfügt.
Ich weiß nicht welchen GCC du verwendest, aber der populäre 
GCC-ARM-Embedded sowie der GCC aus der Atollic IDE haben nur ein paar 
"dummy"/Beispiel-Linkerscripte dabei. Man braucht aber für jeden 
einzelnen STM32, jeden einzelnen LPC, jeden einzelnen Atmel SAM, etc. 
ein bestimmtes Linkerscript, das kann man sich höchstens daraus 
zusammenbasteln.

W.S. schrieb:
> viele GCC-Benutzer kopieren sich irgendwelche verknöselten
> Linkerscripts von von einem Projekt zum nächsten
Wenn man keine Lust hat die ulkige linkerscript-"Sprache" zu lernen...

W.S. schrieb:
> und wenn du tatsächlich irgendwann mal was
> Größeres als 32 K Code basteln willst,
... oder was modernes, wie C++11, verwenden willst (was Keil nicht kann)

W.S. schrieb:
> schreib dir dann deinen eigenen Startupcode
Eigentlich ist es gar nicht schlecht den generischen 
"Standard-Startupcode", der die globalen Variablen initialisiert & 
Konstruktoren aufruft (Was anderes gehört da onehin nicht rein!), zu 
verwenden, weil man sich dann leichter mit anderen austauschen kann... 
Wenn er halbwegs geschickt geschrieben ist, wird er automatisch durch 
das Linkerscript "parametrisiert" und ist somit quasi 
Controller-unabhängig.

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.