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
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
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.
Hallo Tueftler, könntest Du das funktionierende Projekt hier reinstellen? Danke!!!
kommt demnächst, will das ganze noch etwas aufräumen..
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.