Forum: Mikrocontroller und Digitale Elektronik 8051 librarys howto??


von KMT (Gast)


Lesenswert?

hallo,

ich bin seit gestern verkrampft auf der suche nach einem howto (oder 
wenigstens ein paar info's ) wie ich aus meinen c-funktionen eine 
library
für einen 8051 MCU zusammen baue.
mit keil µvision hab ich schon eine erstellt, aber irgendwie 
funktioniert
das nicht (vielleicht mangels fehlender anleitung) und vorallem scheint
man die erstellten Librarys dann auch nur in µvision verwenden zu 
können.

schön wäre es wenn mir jemand so weiterhelfen könnte,so daß ich am 
schluß eine header-datei und eine library-datei habe (die auch 
funktionieren).

optimal wäre es wenn ich das ganze mit dem JFE(Jens File Editor) und 
makewiz hinbekommen würde.

danke im voraus!

mfg

kmt

von Peter D. (peda)


Lesenswert?

KMT schrieb:
> mit keil µvision hab ich schon eine erstellt, aber irgendwie
> funktioniert
> das nicht (vielleicht mangels fehlender anleitung) und vorallem scheint
> man die erstellten Librarys dann auch nur in µvision verwenden zu
> können.

Das haben Libs so ansich. Sie kaufen nur unter dem Compiler, mit dem sie 
auch erstellt wurden.
Es gibt nämlich keinen Lib-Standard, jeder Compiler kocht sein eigenes 
Süppchen.
Willst Du Libs portabel halten, mußt Du sie als Quelltext belassen.

Ich belasse eigene Libs grundsätzlich als Quelltext, weil ich mir nicht 
sicher bin, daß sie 100% fehlerfrei sind. Dann steht der Benutzer nicht 
dumm da, sondern kann entdeckte Fehler korrigieren.

Auch erlauben fertige Libs keine Anpassungen an die Hardware mehr 
(Quarzfrequenz, Pinzuweisungen).


http://www.keil.com/support/docs/161.htm


Peter

von KMT (Gast)


Lesenswert?

Danke peter

ich dachte die sind nur vom verwendeten mcu abhängig 
(prozessorbefehlssatz)
da sie doch schon kompiliert sind.

da ich hier standartmäßig den JFE und MakeWiz verwende wäre es schön, 
wenn mir eine erklären würde wie ich dort eine library erstellen kann.

big thx

kmt

von Olaf (Gast)


Lesenswert?

> Ich belasse eigene Libs grundsätzlich als Quelltext, weil ich
> mir nicht

Bei dicken Projekten ist es aber schon schoen wenn man immer nur eine
Libary einbindet. Auch wenn du in deiner Libarie irgendwann mal einen
Fehler findest kannst du den ja immer noch beheben. Du weisst dann aber
auch das eine bestimmte Libarie die du schon seit Jahren in vielen 
Projekten verwendet immer ein bestimmtes Verhalten aufweisst. Es gibt
keine kontinuierliche Veraenderung an dem Code weil du immer mal eine
Kleinigkeit nachbesserst. Letzeres koennte dann dazu fuehren das du nach
fuenf Jahren mal wieder ein altes Programm uebersetzt und es gibt dann
Probleme weil du eine Aenderung nicht bedacht hast. Oder du hast in
jedem Projekt eine Kopie deiner Libarie und musst dann jeden Fehler
jedesmal ueberrall nachbessern.

So sachen wie z.B FAT-filesystem, ansprechen von MMC,
GrafikLCD ansprechen, hoehere Funktionen fuer GrafikLCDs habe ich
immer in eigenen Libaries.
Bei Programmen die in einem Mega8 passen sicher nicht notwendig,
wenn du aber einen M16C mit 256k Flash fuellst dann halte ich das
fuer sehr sinnvoll.

> Auch erlauben fertige Libs keine Anpassungen an die Hardware mehr
> (Quarzfrequenz, Pinzuweisungen)

Bei geschickter Programmierung kannst du einer Libary sowas in
der Initialisierung uebergeben. Man bezahlt halt mit etwas mehr 
Overhead,
bekommt dafuer aber ein leichteres arbeiten bei jedem zukuenftigen
Projekt.

> ich dachte die sind nur vom verwendeten mcu abhängig
> (prozessorbefehlssatz)
> da sie doch schon kompiliert sind.

Bei einer Libary handelt es sich aber nicht direkt um kompilierten 
Prozessorcode. Da muessen ja auch noch viele Zusatzinformationen drin 
stehen. Zum Beispiel wie die Funktion heisst die du gerade aufrufst.
Sowas koennte jeder Hersteller so machen wie er lust hat.

Olaf

von KMT (Gast)


Lesenswert?

ah licht auf geht ,danke.

eigentlich ja auch klar...hatte nicht weiter drüber nachgedacht.

kann mir jemand mit dem lib erstellen unter jfe+makewiz helfen?

bitte,bitte...das ganze rumgegoogle hat mich schon ganz kirre gemacht!

von KMT (Gast)


Lesenswert?

hat denn keiner eine idee?? ;-(

von Peter D. (peda)


Lesenswert?

KMT schrieb:
> kann mir jemand mit dem lib erstellen unter jfe+makewiz helfen?

Was ist das?
Ist das eine IDE oder ein Compiler?

Wenn es eine IDE ist, die den Keil aufruft, dann kannst Du mal schauen, 
wie µvision es macht.
Jede Auswahl im µvision ruft einfach nur das entsprechende Programm mit 
den entsprechenden Parametern auf.
Im Logfenster stehen danach alle Kommandozeilen drin. Und die mußt Du 
dann nur noch in Deine IDE verwursten.


Peter

von KMT (Gast)


Lesenswert?

Hm ... is leider eine eigenständige IDE! die ruft nichts vom keil auf.

Ist halt so ein IDE-Packet (JFE = editor mit compiler ; makewiz = 
erstellt einem die benötigten *.mak files für den JFE ).

von Peter D. (peda)


Lesenswert?

KMT schrieb:
> Ist halt so ein IDE-Packet (JFE = editor mit compiler ;

Und die IDE ruft irgendnen Compiler auf, den wirst Du rauskriegen 
müssen.
Und dann in der Doku dieses Compilers nachschauen, wie dort Libs 
erstellt werden, bzw. ob der das überhaupt kann.


Peter

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.