www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC xxxx Header Philosophien


Autor: Christian J. (elektroniker1968)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wer schonmal diversen Codde aus dem Netz verwenden wollte stellt fest, 
dass die Registerbelegung mit Symbolnamen auf unterschiedliche Weise 
gehandhabt wird.

Rowley hat eine grosse Datei mit Registernamen und Bitposition darin,
R O Software verwendet eine sehr pfiffige struct,union Struktur aus ca 
20 Header Dateien, die voneinander abhängig sind , Keil hat auch etwas 
Eigenes geschaffen.

Das Dumme ist, dass die Registernamen sich nicht am offiziellen Handbuch 
des Arm orientieren sondern mal so und mal anders sind, manchmal ist es 
eine grosse Datei, manchmal sind es auch viele, für jedes 
Peripheriegerät eine, die man dann einbindet wenn man es braucht. Ein 
gutes beispiel sind die uart Implementationen, oft benutzt von R O 
Software, man findet sie in vielen Projekten wieder.

Das Dumme: Der Programmcode, den man nutzen will ist durch die Syntax 
fix an diese Dateien gebunden, im schlimmsten Falle muss man hunderte 
Zugriffe ändern, wenn man sie portieren will, da es nicht möglich ist 
zwei dieser Headerdateien gleichzeitig in einem Projekt zu haben, wenn 
sich darin Namen überschneiden oder Spezial DEFINES verwendet werden. 
Crossworks "kennt" die defines global, auch wenn ich eine "Solution" als 
mehrere Projekte aufteile und zusammenlinke. Vielleicht könnte mal 
jemand, der diese Umgebung nutzt auch den Unterschied zwischen 
"projects" und "Solutions" erklären, der wird mir nicht ganz klar.

Ich überlege nun zu welchem System ich tendieren soll, welches die 
grösste Verbreitung hat was zB den LPC2138 angeht ddenn natürlich 
möchhte ich code, den es schon gibt nicht nochmal schreiben müssen.

Jene, die sich mit diesem problem schon mal rumgeschlagen haben können 
vielleicht ihre erfahrungen dazu beitragen. Danke.

Christian

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es zwingt dich niemand dazu, die vorhandenen Header zu verwenden. Wenn 
kein eindeutiger Standard existiert (wie etwa bei AVR) oder erst 
garkeine dabei sind (ARM/GCC), dann baue ich mir solche Header gerne 
auch selbst.

Zudem neige ich dazu, nur auf unterster Ebene direkt die Hardware zu 
gehen. Diese unterste Ebene bilden Software-Module für UART,I2C,CAN,... 
und der Rest des Programms arbeitet dann nur noch mit den Modulen. 
Andere nenne das einen HAL. Ähnlich bei Portbits, nur sind es dort eher 
Makros. Das erleichtert die Portierung, nicht zuletzt auch auf 
Controller mit abweichender Hardware.

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian

das Problem wurde bei ARM erkannt, denn es geht nicht so sehr um die 
Header der Chipanbieter oder SW-Anbieter sondern um die Header fuer ARM, 
d.h. den groessten Nutzen haben ARM und die Endanwender. Fuer den 
Cortex-M3 gibt es jetzt eine Normung, oder mindestens den Vorschlag.
http://www.arm.com/news/23722.html

Bei den LPC, nimm die Form, die dem Tool Deiner Wahl entspricht, also 
Keil/IAR/GCC/Rowley...

Ohne es genauer geprueft zu haben, wahrscheinlich ist die Keil 
Nomenklatur relativ nahe der M3-Spezifikation

Robert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.