www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wechsel der IDE von Crossworks auf Keil µVision


Autor: S. M. (hellor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite seit kurzem mit einem Mikrocontroller-Programm, welches ich 
nun von Crossworks for ARM 1.7 auf Keil µVision 3 portieren soll. Ich 
habe in einigen Praktika mal mit dem MSP430 gearbeitet, bin aber beim 
besten Willen kein Profi...

Verwendeter µC ist der LPC2106 von NXP. Das Programm besteht aus 
etlichen C-Files sowie Headern. Viele der Funktionen sind 
Interruptgesteuert. Kann mir mal jemand grob zusammenfassen, welches die 
Hauptprobleme bzw. Schwierigkeiten sein werden.

Die Header zwecks Registeransteuerung anzupassen sollte ja nicht das 
große Ding seien.Mir wurde jedoch gesagt, dass die Interruptfunktionen 
und andere zeitkritische Funktionen Probleme machen können.

Falls mir jemand Tips geben kann, worauf ich am besten gleich zu Beginn
achten sollte, bzw. mit was ich rechnen muss, wäre ich ausgesprochen 
dankbar.
Achja, auch wenn jemand irgendwelche Lesetips (wenn möglich zum 
Download) hat, immer her damit :)

MfG, hellor

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hinter Crossworks arbeitet die GNU Toolchain. Habe schon öfter Code für 
IAR EWARM und Realview (die Toolchain hinter uVision) nach GNU portiert, 
nur sehr selten von GNU->"kommerziell", hier also nur eine Kurzfassung 
der Unterschiede:
- Startup-Code anpassen von GNU-Assembler nach Realview Assembler, die 
Assembler-Anweisungen selbst kann man 1:1 übernehmen. Die 
Assembler-Direktiven müssen angepasst werden. Falls der Startup-Code 
nicht allzu komplex ist, dürfte es einfacher sein, auf Grundlage eines 
Beispiels von Keil einen neuen Startup-Code zu schreiben.
- Das Memory-Layout in den uVision Dialogen anpassen. Normalerweise kann 
man Standardeinstellungen verwenden (Startadresse Flash, Startadresse 
RAM).
- Bei komplexem Memory-Layout müssen man die Einstellungen aus 
Crossworks, mit denen im Hintergrund ein Linker-Script erzeugt wird so 
in uVision übernommen werden, dass ein vergleichbares 
"scatter-load-file" erzeugt wird bzw. eigene Scatter-Load-File vorgeben 
(nie selbst ausprobiert, Keil Eval. unterstützt dies nicht).
- Interrupt-Handler anpassen, falls kein Assembler-Wrapper genutzt wird: 
Bei Code für GNU erkennbar am attribute in der Funktionsdeklaration, 
Portierung vgl. Realview Dokumentation __irq. Bei Assembler-Wrapper ist 
nur der Wrapper zu portieren, C-Code der Handler bleibt gleich.
- evtl. gibt es noch Besonderheiten wie spezielle Memory-Sections, 
RAM-Funktionen etc. Falls der Fall, nochmal konkret fragen.

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.