| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
|
|
|
|
| |
Updates #4625.
|
|
|
|
| |
Updates #3053.
|
|
|
|
|
| |
Use the SRS (Store Return State) instruction if available. This
considerably simplifies the context save and restore.
|
|
|
|
|
|
|
|
|
|
|
| |
On a public interface, the stack pointer must be aligned on an 8-byte
boundary. However, it may temporarily be only aligned on a 4-byte
boundary. The interrupt handling code must ensure that the stack
pointer is properly aligned before it calls a function. See also:
https://developer.arm.com/documentation/den0013/d/Interrupt-Handling/External-interrupt-requests/Nested-interrupt-handling
Update #4579.
|
|
|
|
| |
Update #4579.
|
|
|
|
|
|
|
|
| |
Use volatile register r0 for the per-CPU control of the current
processor instead of the non-volatile register r7. This enables the use
of r7 in a follow up patch. Do the interrupt handling in ARM mode.
Update #4579.
|
|
|
|
| |
Update #4579.
|
|
|
|
| |
Update #3706.
|
|
|
|
| |
Update #3706.
|
|
|
|
| |
Update #2751.
|
|
|
|
|
|
|
| |
Use the right register to determine if a thread dispatch is allowed and
necessary.
Update #2751.
|
|
|
|
|
|
|
| |
We cannot use the MRS or MSR instructions in Thumb-1 mode. Stay in ARM
mode for the Thumb-1 targets during interrupt low-level processing.
Update #2751.
|
|
|
|
| |
Update #2751.
|
|
|
|
|
| |
Move profiling code closer to bsp_interrupt_disable() to allow re-use of
r9 later.
|
| |
|
|
|
|
|
|
| |
Use the previously unused TPIDRPRW register to get the per-CPU control
of the current processor. This avoids instructions in
GET_SELF_CPU_CONTROL which are not available in Thumb mode.
|
| |
|
|
|
|
|
| |
This floating point unit is available in Cortex-M4 processors and
defined by ARMv7-M. This adds basic support for other VFP-D16 variants.
|
|
|
|
|
|
|
|
| |
Fix context switch on SMP for ARM, PowerPC and SPARC.
Atomically test and set the is executing indicator of the heir context
to ensure that at most one processor uses the heir context. Break the
busy wait loop also due to heir updates.
|
| |
|
| |
|
|
|
|
|
|
| |
According to AAPCS, section 5.2.1.2, "Stack constraints at a public
interface" the stack must be 8 byte aligned. This was not the case
during interrupt processing.
|
|
|
|
| |
Interrupt support for per-CPU thread dispatch disable level.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GNU assembler translates for example a
msr spsr, rN
into
msr SPSR_fc, rN
This would update only a subset of the register and leads to an
incomplete exceptions restore sequence resulting in system corruption.
Correct is this:
msr SPSR_fsxc, rN
|
| |
|
|
|
|
| |
Rename arm_exc_interrupt() to _ARMV4_Exception_interrupt().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtems/score/armv7m.h, armv7m-context-initialize.c,
armv7m-context-restore.c, armv7m-context-switch.c,
armv7m-exception-handler-get.c, armv7m-exception-handler-set.c,
armv7m-exception-priority-get.c, armv7m-exception-priority-set.c,
armv7m-initialize.c, armv7m-isr-dispatch.c, armv7m-isr-enter-leave.c,
armv7m-isr-level-get.c, armv7m-isr-level-set.c,
armv7m-isr-vector-install.c, armv7m-multitasking-start-stop.c: New
files.
* Makefile.am, preinstall.am: Reflect changes above.
* rtems/score/arm.h: Define ARM_MULTILIB_ARCH_V4 and
ARM_MULTILIB_ARCH_V7M.
* rtems/score/cpu.h, cpu_asm.S, cpu.c, arm_exc_abort.S,
arm_exc_handler_high.c, arm_exc_handler_low.S, arm_exc_interrupt.S:
Define CPU_HAS_HARDWARE_INTERRUPT_STACK to FALSE. Use
ARM_MULTILIB_ARCH_V4 and ARM_MULTILIB_ARCH_V7M.
|
|
|
|
|
|
|
| |
PR 1573/cpukit
* arm_exc_interrupt.S: Add a per cpu data structure which contains the
information required by RTEMS for each CPU core. This encapsulates
information such as thread executing, heir, idle and dispatch needed.
|
| |
|
|
|
|
|
| |
* arm_exc_abort.S, arm_exc_handler_high.c, arm_exc_handler_low.S,
arm_exc_interrupt.S, cpu.c, cpu_asm.S: Add include of config.h
|
| |
|
| |
|
|
|