[RTEMS Project] #3838: Rework work area initialization
RTEMS trac
trac at rtems.org
Thu Apr 2 08:49:21 UTC 2020
#3838: Rework work area initialization
------------------------------------+------------------------------
Reporter: Sebastian Huber | Owner: Sebastian Huber
Type: enhancement | Status: closed
Priority: normal | Milestone: 5.1
Component: bsps | Version: 5
Severity: normal | Resolution: fixed
Keywords: | Blocked By:
Blocking: 3835, 3843, 3861, 3925 |
------------------------------------+------------------------------
Changes (by Sebastian Huber):
* status: assigned => closed
* resolution: => fixed
Old description:
> The work area initialization is done by the BSP through
> bsp_work_area_initialize(). This approach predates the system
> initialization through the system initialization linker set. The
> workspace and C program heap are unconditionally initialized. With the
> availability of statically initialized threads a system without workspace
> and C program heap is feasible. Change the work area initialization so
> that components are initialized on demand. To achieve this:
>
> 1. Add a Memory Handler which provides support for low level handling of
> memory areas which are handed over to the higher level Heap Handler.
>
> 2. Add an implementation of _Memory_Get() to each BSP (basically a
> restructuring of the bsp_work_area_initialize() implementations).
>
> 3. Add a _Memory_Get_workspace_handler_initialize() implementation to
> each BSP which returns a workspace handler initialization function which
> can initialize the workspace (A) from one memory area or (B) multiple
> memory areas (needs _Heap_Extend()). Only two BSPs need (B).
>
> 4. Add a _Memory_Get_malloc_initialize() implementation similar to 3.
New description:
The work area initialization is done by the BSP through
bsp_work_area_initialize(). This approach predates the system
initialization through the system initialization linker set. The workspace
and C program heap are unconditionally initialized. With the availability
of statically initialized threads a system without workspace and C program
heap is feasible. Change the work area initialization so that components
are initialized on demand. To achieve this:
1. Add a Memory Handler which provides support for low level handling of
memory areas which are handed over to the higher level Heap Handler.
2. Add an implementation of _Memory_Get() to each BSP (basically a
restructuring of the bsp_work_area_initialize() implementations).
See optimization opportunity in #3925.
--
--
Ticket URL: <http://devel.rtems.org/ticket/3838#comment:21>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list