BSP and Device Driver Development Guide
This class of code includes the foundation
routines for the executive proper such as the context switch and
the interrupt subroutine implementations. Sources for the supported
processor families can be found in cpukit/score/cpu
.
A good starting point for a new family of processors is the
no_cpu
directory, which holds both prototypes and
descriptions of each needed CPU dependent function.
CPU dependent code is further subcategorized if the implementation is dependent on a particular CPU model. For example, the MC68000 and MC68020 processors are both members of the m68k CPU family but there are significant differences between these CPU models which RTEMS must take into account.
The source code found in the cpukit/score/cpu
is required to
only depend upon the CPU model variations that GCC distinguishes
for the purposes of multilib'ing. Multilib is the term the GNU
community uses to refer to building a single library source multiple
times with different compiler options so the binary code generated
is compatible. As an example, from GCC's perspective, many PowerPC
CPU models are just a PPC603e. Remember that GCC only cares about
the CPU code itself and need not be aware of any peripherals. In
the embedded community, we are exposed to thousands of CPU models
which are all based upon only a relative small number of CPU cores.
Similarly for the SPARC/ERC32 BSP, the RTEMS_CPU
is specified as
erc32
which is the name of the CPU model and BSP for this SPARC V7
system on chip. But the multilib variant used is actually v7
which indicates the ERC32 CPU core is a SPARC V7.
BSP and Device Driver Development Guide
Copyright © 1988-2008 OAR Corporation