diff options
Diffstat (limited to '')
-rw-r--r-- | c-user/initialization/operations.rst (renamed from c-user/initialization.rst) | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/c-user/initialization.rst b/c-user/initialization/operations.rst index fa7afb5..db5c94b 100644 --- a/c-user/initialization.rst +++ b/c-user/initialization/operations.rst @@ -2,66 +2,6 @@ .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) -Initialization Manager -********************** - -Introduction -============ - -The Initialization Manager is responsible for initializing the Board Support -Package, RTEMS, device drivers, the root filesystem and the application. The -:ref:`Fatal Error Manager <fatal_error_manager>` is responsible for the system -shutdown. - -The Initialization Manager provides only one directive: - -- rtems_initialize_executive_ - Initialize RTEMS - -Background -========== - -.. index:: initialization tasks - -Initialization Tasks --------------------- - -Initialization task(s) are the mechanism by which RTEMS transfers initial -control to the user's application. Initialization tasks differ from other -application tasks in that they are defined in the User Initialization Tasks -Table and automatically created and started by RTEMS as part of its -initialization sequence. Since the initialization tasks are scheduled using -the same algorithm as all other RTEMS tasks, they must be configured at a -priority and mode which will ensure that they will complete execution before -other application tasks execute. Although there is no upper limit on the -number of initialization tasks, an application is required to define at least -one. - -A typical initialization task will create and start the static set of -application tasks. It may also create any other objects used by the -application. Initialization tasks which only perform initialization should -delete themselves upon completion to free resources for other tasks. -Initialization tasks may transform themselves into a "normal" application task. -This transformation typically involves changing priority and execution mode. -RTEMS does not automatically delete the initialization tasks. - -The Idle Task -------------- - -The Idle Task is the lowest priority task in a system and executes only when no -other task is ready to execute. The default implementation of this task -consists of an infinite loop. RTEMS allows the Idle Task body to be replaced by -a CPU specific implementation, a BSP specific implementation or an application -specific implementation. - -The Idle Task is preemptible and *WILL* be preempted when any other task is -made ready to execute. This characteristic is critical to the overall behavior -of any application. - -Initialization Manager Failure ------------------------------- - -System initialization errors are fatal. See :ref:`internal_errors`. - Operations ========== @@ -418,41 +358,3 @@ should output: c() b() A:A() - -Directives -========== - -This section details the Initialization Manager's directives. A subsection is -dedicated to each of this manager's directives and describes the calling -sequence, related constants, usage, and status codes. - -.. raw:: latex - - \clearpage - -.. index:: initialize RTEMS -.. index:: start multitasking -.. index:: rtems_initialize_executive - -.. _rtems_initialize_executive: - -INITIALIZE_EXECUTIVE - Initialize RTEMS ---------------------------------------- - -CALLING SEQUENCE: - .. code-block:: c - - void rtems_initialize_executive(void); - -DIRECTIVE STATUS CODES: - NONE - This function will not return to the caller. - -DESCRIPTION: - Iterates through the system initialization linker set and invokes the - registered handlers. The final step is to start multitasking. - -NOTES: - This directive should be called by :c:func:`boot_card()` only. - - This directive *does not return* to the caller. Errors in the - initialization sequence are usually fatal and lead to a system termination. |