Gast
#651695
Hallo Zusammen, ich versuche gerade einen ADC auszulesen und das Ergebnis über den UART zu schicken. (Ähnlich wie das bei einem Beispiel auf der nxp-Seite gezeigt wird.http: //www.standardics.nxp.com/support/documents/microcontrollers/pdf/tn06004 .pdf ). Dazu habe ich einen Feld definiert, in den ich die Zeichenkette mit sprintf() einlese. Das klappt auch so lange, wie ich nur einen fest definierten Zeichensatz ausgebe. Sobald ich jedoch die Werte des ADC einlesen will (mit %2.2f) bekomme ich beim Compilieren den angehängten Fehler: Ich arbeite mit dem YAGARTO-IDE (Eclipse). Seltsam an der Sache ist, dass ich nirgends das Verzeichnis "newlib-1.14.0" finden kann. Nach ein wenig suchen im Netz, habe ich diese auch gefunden (http://sourceware.org/newlib/), weiss aber leider nicht, wie ich diese unter Windows und Eclipse einbinden bzw. kompilieren soll. Ich bin um jede Hilfe und jeden Hinweis dankbar. beste Grüße Thomas ... arm-elf-gcc -c -mcpu=arm7tdmi -O0 -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=src/adc.lst -MD -MP -MF .dep/adc.o.d -I . -I ./inc src/adc.c -o src/adc.o arm-elf-gcc ./src/crt.o ./src/main.o ./src/time.o ./src/serial.o ./src/blinky.o ./src/adc.o -mcpu=arm7tdmi -nostartfiles -T./prj/olimex_lpce2294_ram.ld -Wl,-Map=test.map,--cref,--no-warn-mismatch -o test.elf c:\programme\yagarto\bin\..\lib\gcc\arm-elf\4.1.1\..\..\..\..\arm-elf\bi n\ld.exe: region ram is full (test.elf section .text) c:\programme\yagarto\bin\..\lib\gcc\arm-elf\4.1.1\..\..\..\..\arm-elf\bi n\ld.exe: section .text [40000000 -> 40008a2b] overlaps section .data [40000000 -> 40000823] c:\programme\yagarto\bin\..\lib\gcc\arm-elf\4.1.1\..\..\..\..\arm-elf\bi n\ld.exe: section .bss [40000824 -> 400011ff] overlaps section .text [40000000 -> 40008a2b] c:\programme\yagarto\bin\..\lib\gcc\arm-elf\4.1.1\..\..\..\..\arm-elf\bi n\ld.exe: test.elf: section .text lma 0x40000000 overlaps previous sections c:/programme/yagarto/bin/../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/li b\libc.a(syscalls.o): In function `_sbrk': ../../../../../../newlib-1.14.0/newlib/libc/sys/arm/syscalls.c:500: undefined reference to `end' collect2: ld returned 1 exit status make: *** [test.elf] Error 1 make: Target `all' not remade because of errors. Der Quellcode, an dem es wohl scheitert ist folgender: ... char hallo[100]; Value1 = ADC_read(1); //Convert AIN0 word=((double)Value1) * (3.3/1024); counter = sprintf(hallo, "%2.2f", word) ; //Die einzelne char-Zeichen senden. while(i<counter) { putchar_1(hallo[i]); i++; } ....