Hallo zusammen Ich versuche ein SAM7 Projekt aufzusetzen und stehe vor ein paar Problemchen... Der Aufbau des Systems hat soweit funktioniert (www.yagarto.de) Ich kann für das at91sam7x-ek und auch für den icswift die Minimal-Demo kompilieren und debuggen. Nächster Schritt ist die FreeRTOS-Demo mit der Ich einen großen Teil meiner Anforderungen erschlagen kann. Dort ist ein Projekt für das at91sam7x-ek und eclipse vorhanden, dies scheint aber für WinARM zu sein, das wohl nicht weiterentwickelt wird und älter als yagarto ist.... Jetzt versuche Ich aus den Makefiles der funktionierenden Minimal-Demo und der FreeRTOS-Demo ein funktionierendes Projekt zu bekommen. Leider bin Ich mit der GCC-Toolchain nicht wirklich sattelfest... Ich kann alles compilieren (ein paar warnungen sind geblieben), das Linken scheint aber schief zu gehen. --- arm-none-eabi-gcc ./src/startup.o ./src/low_level_init.o ../../../Source/portabl e/GCC/ARM7_AT91SAM7S/portISR.o ./webserver/EMAC_ISR.o ./SrcAtmel/Cstartup_SAM7.o ./USB/USB_ISR.o ./main.o ./ParTest/ParTest.o ../../Common/Minimal/BlockQ.o ../. ./Common/Minimal/blocktim.o ../../Common/Minimal/flash.o ../../Common/Minimal/in teger.o ../../Common/Minimal/GenQTest.o ../../Common/Minimal/QPeek.o ../../Commo n/Minimal/dynamic.o ./webserver/uIP_Task.o ./webserver/httpd.o ./webserver/httpd -cgi.o ./webserver/httpd-fs.o ./webserver/http-strings.o ./webserver/SAM7_EMAC.o ../../Common/ethernet/uIP/uip-1.0/uip/uip_arp.o ../../Common/ethernet/uIP/uip-1 .0/uip/psock.o ../../Common/ethernet/uIP/uip-1.0/uip/timer.o ../../Common/ethern et/uIP/uip-1.0/uip/uip.o ../../../Source/list.o ../../../Source/queue.o ../../.. /Source/tasks.o ../../../Source/portable/GCC/ARM7_AT91SAM7S/port.o ../../../Sour ce/portable/MemMang/heap_2.o ./USB/USBSample.o syscalls.o -mcpu=arm7tdmi -nostar tfiles -T./prj/sam7x256_ram.ld -Wl,-Map=FreeRTOSDemo_ram.map,--cref,--no-warn-mi smatch -o FreeRTOSDemo_ram.elf c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.0/../../../../arm-none-eabi/ bin/ld.e xe: FreeRTOSDemo_ram.elf section `.text' will not fit in region `RAM' c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.0/../../../../arm-none-eabi/ bin/ld.e xe: region `RAM' overflowed by 82896 bytes collect2: ld returned 1 exit status make: *** [FreeRTOSDemo_ram.elf] Error 1 --- Hat da jemand einen Tip für mich? Hier im Forum gibt es einen Eintrag wo jemand die FreeRTOSDemo mit yagarto kompiliert hat. Vielleicht kann auch jemand mit einen funktionierenden makefile weiter helfen. Meines lege Ich in den Anhang. Vielen Dank schon mal Gruß Klaus
Sieht so aus, also würde ein Memory-Layout genutzt, bei dem Code und Daten im RAM des AT91 gehalten werden. Das ist oft praktisch zum debuggen und spart Flash erase/write-Zyklen aber bei diesem Beispiel reicht der verfügbare RAM-Speicher nicht aus, um den Programmcode aufzunehmen (section'.text' will not fit in region `RAM'). Abhilfen: Beispiel soweit verkleinern, dass der Maschinencode, die Variablen, Stack und evtl. HEAP in den RAM-Speicher passen oder eine Konfiguration für Flash- und RAM-Speicher nehmen. Entweder gibt es dazu ein extra Makefile oder im Makefile irgendwo in Eintrag zur Auswahl. Es sollte dann ein anderers Linker Skript verwendet werden (statt sam7x256_ram.ld). Name wahrscheinlich sam7x256_rom.ld oder sam7x256_flash.ld, sieht man dann aber auch in der Ausgabe.
Hallo Vielen Dank an Martin. Das wars.... Jetzt kann Ich kompilieren und das Projekt auf dem Arm schreiben und starten. Die LEDs blinken, beim stoppen hört dies auf.... soweit so gut. Das nächste Problem: Der Debugger zeigt mir den Quellcode nicht an. Breakpoints kann Ich setzen, Eclipse zeigt mir aber nach den Starten des Debugges ein 'unresolved breakpoint' und stoppt auch nicht. Bei der Minimal-Demo funktioniert das noch richtig. Hat dort noch jemand eine kleine Denkhilfe für mich? Gruß Klaus
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.