Forum: Compiler & IDEs Eclipse GNU/ARM: Startup-Code für LPC2119 oder LPC2138


von Stefan (Gast)


Lesenswert?

Hallo!

Hab bisher mit Keil µVision Demoversion gearbeitet und möchte nun auf 
Eclipse umsteigen.
Hab im Forum folgenden Verweis gefunden:
Sehr detaillierte Einführung in eine Entwicklungsumgebung mit 
GNUARM/Eclipse für Philips LPC

Hab ich auch wie in der Anleitung beschrieben installiert und müsste 
funktionieren.
Ich habe mir auch die Beispiele heruntergeladen, nur die beschränken 
sich auf einen LPC2148 und einen LPC2106.

Zuhause hab ich aber einen LPC2119 und einen LPC2138 und ich schaffe es 
nicht nur ein einfaches Demoprogramm zum Laufen zu bringen.
Es liegt bestimmt am Startup-Code, da kenne ich mich leider überhaupt 
nicht aus. Für µVision hatte ich schon einen funktionierenden 
Beispielcode dabei, der lässt sich aber ohne gute Kenntnisse nicht so 
einfach portieren!

Hat jemand von euch zufällig einen Startup-Code für einen meiner 
genannten Mikrocontroller (LPC2119 oder LPC2138) der sich mit Eclipse 
GNUARM kompilieren lässt!
kann mir bitte jemand sowas zukommen lassen?


Vielen Dank schon mal für eure Mühe!

von gerhard (Gast)


Lesenswert?

hallo stefan,
schon mal auf www.yagarto.de geschaut?
da findest du ein komplettes paket inkl. div. examples.

gruss
gerhard

von Stefan (Gast)


Lesenswert?

Hallo Gerhard!

Danke für deine Antwort.
Auf der oben genannten Homepage konnte ich aber auch nur Beispiele für 
LPC2148 und LPC2294 finden.
Werd aber am Abend, wenn ich zuhause bin versuchen, vielleicht find ich 
irgendwie raus was ich im StartUp-Code verändern muss, damits mit meinem 
Mikrocontroller funktioniert!

Gruß Stefan

von antworter (Gast)


Lesenswert?

Von dem Startup-Code kannst Du erstmal die Finger lassen - der kopiert 
hauptsächlich die Daten/Variablen in den RAM, setzt diese (so notwendig) 
auf 0 und stellt die Interrupt-Tabelle zur Verfügung - sozusagen alles 
ARM7-standard.

Wichtiger sollte für Dich die Betrachtung des linker-scripts (*.ld) 
sein.
Hier werden die Speicherbereiche (RAM, ROM) definiert - diese mußt Du 
meist an Deinen spezifischen Controller anpassen.

von A.K. (Gast)


Lesenswert?

Der 2294 dürfte eine gute Basis sein, weil gleiche Baureihe. Aber nur 
wenn dessen Demo keinen externen Speicher vorsieht. Musst dann 
eigentlich nur noch im Linker-Script die obere Grenze vom Flash-Memory 
reduzieren.

von Stefan (Gast)


Lesenswert?

Die Anleitung für die Entwicklungumgebung habe ich unter folgendem Link 
gefunden:
http://www.olimex.com/dev/index.html

Der Source-Code für die Beispiele ist hier:
http://www.olimex.com/dev/soft/arm/LPC/sourcecode.zip

ich kann da aber kein linker-script finden!
die einzigen Dateien, die da drin sind:

crt.s
main.c
LPC214x.h
demo2148_blink_flash.cmd

ist das *.cmd file das linker-script?

von Stefan (Gast)


Lesenswert?

ja ist es!
sorry für die Frage - habs grad in der Beschreibung gefunden!

muss ich nur noch herausfinden, wie ich es anpassen muss!

von Stefan (Gast)


Lesenswert?

so siehts bisher mal aus:

MEMORY
{
  flash            : ORIGIN = 0,          LENGTH = 128K


  ram_isp_low(A)   : ORIGIN = 0x40000120, LENGTH = 223
         /* variables used by Philips ISP bootloader  */


  ram             : ORIGIN = 0x40000200, LENGTH = 32513
         /* free RAM area


  ram_isp_high(A)  : ORIGIN = 0x40007FE0, LENGTH = 32
         /* variables used by Philips ISP bootloader  */


  ram_usb_dma      : ORIGIN = 0x7FD00000, LENGTH = 8192
         /* on-chip USB DMA RAM area (not used)
}

flash hab ich bereits angepasst!
statt 512K -> 128k

nun kenne ich mich aber nicht aus was die unterschiedlichen RAM Bereiche 
bedeuten!

von Stefan (Gast)


Lesenswert?

kann mir da noch bitte jemand weiterhelfen???

von Robert Teufel, NXP (Gast)


Lesenswert?

Nur ein kleiner Tip mit Bezug auf die Beispiele fuer den LPC2148 und 
LPC2294.

Was auf dem LPC2294 laeuft und keinen externen Bus benuetzt laeuft auch 
auf dem LPC2129, die sind register / binaer compatibel.
Was auf dem LPC2148 laeuft und nicht die Fast I/O oder den USB benuetzt 
laeuft im allgememeinen auch auf dem LPC2138. Der LPC2148 ist allerdings 
eine Obermenge und hat ein paar verbesserte Features.

Also fuer LPC2138 den LPC2148 nehmen und fuer den LPC2129 den LPC2294

Robert

von Stefan (Gast)


Lesenswert?

Hi Namensvetter! Warst du schon hier?

gcc-Port of the LPC2000 Example-Code-Bundle for LPC213x/LPC214x (Philips 
LPC2000 ARM7TDMI-S controller series)
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/lpc2k_bundle_port/index.html

LPC2106, LPC2129 and LPC2138 ARM7 interrupt-driven UART
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/#lpc_uart_irq

In der GNUARM Toolchain sind sehr wenige Beispiele dabei. Bei WINARM 
sind es wesentlich mehr. U.a. auch Linkerkontrollskripte (*.ld) und 
Startup-Code (*.S) für den LPC2138 und LPC2119.

von Stefan (Gast)


Lesenswert?

Zum Verständnis bestehender Linkercontrolscripts und behutsamer 
Anspassung kann vielleicht dies beitragen:
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/script-format.html

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.