[rtems-central commit] spec: Document rtems_task_construct(), ...
Sebastian Huber
sebh at rtems.org
Wed Sep 16 14:33:19 UTC 2020
Module: rtems-central
Branch: master
Commit: 3b1ae6dc995be529375d5193f4bcc05960820e7d
Changeset: http://git.rtems.org/rtems-central/commit/?id=3b1ae6dc995be529375d5193f4bcc05960820e7d
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Sep 16 16:22:15 2020 +0200
spec: Document rtems_task_construct(), ...
---
spec/acfg/if/max-thread-local-storage-size.yml | 5 +++++
spec/rtems/task/if/config.yml | 9 +++++++++
spec/rtems/task/if/construct.yml | 24 ++++++++++++++++++------
3 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/spec/acfg/if/max-thread-local-storage-size.yml b/spec/acfg/if/max-thread-local-storage-size.yml
index dfb979b..2424f3d 100644
--- a/spec/acfg/if/max-thread-local-storage-size.yml
+++ b/spec/acfg/if/max-thread-local-storage-size.yml
@@ -30,5 +30,10 @@ notes: |
Use ${/rtems/basedefs/if/align-up:/name} and
${/rtems/task/if/storage-alignment:/name} to adjust the size to meet the
minimum alignment requirement of a thread-local storage area.
+
+ The actual thread-local storage size is determined when the application
+ executable is linked. The ``rtems-exeinfo`` command line tool included in
+ the RTEMS Tools can be used to obtain the thread-local storage size and
+ alignment of an application executable.
text: ''
type: interface
diff --git a/spec/rtems/task/if/config.yml b/spec/rtems/task/if/config.yml
index b2016fb..76e1337 100644
--- a/spec/rtems/task/if/config.yml
+++ b/spec/rtems/task/if/config.yml
@@ -62,6 +62,15 @@ definition:
If the is less than the task storage area size, then the task
construction by ${construct:/name} fails.
+
+ The actual thread-local storage size is determined when the application
+ executable is linked. The ``rtems-exeinfo`` command line tool included
+ in the RTEMS Tools can be used to obtain the thread-local storage size
+ and alignment of an application executable.
+
+ The application may configure the maximum thread-local storage size for
+ all threads explicitly through the
+ ${/acfg/if/max-thread-local-storage-size} configuration option.
kind: member
name: maximum_thread_local_storage_size
variants: []
diff --git a/spec/rtems/task/if/construct.yml b/spec/rtems/task/if/construct.yml
index d516807..867aee1 100644
--- a/spec/rtems/task/if/construct.yml
+++ b/spec/rtems/task/if/construct.yml
@@ -26,14 +26,26 @@ notes: |
contains the task stack, the thread-local storage, and the floating-point
context on architectures with a separate floating-point context.
- It is not recommended to mix ${create:/name} and ${.:/name} in an
- application. This directive is intended for applications which do not want
- to use the RTEMS Workspace and instead statically allocate all operating
- system resources. The stack space estimate done by <rtems/confdefs.h>
- assumes that all tasks are created by ${create:/name}. The estimate can be
- adjusted to take user-provided task storage areas into account through the
+ This directive is intended for applications which do not want to use the
+ RTEMS Workspace and instead statically allocate all operating system
+ resources. It is not recommended to use ${create:/name} and ${.:/name}
+ together in an application. It is also not recommended to use ${.:/name} for
+ drivers or general purpose libraries. The reason for these recommendations
+ is that the task configuration needs settings which can be only given with a
+ through knowledge of the application resources.
+
+ An application based solely on static allocation can avoid any runtime memory
+ allocators. This can simplfiy the application architecture as well as any
+ analysis that may be required.
+
+ The stack space estimate done by <rtems/confdefs.h> assumes that all tasks
+ are created by ${create:/name}. The estimate can be adjusted to take
+ user-provided task storage areas into account through the
${/acfg/if/min-tasks-with-user-provided-storage:/name} application
configuration option.
+
+ The ${/acfg/if/max-tasks:/name} should include tasks constructed by
+ ${create:/name}.
params:
- description: is the task configuration.
dir: null
More information about the vc
mailing list