Clarify the relationship between bootloader norflash nandflash eboot nboot uboot sdram nk. Bin NK. nb0
I. Use NAND Flash to store data and programs on the handheld computer, but nor flash must be enabled. In addition to the Samsung processor, other mainstream processors used in handheld computers do not support programs directly started by NAND Flash. Therefore, you must first start the machine with a small nor flash, and then load OS and other software from the NAND flash into the SDRAM for running.
II. The concept of bootloader is a loader for boot. It is first run when the system is powered on, and then initializes the hardware platform in the most basic way. Finally, the operating system is loaded. Different embedded operating systems have their own bootloader, but their essential functions are the same.
Iii. eboot is the most used in wince. It is a network-based Bootloader and can provide command line menu, network debugging, and file system functions as needed. Here I will only talk about the guidance of the ARM platform. Generally, there are different guidance methods based on different hardware designs:
1. norflash boot: Generally, if you select 0 for an ARM processor, norflash will be connected. After the arm is powered on, the program will be executed from the 0 address, that is, the execution starts from the 0 address of norflash. Therefore, the eboot is burned to the place where the norflash address starts from 0. After the instance is powered on, the eboot starts to be executed in norflash, or the eboot can be copied to the SDRAM for execution. Finally, load and run the wince image.
2. nandflash boot with eboot: due to the low capacity and high price of norflash, many arm processors now support nandflash boot. The nandflash boot guide varies slightly from manufacturer to manufacturer, depending on datasheet. However, the essence is to first read a small Loader from nandflash to run it. This loader then loads the eboot from nandflash to the SDRAM for running. Finally, the eboot loads the wince image, that is, NK. Bin.
A. If you do not need eboot during nandflash boot, you do not need eboot. In this way, a small loader is loaded from nandflash after the system is started. The small loader initializes the hardware system and then loads the wince image directly, which is generally NK. nb0, and then run.
3. Here we will talk about NK. Bin and NK. nb0, two different wince images.
A. NK. nb0: it is a wince image file that can be directly run and can be directly copied to SDRAM for running.
B. NK. Bin: known as the Windows CE binary image data format file format, it is a binary file that contains multiple independent records (sections. During loading, different sections must be loaded to different places. Therefore, NK. Bin requires bootloader for explanatory loading. However, the size is smaller than NK. nb0. You can use the viewbin command to query records in NK. Bin.
Both nboot, eboot and uboot are bootloader.
---- Nboot is written by Samsung series CPUs to copy the first 4 kb program in nondflash to the SRAM for running. Nboot is very small (less than or equal to 4 K) and is generally used when it is started from nandflash. nandflash does not support xip. Therefore, there must be an executable program to move the eboot in it to the memory, nboot does this. Therefore, nboot is generally used together with eboot.
---- Eboot, that is, Ethernet boot, because it is updated through the network port at the beginning. Most of the USB download functions are now available. eboot can be used independently, that is, to burn eboot to norflash. norflash supports xip, so eboot can move itself to the memory.
---- Uboot is mainly used in Linux, but it has now been separated. It can be transplanted in CE, but it is only used for debugging, and there are few practical integration projects, after all, it is not highly compatible with the wince system.
Nor: eboot-> WinCE (NK. Bin)
Nand: nboot-> eboot-> WinCE (NK. Bin)
Nand: eboot-> WinCE (NK. nb0)