# # $Id$ # # # Please send any comments, improvements, or bug reports to: # Chris Johns # Objective Design Systems # 35 Cairo Street # Cammeray # Sydney, NSW 2062 # ccj@acm.org # # # Overview # ~~~~~~~~ # This board support package is not a board support package at all, but # a means to build the RTEMS kernel without using a specific BSP. # # You should be able to build to build this BSP for any cpu type. # # You must provide the standard BSP type functions and support yourself # externally to RTEMS. # # This BSP is intended to be used by people who fit one or more of the # categories below : # # 1) using custom hardware of little use or interest to others. If you # intend to use hardware available to others, please create a BSP # and send to OARCorp. # # 2) production code cannot depend on software which can change. BSP code # can change with-out notice, while RTEMS has very tightly defined # interfaces which do not change. # # 3) the need to extend or change an existing BSP in ways which are not # of interest to others or the BSP maintainer. # # I fit all the above. # # Issues # ~~~~~~ # I do not consider the bare BSP as a starting point for RTEMS. The # BSP code integrated into the RTEMS build tree has the advantage of # building all the test and sample code. The sample and test code is # important for validatation of your tools, and getting your BSP # working correctly. # # Once you gain experience with RTEM and your application matures the # need to break the BSP code out from the kernel becomes important. It # is at this point in time that the bare BSP becomes useful. # # Once free you are able to upgrade without the worry of makefile or # build tree changes which can break your BSP. # # How To Configure # ~~~~~~~~~~~~~~~~ # RTEMS requires you to select a BSP inorder to build the kernel. # If you take a close look at a BSP which is closest to your # needs you will find somewhere the CPU model and CPU compile # flags are specified. This is the only piece of information # required by the kernel inorder for it to build. # # This highlights the clean design of the kernel and its # independence from the particulars of target hardware. # # The CPU model is the RTEMS model and usually tries to match with # the GCC model. There are variations on some processors. If you are # unsure please ask on the RTEMS list. Someone will know (I hope). # # The CPU flags allow you to select specific operating modes for # GCC. For example the PowerPC has specific flags to control various # cache resouces. Another example is the 68000 family of embedded # processor do not have FPU hardware and require software emulation. # # An example configuration command line is: # # ../rtems-4.0/configure --target=m68k-rtems \ # --prefix=/ods/egcs/test \ # --enable-cxx \ # --enable-gmake-print-directory \ # --disable-tests \ # --disable-posix \ # --enable-networking \ # --enable-bare-cpu-cflags=-mcpu32 \ # --enable-bare-cpu-model=mcpu32 \ # --enable-rtemsbsp=bare # # Building RTEMS # ~~~~~~~~~~~~~~ # You are required to do nothing special here. Just follow the documented # steps. The samples are built but no linking occurs. The link command # is stubbed out to produce a Unix shell script. # # After installation you will find a directory called 'bare'. The nature # of the RTEMS build system means the bare BSP will only install into the # the bare directory under the specifed configuration prefix. # # I therefore suggest you move the directory to another name. This allows # you to make and install another bare BSP for a different variant of # CPU without over writing the last installed variant. # # I have provided a script file I use to configure and build RTEMS # from the arcihve. Take a copy and use it if you find it useful. # # Creating an Application. # ~~~~~~~~~~~~~~~~~~~~~~~~ # This is something which is usually specific to your local environment. # The bare BSP does not lock you into any specific makefile or build # system. A couple of suggestions are: # # o Get the sample bare BSP application, or # o Watch RTEMS build a BSP which is closest to yours and copy # the command lines used. #