| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This allows the linker garbage collection to perform its work.
Update #3835.
|
|
|
|
|
|
| |
Use the stack area to allocate the TLS area.
Update #3835.
|
|
|
|
|
|
|
|
|
|
|
| |
Use the stack area to allocate the FP context. This considerably
simplifies the application configuration since the task count no longer
influences the configured work space size. With this change the stack
space size is overestimated since an FP context for each thread is
accounted. Memory constraint applications can use the stack size for
fine tuning.
Update #3835.
|
|
|
|
|
|
|
| |
Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY
configuration option.
Update #3843.
|
|
|
|
|
|
|
|
| |
Use a dedicate system initialization step to zero the memory used for
the workspace and C program heap.
This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is
not configured.
|
|
|
|
|
|
|
| |
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use
defined/undefined instead of TRUE/FALSE.
Close #3862.
|
|
|
|
| |
Update #3863.
|
|
|
|
| |
Update #3861.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work area initialization was done by the BSP through
bsp_work_area_initialize(). This approach predated the system
initialization through the system initialization linker set. The
workspace and C program heap were unconditionally initialized. The aim
is to support RTEMS application configurations which do not need the
workspace and C program heap. In these configurations, the workspace
and C prgram heap should not get initialized.
Change all bsp_work_area_initialize() to implement _Memory_Get()
instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and
malloc() heap initialization into separate system initialization steps.
This makes it also easier to test the individual initialization steps.
This change adds a dependency to _Heap_Extend() to all BSPs. This
dependency will be removed in a follow up change.
Update #3838.
|
| |
|
|
|
|
|
|
|
|
| |
Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler
context. This avoids hard to debug configuration errors resulting in
memory corruptions.
Close #3815.
|
|
|
|
|
|
| |
Bug was introduced by previous commit.
Update #3845.
|
|
|
|
| |
Update #3845.
|
|
|
|
|
|
|
| |
Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS.
Update #3753.
|
|
|
|
|
|
| |
Remove CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE.
Update #3844.
|
|
|
|
| |
Update #3735.
|
|
|
|
| |
Update #3735.
|
|
|
|
|
|
|
| |
Replace the user MPCI configuration table with a system provided
_MPCI_Configuration.
Update #3735.
|
|
|
|
|
|
|
| |
Obsolete the CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration
option.
Update #3735.
|
|
|
|
|
|
|
|
| |
Obsolete undocumented configuration options CONFIGURE_MAXIMUM_FIFOS and
CONFIGURE_MAXIMUM_PIPES. Replace these options with the new
CONFIGURE_IMFS_ENABLE_MKFIFO configuration option.
Update #3840.
|
|
|
|
|
|
|
| |
Use self-contained condition variables instead of Classic API barriers.
This simplifies the implementation and configuration.
Update #3840.
|
|
|
|
| |
Use watchdog for shared memory driver instead of a Classic API Timer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MrsP semaphore implementation predates the addition of
self-contained synchronization objects. At this time, the potential
memory reduction was justified considering the more complex
configuration and additional use of the workspace. With the
availability of self-contained synchronization options, e.g. POSIX
mutexes, this is no longer justified. Memory constrained applications
should use the self-contained synchronization objects. Remove the
CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option. This has only an
impact on applications which use SMP and a large number of scheduler
instances.
Update #3833.
|
|
|
|
|
|
| |
Use a system initialization handler instead of a legacy IO driver.
Update #3834.
|
|
|
|
|
| |
Avoid the use of the workspace and use statically allocated switch
controls for the initial extensions.
|
|
|
|
|
|
| |
Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead.
Close #3799.
|
|
|
|
| |
Update #3665.
|
|
|
|
|
|
|
|
|
|
|
| |
The .rtemsrwset section is used for the per-CPU data. This section has
loadable content. Place the ring buffers in the BSS section to avoid
large executable image sizes.
Not using the per-CPU data makes it possible to initialize the record
support earlier.
Update #3665.
|
| |
|
| |
|
| |
|
|
|
|
| |
Rename to use proper namespace.
|
|
|
|
| |
Rename to use proper namespace.
|
|
|
|
| |
Update #2832.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add low level event recording infrastructure for system and user
defined events. The infrastructure is able to record high frequency
events such as
* SMP lock acquire/release,
* interrupt entry/exit,
* thread switches,
* UMA zone allocate/free, and
* Ethernet packet input/output, etc.
It allows post-mortem analysis in fatal error handlers, e.g. the last
events are in the record buffer, the newest event overwrites the oldest
event. It is possible to detect record buffer overflows for consumers
that expect a continuous stream of events, e.g. to display the system
state in real-time.
The implementation supports high-end SMP machines (more than 1GHz
processor frequency, more than four processors).
Add a new API instead. The implementation uses per-processor data
structures and no atomic read-modify-write operations. It is uses
per-processor ring buffers to record the events.
The CPU counter is used to get the time of events. It is combined with
periodic uptime events to synchronize it with CLOCK_REALTIME.
The existing capture engine tries to solve this problem also, but its
performance is not good enough for high-end production systems. The
main issues are the variable-size buffers and the use of SMP locks for
synchronization. To fix this, the API would change significantly.
Update #3665.
|
|
|
|
|
|
|
| |
This configuration option was undocumented and not really helpful. To
debug issues in <rtems/confdefs.h> it is better to save the
preprocessesd file (GCC "-save-temps" option) and use the GCC "-Wp,-dD"
pre-processor option.
|
|
|
|
|
|
|
|
|
|
|
| |
Statically allocate the objects information together with the initial
set of objects either via <rtems/confdefs.h>. Provide default object
informations with zero objects via librtemscpu.a. This greatly
simplifies the workspace size estimate. RTEMS applications which do not
use the unlimited objects option are easier to debug since all objects
reside now in statically allocated objects of the right types.
Close #3621.
|
| |
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
| |
Update #3598.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename
* _Configuration_Interrupt_stack_area_begin in _ISR_Stack_area_begin,
* _Configuration_Interrupt_stack_area_end in _ISR_Stack_area_end, and
* _Configuration_Interrupt_stack_size in _ISR_Stack_size.
Move definitions to <rtems/score/isr.h>. The new names are considerable
shorter and in the right namespace.
Update #3459.
|
|
|
|
|
|
|
|
|
|
|
| |
Move the __getreent() variant using the global reentrancy structure to
librtemscpu.a. This avoids a definition of __getreent() in the
configuration module if CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined.
This avoids all the dependencies which would be exposed by a reference
to the global reentrancy structure.
This change is only possible since the default configuration moved to
librtemsdefaultconfig.a recently.
|