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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.