Gast
#5702669
Hallo Leute, habe folgendes Problem. Ich soll ein Programm Debuggen, wo vorher ein Entwickler das Kunststück vollbracht hat, das ganze Programm ohne Main-Schleife nur in Zeit- oder Nachrichtenereignis gesteuerte Interrupts auszuführen. Wenn alles per Interrupt gesteuert wird, dann gibt es im Grunde eigentlich gar kein richtiges Interrupt-Verhalten mehr in der Programmausführung, weil ein Interrupt ja eigentlich ein statisch ablaufendes Programm dynamisch unterbrechen soll. Ich benutze den Prozessor TM4C123AHP6M von TI, als Libraries die Routinen, die CSS und TIVAWARE zur Verfügung stellen. Ich will ein Verhalten erreichen, dass ein Interrupt, der den UART-ISR-Handler aufruft, alle anderen laufenden ISR-Handler unterbricht bei der Ausführung, wenn möglich. Oder wird das so oder so schon gemacht, dass ein ISR-Handler gestoppt wird und ein anderer ausgeführt wird? Und / oder will ich, dass der UART-ISR-Handler bei der Auführung dann nicht unterbrochen wird. Also soll folgendes passieren: - der UART-ISR-Handler soll sofort ausgeführt werden, auch wenn andere ISR-Handler laufen - wenn der ausgeführt wird, soll er nicht unterbrochen werden Ich hoffe und bin dankbar für hilfreiche Antworten, denn das ist zum Verzweifeln, wenn man ein Programm retten soll, dass schon von vornherein sämtliche Eigenarten eines Mikrocontrollers nicht berücksichtigt bezüglich Timing/Synchronisation von Interrupts und dass der Entwickler sich viel zu sehr auf die Korrektheit und Robustheit aller gelieferten Funktionen und deren Geschwindigkeit verlassen hat.