Hallo ARM-Gemeinde, im Laufe der Woche gab es im Thread Beitrag "Interrupts" eine Frage zum Compiler-Umstieg bei Keil von komfortablen CARM (der im Dezember 2005 von Keil eingestellt wurde) auf RealView für ARM (der neue bei Keil, von ARM übernommen, Keil hat sich Ende 2005 bei ARM eingekauft bzw. wurde von ARM gekauft), der ab diesem Zeitpunkt unter Keil µVision verwendet wird. Dort hatte ich eine Lösung gepostet, wie man die Nested-Interrupt-Technik unter RealView weiterhin anwenden kann, da unter RealView die Inline-Assembler-Makros aus den bekannten Hitex-Examples zum Umschalten nicht mehr funktionieren. RealView verhindert zuverlässig den Zugriff auf die dafür wichtigen Register R13 (SP), R14 (LR) und R15 (PC) aus C-Sourcefiles, auch unter Inline-Assembler. Unter RealView geht sowas nur noch in reiner Assemblerprogrammierung in so genanntem Embedded Assembler. Aber, das ist nicht mehr das Problem, da gelöst. Diese Sache betrifft also nach wie vor anscheinend nicht nur mich, der bereits ein Software-Projekt in tagelanger Arbeit von CARM nach RealView umgebaut hat. Bis heute habe ich im Internet keine Ersatzlösung für die Makros gefunden, und bin nach einigen Überlegungen darauf gekommen, diese letztendlich in Assembler selbst zu schreiben. Dazu habe ich die Makros genommen und sie zu Funktionen umgebaut, die natürlich nicht mehr ganz so komfortabel sind wie die Makros, da sie zwangsläufig etwas mehr Code und Laufzeit haben (Funktionsaufruf, zusätzliche Verwendung und Sicherung eines Registers, denn die Returnadresse der Funktionen muß über die Prozessor-Mode-Umschaltung hinweg erhalten bleiben). Das Assembler-File ist hier direkt downloadbar und in die µVision einbindbar, damit die Funktionen aus einem Interrupt heraus sofort aufrufbar. Eingesetzt in das Nested Interrupt Example von Hitex, funktioniert das auf meinem Keil-Demo-Board MCB2100 wunderbar. Wer möchte mit mir mal verifizieren, ob das alles so in Ordnung ist? Und, wie weit arbeitet der VIC-Controller in den LPC21xx und LPC22xx (PL190 von ARM) mit Nested Interrupts zusammen? Hat mal jemand einen Interrupt-Prioritäts-Handler in Software geschrieben, der verschiedene Interrupt-Prioritäts-Ebenen behandeln kann, wie sie in anderen Mikrocontrollern als Hardware (z.B. 80C515, 80C517, C166) implementiert sind? Wenn nicht, weiß noch jemand ein gutes ARM-Forum auch für ARM7, außer 'YAHOO LPC2000' oder 'Keil'? Gruß Dietmar
Sorry, ich wollte eigentlich ins ARM-Forum. Habe dort "Neuer Beitrag" angeklickt, und lande jedoch hier.
Weiß jemand, wie ich einen neuen Thread im ARM-Forum eröffnen kann? Ich lande bei dem Versuch immer wieder hier im allgemeinen Forum. Dadurch geht die Info den ARM-Interessierten natürlich schnell verloren. Danke. Dietmar
AAAchhhhh!!! Die Betreff-Zeile ist irgendwie sensitiv für das Wort ARM. Gerade versucht!!! Also, versuchen wir das ganze noch mal:-)
Dietmar wrote: > AAAchhhhh!!! Die Betreff-Zeile ist irgendwie sensitiv für das Wort ARM. > Gerade versucht!!! Also, versuchen wir das ganze noch mal:-) Kleine Frage, ähm. Welches ARM-Forum? Meinst du den einfachen Betreff-Filter? edit: Habs schon gesehen, du hast ja das ganze µC&Elektronik-Forum vollgeschrieben...
lol, ich hab mich auch schon gewundert, was er mit ARM-forum meint :) es gibt zwar das hier, aber ich konnte mir nicht vorstellen, wie es dann hier im "normalen" forum landen sollte: http://en.mikrocontroller.net/forum/17
btw, wenn dir der thread so wichtig ist, dann pack ihn ins wiki! http://www.mikrocontroller.net/articles/ARM http://www.mikrocontroller.net/articles/LPC2000 (http://www.mikrocontroller.net/articles/ARM-elf-GCC-Tutorial#N.C3.BCtzliche_Threads) such dir was aus. evtl. waere ein crosspost im keil-forum, falls es eins gibt, auch angebracht.
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.