Forum: Mikrocontroller und Digitale Elektronik EFSL für ARM7 Crossworks gesucht


von Christian J. (elektroniker1968)


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

von Christian J. (elektroniker1968)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mal den Rowley-Support diesbezüglich kontaktiert?

Oder in der LPC2000-Group auf Yahoo nachgefragt? Dort ist auch Paul 
Curtis, ein Mitarbeiter von Rowley, aktiv und hilfsbereit.

von Christian J. (elektroniker1968)


Lesenswert?

Es funktioniert ja sonst in einfach Programmen. Aber dieses efsl ist 
schon ein Mordskonstrukt......

von bakman (Gast)


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.

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
Noch kein Account? Hier anmelden.