mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-10-06 10:59:48 +08:00
23f517900fa63485be0241ffc78346b4d3072ac5
_ISR_Handler wrote the exception program counter of the frame back to coprocessor 0 register 14 on one path alone. That path follows the call of _Thread_Dispatch(). The common exit reached eret with the register unchanged. A handler which changed the counter of the frame therefore had no effect on MIPS III and MIPS32. The mips1 multilib hid the defect, because its exit returns with j k1 and takes the address from the frame. mips_emulate_rdhwr_ulr() depends on that change. The 24Kf of Qemu leaves Config3.ULRI clear, so rdhwr raises a reserved instruction exception. The handler supplies the thread pointer and advances the counter by four. On mips/malta the advance was lost and the instruction ran again. A trace of Qemu showed the same exception 11545896 times in eight seconds. sptls01, sptls02, sptls04, ts-validation-tls-0, ts-validation-tls-1, ts-validation-1 and ts-validation-one-cpu-1 failed. Write the counter of the frame back in _ISR_Handler_exit. Set the exception level first, which the eret clears again. Update #5765. 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%