Forum: Mikrocontroller und Digitale Elektronik IAR Workbench - Libary einbinden


von Markus (Gast)


Lesenswert?

Hallo.

Ich arbeite mit der IAR Workbench 4.21 und will einen FT232BM
programmieren.
Bei diesem USB-Chip ist eine *.dll, *.h und einen *.lib dabei.

Wie kann ich die *.lib einbinden, damit ich die vorimplementierten
Funktionen der *.dll nutzen kann?

Danke

von Rahul (Gast)


Lesenswert?

Ich gehe mal ganz stark davon aus, dass du mit IAR keinen PC
programmieren willst. DEmzufolged kannst du auch keine dll in ein
Mikrocontroller-Programm einbinden.
Dafür ist die .h vorgesehen.

von Markus (Gast)


Lesenswert?

Also,

ich habe die dll mithilfe der HeaderDatei eingebunden
#include "FTD2XX.h"

Allerdings kriege ich jetzt 100 errors, weil er ganz viele Sachen aus
der Header Datei nicht kennt.
z.B.
FTD2XX_API
FT_STATUS WINAPI FT_SetBaudRate(
    FT_HANDLE ftHandle,
  ULONG BaudRate
  );

Deshalb dachte ich mir, dass das an der *.lib liegen muss, die ich dann
eben noch einbinden will.

Vielleicht ist mein Problem jetzt etwas klarer

von Rahul (Gast)


Lesenswert?

Die Fehlermedlungen hängen wohl eher damit zusammen, dass IAR gewisse
Sachen (z.B. ULONG) nicht kennt.
Wo hast du die Dateien her?

von Rahul (Gast)


Lesenswert?

Kann es sein, dass FTDI gar keine .h-Datein für die Controller-Seite zur
Verfügung stellt, sondern alles an Support (Libraries etc) auf die
PC-Seite ausgelegt ist?
Würde mich nicht wundern, da das Ding ja mehr oder weniger eine
serielle Schnittstelle ist. Konfiguriert wird das Ding über den USB und
das EEPROM.

von Markus (Gast)


Lesenswert?

Die Dateien sind direkt vom Chiphersteller, FTDI

Ich komme ja eigentlich mehr aus der Softwareentwicklung und nicht
direkt aus der Firmwareecke, aber beispielsweise beim VisualStudio kann
man so *.dll´s eigentlich ganz easy einbinden.
In C# kann man das auch über eine Funktion DLLIMPORT machen.

Also sollte das die IAR-Umgebung doch auch können ???

von Markus (Gast)


Lesenswert?

für die dll ist eine h-datei dabei.

von Rahul (Gast)


Lesenswert?

hast du einen Link dazu?

von Markus (Gast)


Lesenswert?

http://www.ftdichip.com/Drivers/D2XX.htm

Windows XP Driver 3.01.04

das ist der Treiber, den ich benötige, damit Windows den Chip erkennt.
Sprich, ich stecke den Controller an, dann kommt ein PopUp "Neue
Hardware gefunden". Und bei diesem Treiber, sind die Dateien dabei

von Rahul (Gast)


Lesenswert?

Du willst mit IAR ein Windows-Programm erstellen, oder habe ich dich da
falsch verstanden?
IAR ist ein reiner Embedded-Compiler, also für verschiedene
Mikrocontroller. Mit Windows hat das nix zutun.
Mikrocontroller werden in der Regel auch nicht wie
betriebssystem-orientiert programmiert - da macht man (fast) alles
schön von Hand, weil man selbst für die Verwaltung der Resourcen
verantwortlich ist.

von Markus (Gast)


Lesenswert?

Ich hab eine Platine, auf der ist ein USB-Controller drauf. Diesen
USB-Controller will ich mit IAR programmieren.
Das gute an diesem Controller ist eben, dass Windows in nach
Installation des Treibers erkennt.

Auf Betriebssystemseite arbeite ich mit LabView um mit dem USB-Port zu
kommuniezieren.

Aber auf Embedded Seite arbeite ich mit IAR und dem FT232BM. Und für
diesen Controller gibt es eine vorgefertigte DLL vom Hersteller, da
sind nützliche Funktionen drin wie z.B. SetBaudrate(..),
OpenUSBPort(...) ...

Und diese Dll will ich nutzen um nicht alles "von Hand" machen zu
muessen, wenn es schon was fertiges gibt.

Hoffentlich ist es jetzt klarer

von Rahul (Gast)


Lesenswert?

Da liegst du falsch.
Die dll ist für das PC-Programm.
Den FTDI-Chip musst du dir wie eins dieser RS232-USB-Konverter-Kabel
vorstellen: auf der einen Seite ist der USB-Stecker, auf der anderen
eine RS232.
Den USB-Controller kannst du über die USB-Verbindung konfigurieren
(SetBaudRate...).
DDL sind für Betriebssysteme, nicht für Mikrocontroller (ohne BS).
Mit IAR programmiert man den Controller, der in der Reihe hinter dem
FTDI steht, also einen AVR, 8051 oder dergl. IAR unterstützt die FTDIs
gar nicht. Für IAR ist der FTDI nur ein Baustein, den man über die
serielle Schnittstelle anspricht; die eigentliche Funktion des
Bausteins ist dem IAR-Compiler sehr egal.

von Markus (Gast)


Lesenswert?

OK, das glaub ich hat mich überzeugt :-)

Danke für die Hilfe!

von dave (Gast)


Lesenswert?

DDL sind für Betriebssysteme, nicht für Mikrocontroller (ohne BS).

was soll den der Schwachsinn.
Betriebssysteme gibt es auch für Mikrocontroller und ich kann immer
noch keine DLL einbinden.

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.