From c52d534512079263e545b5aea1d41c98d293cab0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 11 Dec 2007 15:51:35 +0000 Subject: 2007-12-11 Joel Sherrill * bsp_howto/clock.t, bsp_howto/init.t: Eliminate copies of the Configuration Table. Use the RTEMS provided accessor macros to obtain configuration fields. --- doc/ChangeLog | 6 ++++++ doc/bsp_howto/clock.t | 6 +++--- doc/bsp_howto/init.t | 44 +++++++++++++++++--------------------------- 3 files changed, 26 insertions(+), 30 deletions(-) (limited to 'doc') diff --git a/doc/ChangeLog b/doc/ChangeLog index f1f225a2d4..921aff1b84 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,9 @@ +2007-12-11 Joel Sherrill + + * bsp_howto/clock.t, bsp_howto/init.t: Eliminate copies of the + Configuration Table. Use the RTEMS provided accessor macros to obtain + configuration fields. + 2007-12-04 Joel Sherrill * cpu_supplement/arm.t, cpu_supplement/i386.t, cpu_supplement/m68k.t, diff --git a/doc/bsp_howto/clock.t b/doc/bsp_howto/clock.t index ee80ed228b..24a6812d4c 100644 --- a/doc/bsp_howto/clock.t +++ b/doc/bsp_howto/clock.t @@ -59,9 +59,9 @@ used as the source of the clock tick. The device should be programmed such that an interrupt is generated every @i{m} microseconds, where @i{m} is equal to -@code{BSP_Configuration.microseconds_per_tick}. Sometimes the periodic interval -timer can use a prescaler so you have to look carefully at your user's -manual to determine the correct value. +@code{rtems_configuration_get_microseconds_per_tick()}. Sometimes +the periodic interval timer can use a prescaler so you have to look +carefully at your user's manual to determine the correct value. You must use the RTEMS primitive @code{rtems_interrupt_catch} to install your clock interrupt service routine: diff --git a/doc/bsp_howto/init.t b/doc/bsp_howto/init.t index 991f69c0da..421c638056 100644 --- a/doc/bsp_howto/init.t +++ b/doc/bsp_howto/init.t @@ -51,19 +51,13 @@ contains initialization for a 68349 based board as well. Although not strictly part of initialization, there are a few global variables assumed to exist by many support components. These -global variables are usually declared in the file @code{startup/bspstart.c} -that provides most of the BSP specific initialization. The following is -a list of these global variables: +global variables are normally not defined by the BSP since the RTEMS +Project strives to avoid duplication as much as possible. +The following is a list of these global variables: @itemize @bullet -@item @code{BSP_Configuration} is the BSP's writable copy of the RTEMS -Configuration Table. - -@item @code{Cpu_table} is the RTEMS CPU Dependent Information Table. - -@item @code{bsp_isr_level} is the interrupt level that is set at -system startup. It will be restored when the executive returns -control to the BSP. +@item @code{Configuration} is the RTEMS Configuration Table generated +by @code{}. @end itemize @@ -110,21 +104,13 @@ use the same shared version of @code{boot_card()} which is located in the following file: @example -c/src/lib/libbsp/shared/main.c +c/src/lib/libbsp/shared/bootcard.c @end example The @code{boot_card()} routine performs the following functions: @itemize @bullet -@item initializes the shared fields of the CPU Configuration Table -(variable name @code{Cpu_table}) to a default state, - -@item copies the application's RTEMS Configuration Table -(variable name @code{Configuration}) to the BSP's Configuration -Table (variable name @code{BSP_Configuration}) so it can be modified -as necessary without copying the original table, - @item invokes the BSP specific routine @code{bsp_start()}, @item invokes the RTEMS directive @code{rtems_initialize_executive_early()} @@ -413,17 +399,21 @@ structures. The RTEMS configuration table is application dependent, which means that one has to provide one per application. It is usually defined -by defining macros and including the header file @code{}. +by defining macros and including the header file @code{}. In simple applications such as the tests provided with RTEMS, it is commonly found in the main module of the application. For more complex applications, it may be in a file by itself. -The header file @code{} defines a constant table named -@code{Configuration}. It is common practice for the BSP to copy -this table into a modifiable copy named @code{BSP_Configuration}. -This copy of the table is modified to define the base address of the -RTEMS Executive Workspace as well as to reflect any BSP and -device driver requirements not automatically handled by the application. +The header file @code{} defines a constant table named +@code{Configuration}. With RTEMS 4.8 and older, it was +accepted practice for the BSP to copy this table into a modifiable +copy named @code{BSP_Configuration}. This copy of the table was modified +to define the base address of the RTEMS Executive Workspace as well as +to reflect any BSP and device driver requirements not automatically +handled by the application. In 4.9 and newer, we have eliminated +the BSP copies of the configuration tables and are making efforts +to make the configuration information generated by @code{} +constant and read only. For more information on the RTEMS Configuration Table, refer to the @b{RTEMS Application C User's Guide}. -- cgit v1.2.3