Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5758
`_ISR_Handler` is the low level entry of every vector of the architecture. `EXCEPTION_SETUP()` of `start.S` sends the bus error, the page faults, the alignment, the illegal instruction, the range, the system call and the trap there, and it sends the tick timer and the external interrupt to the same place. So a synchronous exception raises the interrupt nest level and the thread dispatch disable level. It also runs `_Thread_Dispatch()` on its way out. None of that belongs to an exception, which is a property of the thread which caused it and not of the processor. A handler which resumes the trapped context leaves through `l.rfe`. It never reaches the exit of the entry, so both levels stay raised for the rest of the run. Every other port with an exception resume separates the two paths. `_SPARC_Bad_trap()` and the synchronous branch of `_RISCV_Exception_handler` raise no level. Found while an exception resume was added to the port. This description was created with Claude Code assistance. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5758 You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-3z0ssmyvyl0ob6waf6x3c0qwk-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
