[PATCH v2] rtems: Add rtems_task_create_from_config()

Chris Johns chrisj at rtems.org
Thu Sep 3 02:08:48 UTC 2020


On 3/9/20 2:09 am, Sebastian Huber wrote:
> In contrast to rtems_task_create() this function creates a task with a
> user-provided task storage area.  The new create function uses a
> configuration structure instead of individual parameters.
> 
> Add RTEMS_TASK_STORAGE_ALIGNMENT to define the recommended alignment of
> a task storage area.
> 
> Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a
> task storage area based on the task attributes and the size dedicated to
> the task stack and thread-local storage.  This macro may allow future
> extensions without breaking the API.

Have all the issues in the other thread been resolved? It would be good to have
Joel ack this patch before it is merged.

In considering the support for static allocation in general I am wondering if
the RTEMS Classic API Guide is poorly named? This is a new API with new features
and it is not "classic". The Key Concepts section of the that manual says...

 "RTEMS provides directives which can be used to dynamically
  create, delete, and manipulate a set of predefined object types."

This change makes this statement questionable. I am sure there are other places
that will need to be updated. What documentation and examples are planned to
explain the different allocation models RTEMS now supports? I think we have 3
APIs and the "Classic" API now has 2 allocation models. I fine with the
expansion of the ways RTEMS can be used but we need to make sure we explain
these differing ways, why they exist, and the advantages and disadvantages. I
would prefer we not leave this as an exercise for the users to do by reading
header files.

Chris



More information about the devel mailing list