[RTEMS Project] #3838: Rework work area initialization

RTEMS trac trac at rtems.org
Wed Dec 11 14:26:21 UTC 2019


#3838: Rework work area initialization
------------------------------+-----------------------------
  Reporter:  Sebastian Huber  |      Owner:  Sebastian Huber
      Type:  enhancement      |     Status:  assigned
  Priority:  normal           |  Milestone:  5.1
 Component:  bsps             |    Version:  5
  Severity:  normal           |   Keywords:
Blocked By:                   |   Blocking:  3835
------------------------------+-----------------------------
 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.

--
Ticket URL: <http://devel.rtems.org/ticket/3838>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list