Bootloader in Embedded Systems
Bootloader is a software component that boots a device and launches the major softwares on the development board. It provides, in addition to booting capabilities, functions such as effective debugging, reading/writing memory, flash reprogramming, configuring, etc.
In this article we will take the U-Boot (on the SMDK2410 development board) for example to introduce the usage of bootloader in embedded systems.
U-Boot is the universal, richest, most flexible, and most actively developed open-source bootloader, it supports hundreds kinds of development boards of the PowerPC、ARM、X86、MIPS architectures. Download it http://www.denx.de/wiki/UBoot for more information and http://www.denx.de/wiki/UBoot/SourceCode for current source code.
Code Analysis
Platform dependence:
board, cpu, lib_ppc,lib_arm, include
Platform independence:
common, net,fs,drivers
Tools and Documenttation
tolls, doc
| board | Board dependent files, RPXlite(mpc8xx), smdk2410(arm920t), sc520_cdp(x86) | net | Networking code |
| cpu | CPU secific files, mpc8xx, pcc4xx, arm720t, arm920t, xscale, i386 | fs | File System Code |
| lib_ppc | File generic to Power PC architecture | post | Power On Self Test |
| lib_arm | File generic to ARM architecture | drivers | Common used device drivers |
| LIB_I386 | File generic to x86 architecture | disk | Hard disk interface code |
| include | Header Files and board configs | rtc | Real Time Clock drivers |
| common | Misc functions | dtt | Digital Thermometer and Thermostat drivers |
| lib_generic | Generic library functions |