1. devkit270.bat path: C:/wince600/platform/devkit270 environment variable setting file. For example, set bsp_usbotg = set bsp_nopccard = 1 Set bsp_nokeypad = 1 Set bsp_nonled = 1 Set bsp_nosir = 1 if each item is true, it can be set to 1. if it is false, do not set 0 to null. For example, set bsp_usbotg = 2. Platform. Reg path: C:/wince600/platform/devkit270/Files registry information, such as: If bsp_nokeypad! [HKEY_LOCAL_MACHINE/hardware/devicemap/kypad] "drivername" = "pxa27x_keypad.dll" endif bsp_nokeypad! Bsp_nokeypad is set in devkit270.bat. Another format is as follows: "Index" = DWORD: 1 // What does index represent? 1 indicates what? ------------ Index, "prefix" = "Bak" // What is prefix? ----- Driver function prefix "DLL" = "backlight. dll" "order" = DWORD: 1 // What does this mean? --------------- Start sequence. "Iclass" = "{A32942B7-920C-486b-B0E6-92A702A99B35}" // What Does this represent and where does this string of data come from? -------- At Microsoft, each peripheral has a fixed guid. For more information, see the help documentation. 3. bib path: C:/wince600/platform/devkit270/files. In the bib file, there are four major items: memory, config, modules, and files. The following is an explanation: Memory: defines the settings for memory allocation, which is generally in the config. bib file in BSP. Config: The last makeimgstage provides some configuration attributes for romimage.exe to generate the wince image. This option is optional and is generally defined in the config. bib file in BSP. Modules: defines some modules or files that will be packaged into the wince image, such as DLL and exe. These files will be marked by romimage.exe as loaded to Ram or xip. You can add your own wince application or module here, but do not add managed binaries, which is generally a. Net program. Files: defines other files used by the operating system, such as font files and images. These files will also be loaded to ram during running of wince. The above four items are described in detail as follows: (1) memory items are generally defined in the config. bib file, and the words memory start. Ram reserved for wince image and other modules is defined here, And Ram available for wince is also defined. The specific format is as follows: memory name start address memory size type name: name of the memory region, which must be unique. Start address: the starting address of the memory area, expressed in hexadecimal format. Memory size: the size of the memory area, expressed in hexadecimal format. Type: Type of the memory area. Various types of inclusion are as follows. Fixupvar is used to initialize global variables in a kernel during the makeimg phase compiled by wince. When nandimage creates an image using binfs, the wince Kernel on the NAND device is redirected to the Zone in Ram. When the system accesses the zone, binfs will access the corresponding locations on the NAND device and return data to the system. In fact, xip is implemented on the NAND device. Ram defines the ram region used by the wince system. The memory must be continuous. Here, note that from the hardware point of view, the memory cannot span two pieces of SDRAM, that is to say, the whole area space must be on a piece of hardware SDRAM. Ramimage defines a memory area used to load the wince image. In fact, after the wince is started, the image will be copied to the memory area to run. An image can only have one consecutive ramimage area. The reserved memory area will be reserved. It is generally used for frambuffer, DMA buffer, or shared memory for eboot to pass parameters to the wince system. Extension defines an area in wince image as the data area of romhdr extension. 2. config items are generally defined in the config. bib file and some additional configuration parameters are defined, some of which are also important for wince image. The specific format is as follows; config item = parameter item description autosize allows ram of unused wince images to be used as the ram of the wince system. The default value is on. Compression allows romimage.exe to compress the writable part of the wince image. The default value is on. Bootjump defines the address of the jump page in the ramimage space. Instead of the default ramimage first address. The default value is none. Fsrampercent defines the percentage of memory used by the file system. The default value is 0x80808080. Byte 0: in the first 2 MB, each 1 MB contains a multiple of 4 kb. Byte 1: In the second 2 MB, each 1 MB contains a multiple of 4 kb. Byte 2: In the third 2 MB, each 1 MB contains a multiple of 4 kb. Byte 3: In the remaining memory, each 1 MB contains a multiple of 4 kb. Kernelfixups defines whether romimage.exe can redirect the writable area of the kernel. The default value is on. The writable area of the kernel is redirected to the starting position of ramimage. Output defines the path for storing the final generated image. The default value is % _ flatreleasedir %. Profile defines whether to include the structure and symbol of profiler in wince image. The default value is off. Resetvector re-specifies the position of the page to jump to. This is generally applicable to the issue where the MIPs Chip starts to boot from 0x9fc00000. Romflags kernel flag bit, which can be combined: 0x01 indicates disabling On-Demand paging. 0x02 indicates that full kernel mode is disabled, and full kernel mode indicates that all threads run in kernel mode. 0x10 indicates that only modules in ROM modules are trusted. 0x20 indicates to stop refreshing TLB. 0x40 indicates loading the DLL according to the address in the/base link option. Romstart refers to the starting address of the wince image in the memory. Romsize indicates the size of the wince image. Romwidth refers to the width of the Data Bus. Romoffset specifies an offset to modify the address of each record in the. binfile. It is generally used when the. binfile In the Rom is loaded to ram for running. It mainly indicates that the location of the stored. Bin is different from that of the running. Bin. Sre uses romimage.exe to generate a. SRE file. The default value is off. X86boot defines whether to insert a jump command when the x86 Reset vector address is used. 3. the modules and files items list all modules and files contained in the wince image, and how these modules and files are loaded into the memory. The specific format is as follows: modules name path memory type name: Module name, such as the file name of a DLL or EXE file. Path: path, which is generally the release directory of the wince project. Memory: Specifies the region in which the module is stored. Generally, all modules are in the NK region. Type: defines the file type. The type description is as follows. H. Hide the file. R only compresses the resource portion of the module. All parts of the C compression module. D. Disable debugging. N modules are untrusted. P romimage.exe does not need to check the CPU type. K branch romimage.exe must fix the kernel address of this module. Modules with this tag can only be loaded by the loadkernellibrary function. X romimage.exe signs the module. Load the entire module during m running, and do not pagination as needed. L romimage.exe do not separate Rom DLL. Generally, the type of the files item only supports the S, H, N, and D types, while the type of the modules item is supported. For example: init. EXE % _ winceroot % releaseinit. exe nk sh mydll. dll % _ winceroot % releasemydll. dll nk shc also supports "Conditional compilation" for bib files. We can selectively package some modules into wince image by setting environment variables. Generally, in BSP, if is used to judge the environment variables of some driver modules. For the wince system module, it is generally a sysgen variable and should be determined by @ cesysgen if. The most common features in BSP development are eboot. bib, config. bib, platform. bib, and project. bib. The following is a brief introduction to project. bib: this file is mainly used to create some files required by the wince project. Platform. bib: This file contains files related to the hardware platform, mainly drivers. Config. bib: This file describes the memory configuration of the wince system. Eboot. bib: This file describes the memory configuration of the eboot of wince. Some other bib files will be copied to the project's release directory after the wince system is compiled. For example, common. bib, ie. bib. These files list the files related to the wince components. The customized system will be selectively packaged into the wince image. 4. The sources file shows many sources files in the wince BSP, which are usually placed in the same directory as the source code. Of course it is not absolute. Compile how to compile the source code and what types of files are generated. Targetname: name of the target file generated after compilation, excluding the extension. Targettype: Type of the generated file. The specific values are as follows: Library, A. Lib file dynlink, and A. dll file program,an. .exe file releasetype: This macro sets two environment variables releasedir and releaselibdir, which are used to set the path for storing the generated file after compilation. The specific value is as follows: platform, the generated file is in platform // local, the generated file is in custom under the current path, and the generated file is managed at the location specified by targetpath, the generated file is in % _ projectroot %/oak // managed oak, SDK, DDK, And the generated file is in % _ projectroot %/oak/targetpath: When releasetype = custom, this macro specifies the path sourcelibs: static link. The function object is linked to generate a copy targetlibs: Dynamic Link. The function address is linked. When the system executes the function, it will load the library des: Specify the path of the extra header file to be searched sources: Specify the file to be compiled adefines: specify the cdefines parameter to be used by the assembler: Specify the ldefines parameter to be used by the compiler: Specify the rdefines parameter to be used by the connector: Specify the dllentry parameter of the resource compiler rc.exe: Specify the DLL entry function deffile: specify. def file exeentry: Specifies the entry function skipbuild of the executable file: directly returns the successful wincecod without actual build operations. After compilation, generate one. cod Assembly file, used to view assembly code debugging wincecpu: used to describe compilation for the specified CPU, so that the compiled target file will be placed under the subdirectory specified by the _ tgtcpu environment variable, generally, this macro is stored in sources. definition in CEN. Wincemap: generate one after compilation. map File for winceoem debugging: set this value to indicate that some common libraries and header files under wince need to be used. This value is generally in the sources of BSP. definition in CEN. Wincetargetfile0: the target file compiled by build.exe is used before the source code file is compiled by the compiler compilation system. Wincetargetfiles: the target file compiled by build.exe must be used before all the target files are saved by the compiler. Wince_override_cflags: used to define your own compiler parameters to replace the default compiler parameter 5. dir file about the dirs file, which specifies the path to be compiled. Everyone on Earth knows this. Let's give a brief introduction. There are three definitions as described above: dirs, dirs_ce, and optional_dirs. Dirs: Specifies the directory to be compiled. Dirs_ce: This directory is compiled only when the source code in the directory is used for the image file of wince. Optional_dirs: Specifies the directory to be compiled. For example: optional_dirs = proj1. To compile the proj1 directory, you can set build_options = proj1 and run the build command. For example, dirs = Common/Drivers/oal/bootloader indicates that the common, drivers, oal, and bootloader directories need to be compiled. Dirs = * Indicates compiling all current directories.