Board Support Package Overview<\/p> <\/div>
A BSP contains all the source code for the boot loader, OAL, and device drivers for a given platform. In addition to these components, the BSP also contains build and system configuration files, as illustrated in Figure 5-1. The configuration files are not included in the actual run-time image, yet they are part of the BSP package to specify source code files, memory layout, registry settings, and other aspects to compile and build the run-time image, as explained in Chapter 2, "Building and Deploying a Run-Time Image."<\/p>
Adapting a Board Support Package<\/p> <\/div>
It is generally a good idea to jump start the BSP development process by cloning an existing reference BSP instead of creating a BSP from scratch. Even if you must develop a BSP for an entirely new platform with an entirely new CPU, it is still recommended to clone a BSP based on a similar processor architecture. In this way, you can reduce BSP development time by reusing hardware-independent code from the existing BSP and shorten future migration cycles to new Windows Embedded versions as they become available on the market. Migrating a proprietary BSP design is generally much harder to do than migrating a PQOAL-based design because the proprietary BSP cannot benefit from those PQOAL code portions that Microsoft implicitly migrates and tests as part of the new operating system version.<\/p>
Adapting a board support package includes the following sequence of steps:<\/p>
■ Cloning a reference BSP.<\/p>
■ Implementing a boot loader.<\/p>
■ Adapting the OAL functions.<\/p>
4. Modifying the run-time image configuration files.<\/p>
5. Developing device drivers.<\/p>
Cloning a Reference BSP<\/p> <\/div>
Platform Builder includes a wizard that facilitates cloning a reference BSP. This wizard copies the entire source code of the selected reference BSP to a new folder structure so that you can customize the BSP for the new hardware without affecting the reference BSP or other BSPs in the %_WINCEROOT% folder hierarchy. Figure 5-2 illustrates how to start the BSP Cloning Wizard in Microsoft Visual Studio 2005 with Platform Builder for Windows Embedded CE 6.0.<\/p> NOTE<\/div>
BSP names<\/div>
When cloning a BSP, you have to choose a new name for this new set of files. The name that you choose for the platform must match the name of the folder on your hard drive. As mentioned in the previous chapter, the build engine is based on a command-line script and is not compatible with spaces in folder names. Therefore, the BSP's name must not include white spaces. You can use the underscore (_) character instead.<\/p> <\/cite>
BSP Folder Structure<\/p> <\/div>
To increase code reusability, PQOAL-based BSPs feature a common architecture and corresponding folder structure that is consistent across processor families. Due to this common architecture, large portions of the source code can be reused regardless of hardware-specific BSP requirements. Figure 5-3 shows the typical BSP folder structure and Table 5-1 summarizes the most important BSP folders.<\/p> TIP<\/div>
%_TARGETPLATROOT%<\/div>
You can use the environment variable %_TARGETPLATROOT% in the build window to locate the path of the BSP being used in the current OS design (Open Release Directory in Build Window option on the Build menu in Visual Studio).<\/p> <\/cite>
Table 5-1 Important BSP folders<\/strong> <\/p>
Folder<\/th> |
Description<\/th> <\/tr> |
Root Folder<\/em> <\/td> |
Contains configuration and batch files. The two most important files for developers are as follows:<\/td> <\/tr> |
■ Sources.cmn<\/strong>Contains macro definitions that are common across the entire BSP.<\/td> <\/tr> |
■ <<\/strong> BSP Name<\/strong> <\/em> >.bat<\/strong>Sets the default BSP environment variables.<\/td> <\/tr> |
CATALOG<\/td> |
Contains the BSP catalog file in which all the components of the BSP are defined. This file is used in the OS design stage to add or remove BSP features. Chapter 1, "Customizing the Operating System Design," discusses how to manage catalog items.<\/td> <\/tr> |
CESYSGEN<\/td> |
Contains the Makefile for the Sysgen tool. Configuring a BSP does requires no changes to this directory.<\/td> <\/tr> |
FILES<\/td> |
Contains the build configuration files, such as .bib, .reg, .db, and .dat files.<\/td> <\/tr> |
SRC<\/td> |
Contains the platform-specific source code that you must adapt according to the PQOAL model, which divides the code between platform-specific and common components per CPU type.<\/td> <\/tr> |
COMMON<\/td> |
Exists under the Platform directory and contains most of the BSP source code. It consists of a common set of processor specific components. The BSP links to libraries in this folder, generated during the build process. These are libraries for processor-based peripherals as well as processor-specific OAL parts. If the hardware uses a CPU from the family of supported processors, then most of these libraries can be reused without modification.<\/td> <\/tr> <\/table>
Platform-Specific Source Code<\/p> <\/div>
|