Hallo, ich habe zwei Projekte mit einem ARM7 die beide mit GCC kompiliert werden können. Das Problem ist, beide benutzen unterschiedliche Linker Files und Startup codes. Es sollte aber zum Schluss im Startupbereich das gleiche herauskommen. Jetzt ist es so, bei einem ist alles in Ordnung, beim Zweiten liegt der gewünschte Startupcode (Vektortabelle etc.) aber nicht bei 0x0000 sondern bei 0x0128. Im Bereich von 0x000 bis 0x128 steht was von 00000000 <deregister_tm_clones>: 00000044 <register_tm_clones>: 00000090 <__do_global_dtors_aux>: 000000d4 <frame_dummy>: und dann erst _startup: # Exception Vectors _vectors: ldr PC, Reset_Addr 128: e59ff018 ldr pc, [pc, #24] ; 148 <Reset_Addr> .... Habe keine Ahnung wo das herkommt. Kann mir bitte jemand helfen und mir sagen wie man das weg bekommt ? Danke
Dir kann geholfen werden. Lade dir die Lernbetty herunter und schau dort an, wie die BettyBase und deren Startupcode aussieht. Im Startup muß m.W. so etwa folgendes vorkommen: .section .text.startup .func Vectors .arm dazu gibt es (für die Betty!) folgende Linker-xcl: -Ttext 0x80000000 -Tdata 0x4000C000 -Map linkedgcc.txt -eHard_Reset -LE:/yagarto/lib/gcc/arm-none-eabi/4.7.2 -LE:/yagarto/arm-none-eabi/lib -o linkedgcc.elf Startup_LPC2220gcc.o interrupts.o main.thumb.o ...usw, hier kommen dann alle anderen .o rein --start-group -lgcc -lc -lm --end-group Damit sollte das Ganze zuverlässig laufen. Du mußt dir nur deine eignene Objectfiles eintragen, ebenso deine Adressen für RAM und ROM. Ach ja, ein separates Linkerfile braucht man dabei garnicht, das beim Linker Eingebaute reicht aus. W.S.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.