EFSL für ARM7 Crossworks gesucht

OP #787903
Lesenswert?

Hallo,

nach einigen Stunden habe ich das efsl Projekt für SD Karten verwaltung 
soweit, dass ich es mit GCC und Crossworks 1.7 fehlerfrei compilieren 
kann.
was leider nicht hinhaut ist das Linken der Module.

Beim Linken auf "Flash debug" erscheint eine Fehlermeldung, die mir sehr 
tief im System versteckt scheint und die ich nicht beheben kann, weil 
ich nicht weiss wo ich suchen muss. Ich habe die <crossstudio_io.h> 
nicht eingebunden und benutze auch nirgendwo eine debug Funktion, nur 
eine leere Hauptschleife in der main.

Bei "Flash release" geht alles glatt durch. Auch in der "Flash debug", 
sobald man den Compilerschalter "Debug info erzeugen" abschaltet. Aber 
das ist ja eben erstmal nicht Sinn der sache.

Hat jemand eine Idee? Oder kann mir ein fix und fertiges, 
compilierbares, lauffähiges Crosssworks Projekt mit der efsl SD Card 
verwaltung für LPC2xxxx schicken, wo dieser Fehler nicht auftritt, so 
dass ich meine Anwendung darauf aufsetzen kann?
1
Build active project
2
Building “FAT” in configuration “ARM Flash Debug”
3
Compiling main.c
4
Compiling fs.c
5
Compiling ioman.c
6
Compiling mkfs.c
7
Compiling plibc.c
8
Compiling time.c
9
Compiling uart.c
10
Compiling ui.c
11
Compiling dir.c
12
Compiling disc.c
13
Compiling efs.c
14
Compiling ls.c
15
Compiling partition.c
16
Compiling debug.c
17
Compiling extract.c
18
Compiling fat.c
19
Compiling file.c
20
Compiling lpc2000_spi.c
21
Compiling sd.c
22
Assembling crt0.s
23
Assembling Philips_LPC210X_Startup.s
24
Linking FAT.elf
25
C:/Programme/Rowley Associates Limited/CrossWorks for ARM 1.7/lib/libarmdi_v4t_a_le_mt.a(__debug_operations.o): In function `__do_debug_operation':
26
__debug_operations.c:(.text+0x18): undefined reference to `__debug_io_lock'
27
__debug_operations.c:(.text+0x38): undefined reference to `__debug_io_unlock'
28
Build failed
OP #788048
Lesenswert?

Hallo,

Nachsatz:

Das problem liegt darin, dass folgende Konstrukte im efsl Text den 
Fehler auslösen:

DBG((TXT("Read 512 bytes from dir with offset %li.\n"),offset));

in der debug.h Datei habe ich folgendes eingetragen:
1
#ifdef HW_ENDPOINT_LPC2000_SD
2
    #include "lpc2000_dbg_printf.h"
3
    #define TXT(x) x; 
4
    #define DBG(x) debug_printf(x)
5
    #define FUNC_IN(x) ; 
6
    #define FUNC_OUT(x) ; 
7
    //#define debug debug_printf 
8
  
9
  #else

Vom Compiler her ist das richtig aber eben nicht für den Linker.

Eleminiere ich alle ´DGB Statements läuft er einwandfrei durch.

Da ich sonst das debug_printf problemlos verwenden kann frage ich mich, 
wann da denn wieder los ist? Denn so ganz ohne Debugfenster wollte ich 
ja nicht arbeiten.

Mannomann.....

Gruss,
Christian
Gast #2000785
Lesenswert?

Auch wenn es den Hilfsbedrüftigen nicht mehr interessieren wird:
Hierbei sollte man das DEBUG-Define (config.h) rausnehmen. Alternativ 
kann mann natürlich das ganze Debug-Zeug ebenfalls portieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren