Hi! ich code gerade an nem filesystem auf nem AT91SAM7 und wollte den speicher für handles und buffers dynamisch reservieren. wenn ich malloc benutze meckert der linker. arm-elf-gcc -mthumb -mcpu=arm7tdmi -mthumb-interwork -I. -gstabs -DROM_RUN -Os -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=Cstartup.lst -MD -MP -MF .dep/main.elf.d Cstartup.o main.o Cstartup_SAM7.o --output main.elf -nostartfiles -Wl,-Map=main.map,--cref -lc -lm -lgcc -lc -lgcc -TAT91SAM7S64-ROM.ld c:/winarm/bin/../lib/gcc/arm-elf/4.0.2/../../../../arm-elf/lib/thumb/int erwork\libc.a(mallocr.o): In function `_malloc_r':mallocr.c:(.text+0x25a): undefined reference to `_sbrk_r' :mallocr.c:(.text+0x3c4): undefined reference to `_sbrk_r' c:/winarm/bin/../lib/gcc/arm-elf/4.0.2/../../../../arm-elf/lib/thumb/int erwork\libc.a(freer.o): In function `_malloc_trim_r':mallocr.c:(.text+0x2c): undefined reference to `_sbrk_r' :mallocr.c:(.text+0x4a): undefined reference to `_sbrk_r' :mallocr.c:(.text+0x72): undefined reference to `_sbrk_r' Hat jemand nen Tip, der mich auch die richtige Spur führt?
.. ich bin umsteiger von avrgcc auf winarm ... muss man hier diese "systemfunktionen" selber coden .. ?
ahhh ok... sorry.. ich hab das hello projekt gefunden, wo die syscalls drin sind. mitkompiliert und jetzt meckert der linker nicht mehr. wie ich gesehen habe, wir die newlib verwendet.. kann ich auch die "standard"-lib benutzten???? oder muss ich für stdio immer die syscalls selber implementieren? wird der heap automatisch ans ende vom data segment gepackt oder kann ich ihn auch woanders hinsetzten? wie kann ich die größe des heaps bestimmen?
- Was soll man unter ""standard"-lib" verstehen? newlib ist eine libc. - Zu allgemeinen Informationen betr. syscalls vergl. newlib-Dokumenation. - Alternative zu syscalls.c im Projekt: eine Library (.a) mit den syscalls bauen und bei Bedarf anlinken (vgl. newlib-lpc/libnewlib-lpc.a) oder eine Toolchain um controllerspezifische standards ergaenzen und zusammenbauen (vgl. devkitpro f. gba) - Wert von Symbol end fuer sbrk kann im Linkerskript und auch an anderer Stelle auch auf andere Speicheradresse gelegt werden, aber warum? - Was ist mit Groesse des Heaps bestimmen gemeint? Maximalgroesse? Aktueller Speicherverbrauch? Martin Thomas
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.