Content area
Full Text
Board support packages for faster development
Many real-time operating systems are designed to include a Board Support Package (BSP), which comprises interfaces known to the kernel so that the OS can access available system-level services. For example, BSPs might contain a driver for a serial device to support a console for the OS, and a timer driver to provide a system heartbeat. The whole idea behind BSPs is to isolate the RTOS from idiosyncrasies of the board on which it runs by abstracting device characteristics into a generic interface.
BSPs are provided by both OS and processor/board vendors. OS vendors generally supply a minimal BSP, primarily to get a system heartbeat and an interactive interface for downloading and debugging. Consequently, what you'll usually find in a BSP are drivers for a relatively high-resolution clock (as opposed to a time-of day clock, functionality that the OS itself provides by dividing down the hi-res clock) and a serial connection.
When the processor folks provide a BSl? it is usually because they want to provide access to more hardware functionality (such as peripheral devices that are not ordinarily supported by an RTOS vendor) that could be useful to application developers- pulse-width modulators, melody generators, interrupt controllers, virtual I/O ports, and even cache controllers. Basically, it's a way to make possibly arcane but interesting hardware elements usable by a larger population and hopefully reduce the amount of angst involved in programming and debugging those elements.
BSPs define the board-level interfaces from the top down, in that board designers must encapsulate device functionality inside a known set of routines. In this article, I'll describe an interface for one BSP that is built on top of the M-CORE Peripherals Library from Motorola (the company I work for). This BSP package operates from the bottom up, abstracting devices into classes that can then be used in standard BSP routines to streamline BSP porting from one board to another. I designed this particular BSP and wrote some of the code for it. BSPs like this one will eventually be available on the M-CORE Development Tools CD-ROM, which is bundled with M-CORE eval boards.
The M-CORE architecture (http://motorola .com/SPS/MCORE/ is a 32-bit RISC design targeted for embedded applications requiring reduced system power...