Forum: Mikrocontroller und Digitale Elektronik Library von IAR auf Keil portieren


von Sabrina K. (sparklingdragon)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe mir diese USB Library mit Beispielen für den CC1111 von Texas 
Instruments runter geladen (http://www.ti.com/litv/zip/swrc088a).
Jetzt habe ich mir ein kleines Beispiel geschrieben, dass erstmal nur 
einen Teststring über USB an den PC gibt. Soweit funktiniert das auch, 
wenn ich den IAR Compiler benutze.
Ich müsste jetzt allerdings den Keil Compiler benutzen und da fangen die 
Probleme an. Ich habe wie bei meinen vorherigen Projekten auch schon 
alle Compiler spezifischen Sachen ersetzt (z. B. __xdata = xdata). Dann 
kamen Fehlermeldungen für die Assembler Files und mit Assembler kenn ich 
mich leider nicht aus. Ich hab versucht das trotzdem hin zu bekommen und 
er compiliert jetzt auch, aber dafür bekomme ich jetzt massenweise 
Linkerfehler. Außerdem glaube ich, dass die Assemberl Files so wie ich 
sie geändert habe nicht stimmen.

Den code habe ich angehängt. Das original Assembler File kommt gleich 
auch noch. Vielleich könnte sich das mal jemand ansehen. Das wäre echt 
klasse.

Vielen Dank schon mal

Sabrina

von Sabrina K. (sparklingdragon)


Angehängte Dateien:

Lesenswert?

So, hier ist das Assembler File.

von Sabrina K. (sparklingdragon)


Lesenswert?

Kann mir denn wirklich keiner helfen?
Nichtmal mit den Assembler Dateien?

von René K. (king)


Angehängte Dateien:

Lesenswert?

Im hab's eben nur schnell überflogen, aber ein Teil der Fehler ist 
sofort klar. So hast Du z.B. im Header das hier stehen:

extern const DESC_LUT_INFO xdata pUsbDblbufLut[];

Im ASM File hingegen steht das hier:

RCODE           SEGMENT CODE
                RSEG    RCODE
                .
                .
                .
pUsbDblbufLut:  DW interface0Desc   ; pInterface
                .
                .
                .

Ich muss Dir jetzt sicherlich nicht erklären, dass CODE und xdata nicht 
das selbe sind, oder?  Da ist es doch kein Wunder, dass der Fehler "*** 
ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC" gemeldet wird.

Der nächste Fehler ist das unresolved external mit 
"utilLeaveCriticalSection". Wenn Du Dir den Fehler mal genauer 
anschaust, wirst Du sehen, dass das Mangling des Compilers zuschlägt. 
Dieser suchst nämlich nach einer Funktion namens 
"_utilLeaveCriticalSection", und das lässt sich einfachst korrigieren. 
Ich habe die geänderte Datei einfach mal angehängt.

Und dann musst Du halt mal schauen, was noch übrig bleibt. :-)

von Sabrina K. (sparklingdragon)


Lesenswert?

Super, danke, das hilft mir sicher weiter.

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.