Board Support Package (BSP) is a layer between the motherboard hardware and the driver layer program in the operating system, it is generally considered to be part of the operating system, mainly to achieve the support of the operating system, for the upper-level drivers to provide access to the Hardware Device register function package, so that it can better run on the hardware board. In the composition of embedded system software, there is a BSP. BSP is relative to the operating system, different operating systems correspond to different definitions of the BSP, for example, VxWorks BSP and Linux BSP in relation to a CPU, although the implementation of the same function, but the writing and interface definitions are completely different, So write BSP must be written in accordance with the definition of the system BSP (BSP programming process is mostly in a form of the BSP template modified). In order to maintain the correct interface with the upper OS, the upper OS is well supported.
BSP main function is shielded hardware, providing operating system and hardware driver, the specific features include: 1. Single-board hardware initialization, primarily CPU initialization, provides the underlying hardware support for the entire software system 2. Provides device drivers and system interrupt service programs for the operating system 3. Custom operating system features to provide a real-time multi-tasking environment for software Systems 4. Initialize the operating system to prepare for the normal operation of the operating system.function:establish a basic environment for operating system Operation1. Initialize CPU internal register 2, set RAM operation timing 3, clock Drive and interrupt Controller drive 4, serial port driver is complete.environment for good operating system operation1. Perfect the drive of cache and memory Management Unit 2, specify program start run position 3, perfect interrupt management 4, perfect system bus DriveDevelopment ProcessFirst, verify the hardware to understand the voltage and current after power up, connect the debugger to read and write CPU internal registers, control the output port of the processor (
GPIO) to observe the output. And check the clock settings. Second, the configuration of RAM This step includes the initialization and testing of RAM. The RAM-related CPU registers need to be filled in during the initialization of RAM. In the test process can be divided into: unit testing, overall testing, noise testing three parts. Third, memory management needs to plan the use of memory, such as open MMU.
Board-level support package (BSP)