mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FreeRTOS auf LPC 1768


Autor: Hochi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Ich habe seit gut 4 Wochen ein Projekt in der Schule laufen das sich um 
FreeRTOS dreht. Als Hardware hab ich eine LPC 1768 Stick mit einem 
Evalution Board 24COM-A3 zur Verfügung.

Als Grundstein hab ich mir die Demo von FreeRTOS.org (GCCRedSuite 
Edition) geholt und hab sie nun einigermaßen im HiTop zum laufen 
gebracht. Warum ich HiTop verwenden? Ich muss. Ich würde gerne KEIL 
verwenden, darf das aber nicht. Und eigentlich bin ich ziemlich 
verärgert über die Software von HiTEX da sie nur Fehler bringt aber gut 
das ist jetzt ein anderes Thema.

Nach unzähligen Fehler habe ich es nun endlich geschafft das System zum 
Compelieren und Laufen zubringen. Bisher habe ich nur die DemoTasks 
ausprobiert (LED Flashen, usw.) und diese funktionieren. So jetzt will 
ich aber den WebServer zum laufen bringen.

Und hier tun sich einige Fehler auf. Die Funktion 
xTaskCreate(vuIPTask,...) wird aufgerufen und bewirkt praktisch nichts. 
Ich habe in den Config Files die IP Adresse konfiguriert und auch eine 
FixeAdresse eingestellt aber ich kann das Board nicht ansprechen und das 
Board selbst meldet sich auch nicht. (Muss ich das erst 
hinzuprogrammieren? Also das er z.B. auf einen Ping reagiert?)

Überwachen tu ich die Leitung mit WireShark. So im Task erstellen geht 
er eigentlich alle Funktionen durch und geht auch z.B. in die Funktion 
hinein wo er den uIPTask als den jetzigen Task übernimmt aber es tut 
sich rein garnichts. Vorallem frage ich mich für was die Variablen 
pdFALSE und die Funktion traceTASK_CREATE( .. ) das sind. Da die 
Variabel nie einen Inhalt hat und auch irgendwie nirgends definiert wird 
und die Funktion zwar definiert ist aber nicht ausprogrammiert zu sein 
scheint. (??)

Anfangs habe ich gedacht es liegt möglicherweise an der Priorität aber 
das tut es nicht. Der LED Task so kommt es mir vor wird munter weiter 
ausgeführt, der uIP Task jedoch nicht. Die Prioritäten habe ich deswegen 
auch schon geändert und den uIP Task bevorzugt aber es funktioniert 
nicht.

Was mich noch nachdenklicher macht ist die Tatsache das wenn ich auf 
"run" im Debugger drücke und dannach gleich wieder auf "stop" das das 
Programm irgendwo steht. Entweder im TaskScheduler oder in der 
HardFaulException.

Ich denke ich mache grundsätzlich etwas falsch und ich hoffe hier kann 
mir jemand helfen. Muss ich irgendetwas spezielles konfigurieren bevor 
ich den Ethernet Port starte oder muss ich andere Funktionen ausführen?

Danke für die Hilfe!

Hochi.

Autor: Gebhard Raich (geb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Kiste im HardfaultExeption steht, schmiert irgend ein Task 
schon mal ab ==> schwerwiegendes Problem,mußt du finden.
Die Tasks mußt du als endlos loop programmieren. Unmittelbar nach 
vTaskStartScheduler starten die Tasks,wenn manche nicht laufen 
sollen,mußt du sie am besten vor der endlos-loop suspendieren. Vorsicht 
auch mit xTaskResumeFromISR , da kann es schell ganz komische Probleme 
geben.
ja, generell ist das ganze nicht einfach zu debuggen, gut überlegen, 
wohin man breakpoints setzt.

viel Erfolg

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.