| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right after a "msr basepri_max, %[basepri]" instruction an interrupt
service may still take place (observed at least on Cortex-M7). However,
pendable service calls that are activated during this interrupt service
may be delayed until interrupts are enable again. The
_ARMV7M_Pendable_service_call() did not check that a thread dispatch is
allowed. Move this test from _ARMV7M_Interrupt_service_leave() to
_ARMV7M_Pendable_service_call().
Update #3060.
|
|
|
|
| |
Update #3060.
|
|
|
|
| |
Update #3056.
|
|
|
|
| |
Update #3056.
|
|
|
|
|
|
|
| |
In SMP configurations, add a red-black tree node to Scheduler_Node to
enable an EDF scheduler implementation.
Update #3056.
|
|
|
|
| |
Account for legacy AltiVec context.
|
|
|
|
|
| |
Do not zero the GPR2 in the thread context via dcbz instructions. Bug
was introduced by 32b4a0c42704f0076da8e2d5411290f55d1b2965.
|
|
|
|
|
|
| |
This task variable is superfluous since we use thread-local storage now.
Update #2289.
|
|
|
|
| |
Update #2468.
|
|
|
|
| |
Update #2468.
|
|
|
|
|
|
| |
There is no need to save the thread pointer in _CPU_Context_switch()
since it is a thread invariant. It is initialized once in
_CPU_Context_Initialize().
|
|
|
|
|
|
|
|
| |
The original CPU_COPY() support of Newlib <sys/cpuset.h> had the
parameters in the wrong order. This is fixed in Newlib since
2017-05-22.
Update #3023.
|
| |
|
|
|
|
| |
Update #2751.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Set CPU_ENABLE_ROBUST_THREAD_DISPATCH to TRUE. In this case the
interrupts are always enabled during a context switch even after
interrupt processing (see #2751). Remove the CPSR from the context
control since it contains only volatile bits.
Close #2954.
|
|
|
|
| |
Do not touch the FPSCR[QC] bit since this is DNM/RAZ on Cortex-R4.
|
| |
|
|
|
|
|
|
|
|
|
| |
Check that no ask help request is registered during unblock and yield
scheduler operations. There is no need to ask for help if a scheduled
thread yields, since this is already covered by the pre-emption
detection.
Update #2556.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Move _Thread_Scheduler_ask_for_help(), rename it to
_Thread_Ask_for_help() and make it static.
|
|
|
|
|
|
|
|
|
|
|
| |
Only register ask for help requests in the scheduler unblock and yield
operations. The actual ask for help operation is carried out during
_Thread_Do_dispatch() on a processor related to the thread. This yields
a better separation of scheduler instances. A thread of one scheduler
instance should not be forced to carry out too much work for threads on
other scheduler instances.
Update #2556.
|
|
|
|
|
|
|
| |
Do not adjust the stack pointer, since this is already done by the
restor instruction.
Update #2270.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the special thread queue name _Thread_queue_Object_name to mark
thread queues embedded in an object with identifier. Using the special
thread state STATES_THREAD_QUEUE_WITH_IDENTIFIER is not reliable for
this purpose since the thread wait information and thread state are
protected by different SMP locks in separate critical sections. Remove
STATES_THREAD_QUEUE_WITH_IDENTIFIER.
Add and use _Thread_queue_Object_initialize().
Update #2858.
|
| |
|
|
|
|
| |
Close #2890.
|
|
|
|
|
|
|
|
|
| |
It is necessary to enable the DWT using a special initialization
sequence before the CYCCNT can be enabled. See for example the
RESET_CYCLE_COUNTER in libbsp/arm/atsam/utils/utility.h.
Note that this problem only occurs if no debugger is connected. A
debugger most likely already enables the necessary module.
|
|
|
|
| |
Update #1747.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Use forward and reverse order for initial and dynamic extensions. This
is the behaviour documented in the C Users Guide. Change thread
terminate order to backward to be in line with the thread delete order.
Change fatal error order to forward to ensure that initial extensions
are called first due the peculiar execution context of fatal error
extensions, see _Terminate() documentation.
Update #2692.
|
|
|
|
|
|
|
|
|
|
| |
Since the FP area pointer is passed by reference in
_CPU_Context_Initialize_fp() the optional FP area adjustment via
_CPU_Context_Fp_start() is superfluous. It is also wrong with respect
to memory management, e.g. pointer passed to _Workspace_Free() may be
not the one returned by _Workspace_Allocate().
Close #1400.
|
| |
|
|
|
|
| |
Close #2352.
|
|
|
|
|
|
| |
Use de-facto standard BYTE_ORDER instead.
Close #2803.
|
|
|
|
|
|
|
|
|
| |
Add POSIX shared memory manager (Shm). Includes a hook-based
approach for the backing memory storage that defaults to the
Workspace, and a test is provided using the heap. A test is
also provided for the basic use of mmap'ing a shared memory
object. This test currently fails at the mmap stage due to
no support for mmap.
|
| |
|
|
|
|
|
|
| |
Add configuration option CONFIGURE_MAXIMUM_THREAD_NAME_SIZE.
Update #2858.
|
|
|
|
| |
Update #2858.
|
|
|
|
| |
Update #2858.
|