Auf Cortex-M-Prozessoren mit MPUs (verwenden wir Cortex-M4, um spezifische zu sein, aber ich wette, die Antwort ist die gleiche für M3), welche Privileg-Modus ist die Hardware-Ausnahme Eintrag Stapeln laufen in W. die MPU?Werden Ausnahmen von der Cortex-M-Hardware im Thread-Modus oder Handler-Modus gestapelt?
Angenommen, ich verwende den Prozess-Stack (PSP) im nicht privilegierten Thread-Modus, wobei die MPU nur Schreibvorgänge innerhalb einer bestimmten Region akzeptiert (z. B. ein Benutzermodus-Prozess läuft). Wenn eine Ausnahme auftritt, bevor der Handler ausgeführt wird (im Handler-Modus), registriert die Hardware Stacks r0-r3, lr, pc usw. auf dem PSP. Tritt dies auch im unprivilegierten Thread-Modus auf?
Angenommen, der Prozess setzt seinen SP auf einen beliebigen Punkt im Speicher, auf den nicht geschrieben werden darf, führt dies zu einem Speicherfehler?
Erläuterung: Das MSTKERR-Bit des MemManage-Fehlerstatus Register (MMFSR) gibt an, ob beim Stacking für einen Ausnahmeeintrag ein Speicherzugriffsfehler aufgetreten ist. So ist es klar, dass ein Speicherfehler während Ausnahmeeintrag passieren kann, aber ich frage grundsätzlich, ob es Speicherzugriffe behandelt, als ob es in privilegierten oder nicht privilegierten Modus ist (z. B. unter der Annahme, dass das PRIVDEFENA-Bit im MPU-Steuerregister 1 ist) – exobrain