mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-10-06 10:59:48 +08:00
ff6d3df84a36daebfae253f6e9538d7974022563
The exception codes occupied the interrupt vectors below MIPS_INTERRUPT_BASE. A handler reached them through rtems_interrupt_handler_install(), which passes a vector number and no frame. mips_vector_exceptions() therefore stored the frame in the global mips_exception_frame around the dispatch, and bsp_interrupt_handler_default() read it back. That global is a hidden argument of the dispatch. Two processors which take an exception at the same time overwrite it, so the port cannot support SMP in that form. Give the port its own registration. mips_exc_set_handler() installs the handler of one exception code and the handler takes a CPU_Exception_frame pointer. ppc_exc_set_handler() of the PowerPC port is the model. The default handler calls rtems_fatal() with RTEMS_FATAL_SOURCE_EXCEPTION and the frame. bsp_interrupt_is_valid_vector() rejects every vector below MIPS_INTERRUPT_BASE, so the interrupt manager owns none of them. An application which installed a handler on an exception vector with rtems_interrupt_handler_install() moves to the new call. MIPS_INTERRUPT_BASE keeps its value. No BSP renumbers its interrupt vectors. Update #5752. Assisted-by: Claude:claude-opus-5 claude-code Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
…
…
…
Real-Time Executive for Multiprocessing Systems
RTEMS is a real-time executive (kernel) which provides a high performance environment for embedded applications with the following features:
- Standards based user interfaces.
- Multitasking capabilities.
- Homogeneous and heterogeneous multiprocessor systems.
- Symmetric Multiprocessing (SMP):
- Cluster scheduling: Job-level fixed prority scheduler (EDF) with support for one-to-one and one-to-all thread to processor affinities.
- Locking protocols with transitive priority inheritance, priority ceiling, MRsP and OMIP.
- Event-driven, priority-based, preemptive scheduling.
- Scalable timer and timeout support.
- Optional rate monotonic scheduling.
- Intertask communication and synchronisation.
- Priority inheritance.
- Responsive interrupt management.
- Dynamic memory allocation.
- Dynamic code loading using run-time link editing.
- File systems, IMFS, FAT, RFS, JFFS, NSFv4 (with LibBSD)
- High level of user configurability.
- Link-time configurable schedulers.
- Linker-set based initialization (similar to global C++ constructors).
- Drivers for I2C, SPI and LibBSD has NIC, USB, SD/MMC and Framebuffer.
- Open source with a friendly user license.
RTEMS Project:
Project git repositories are located at:
Online documentation is available at:
RTEMS Doxygen for CPUKit:
RTEMS POSIX 1003.1 Compliance Guide:
RTEMS Discourse User forum for questions, answers and examples:
RTEMS Discord for support:
RTEMS Mailing Lists for general purpose use the users list and for developers use the devel list.
The version number for this software in releases is located in the VERSION file if present.
Description
RTEMS is a real-time executive in use by embedded systems applications around the world and beyond
150 MiB
Languages
C
93.9%
Assembly
3.4%
Ada
1.4%
Python
0.3%
HTML
0.3%
Other
0.4%