www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FreeRtos auf LPC1768 GCC Startschwierigkeiten


Autor: Tueftler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bastlerkollegen,


Ich arbeite momentan mit dem Cortex M3, speziell mit dem LPC1768 von 
NXP.

Es läuft eigentlich auch alles ganz gut. Ich benutze ein Makefile von 
Martin Thomas welches ich so weit angepasst habe, dass meine "normalen" 
Projekte damit funktionieren. Als Compiler kommt der arm-none-eabi-GCC 
von CodeSourcery zum Einsatz.

Nun wollte ich mir FreeRtos anschauen. Leider gibt es da für den LPC1768 
nur ein Projekt für Rowley-Crossworks und die Code-Red-IDE, die jedoch 
beide auf dem ARM-GCC basieren.
Da ich weder das eine noch das andere habe, habe ich also alle Dateien 
in mein MakeFile aufgenommen und soweit angepasst, dass es kompiliert.
(Rowley-Version)


Bei folgenden Sachen hat er gemeckert:
1. Kann kein File "IntQueueTimer.h" finden
   ->Habe darauf hin dieses File eines anderen DemoProjekts, nämlich
   LMS... in mein Verzeichniss kopiert und damit ist er zufrieden. 
(dieses
   File sieht bei allen Projekten gleich aus)

2. Eigenes StartupFile hinzugefügt (von Martin Thomas) da er bei dem
   Original die Datei "LPC1000.h" includieren wollte, die ich jedoch
   nirgends finden konnte.

Nun Kompiliert er die ganze Sache schon Fehlerfrei (nur einige Warnings
werden ausgespuckt) aber es blinken noch keine LEDs, leider.

Also mit der LED-Debug-Methode versucht herauszufinden, bis zu welcher 
Stelle er kommt.

Er ruft alle Funktionen auf bis "vTaskStartScheduler();" auf.

Nachdem ich dort dann etwas weiter geforscht habe, konnte ich
herausfinden, dass er bis zur Funktion "vPortStartFirstTask(void)" 
kommt.
Hier soll normalerweise die erste Task aufgerufen werden. Ab dort 
verliert
sich die Spur... :(

die Funktion xPortSysTickHandler wird anscheinend nicht aufgerufen, was 
ja schon mal schlecht ist, da innerhalb dieser ja normalerweise der 
Scheduler läuft.

Nun bin ich auch nicht so der Assembler Held, als dass ich da so ohne
Hilfe weiter kommen würde.
Vielleicht hat ja jemand von euch ein ähnliches Problem oder eben nicht,
und kann mir einen Tip geben.
Habe leider keinen Debugger, deshalb bleibt mir nur die 
LED-Debug-Methode.

Habe das Projekt angehängt, vielleicht kann ja mal einer einen Blick 
reinwerfen oder versuchen es zu kompilieren.

Ich freue mich auf eure Tips und hoffe, dass ihr mir vielleicht helfen 
könnt.

Tueftler

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast wahrscheinlich die falsche Startup-Datei genommen.
Wieso brauchst du eigentlich so viele?

Du musst die nehmen wo das hier drin steht:

.extern xPortPendSVHandler
.extern xPortSysTickHandler
.extern vPortSVCHandler

Das wäre dann

LPC1700_Startup.s

Autor: Tueftler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger,
Vielen Dank, dass du dir die Zeit genommen hast, in den Code 
hineinzuschauen und mir den Tip zu geben.
Hab gar nicht dran gedacht, dass der ja die richtigen 
Interrupt-Sprungaddressen da haben muss, um richtig zu funktionieren. 
Habe also die entsprechenden Interrupteinträge noch hinzugefügt und es 
nun also zum Laufen bekommen, und zumindest die LEDs blinken schonmal 
JuHu!

Jetzt gehts weiter.
Vielen Dank.

Autor: noch`n Tüftler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tueftler,
könntest Du das funktionierende Projekt hier reinstellen?
Danke!!!

Autor: Tueftler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt demnächst, will das ganze noch etwas aufräumen..

Autor: Tueftler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So hier nun die aufgeräumte Version...

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.