我们常用的51单片机,也是有bootloader的哦,只是厂家给你写好了,在keil C下面可以打开startup.a51,你可以看看它是如何给单片机初始化的。
那么uboot也像是startup.a51的功能,只是强大了N倍而已。它不但完成了初始化功能,还带了,像串口、USB、网口、文件系统等功能,分明就集成了单片机所有常用的功能。但是,uboot最主要的功能,还是调试硬件以及给内核创建一个能起动的环境,除此之外,它只能默默无闻了(正如,大家感觉不到BIOS的存在一样)。
大家可以在ftp://ftp.denx.de/pub/u-boot/,下载uboot的源代码,现在最新的是u-boot-2015.07.tar.bz2,解压,然后用source insight查看它的源代码。
里面有好多个目录,下面来一个个地解释一下吧。
/api /arch /board /common /configs /disk /doc /drivers /dts /examples
/fs /include /lib /Licenses /net /post /scripts /test /tools
arch目录:这个目录是放着CPU架构的目录。里面放着很多子目录,都是各种cpu架构。
1、arc。Synopsys的CPU,有ARCv1和ARCv2两种架构。
------------------------------------------------------------------------------------------------------------------------------------------------
2、arm。ARM公司的CPU,有ARM7、9、11、v7、v8架构等等。除了ARM公司的以外,还有很多其它公司使用了ARM内核,同时又改一点点,然后自己又起了个新的名字。比如:intel的PXA270、strongARM SA-1100
2.1、mach-at91目录下的是Atmel的AT91系列ARM核CPU,有ARM 7和ARM9架构。
2.2、mach-bcm283x目录下的是博通(broadcom)的bcm283x系列ARM核CPU。
2.3、mach-davinci目录下的是德州仪器(TI)的达芬奇系列,是ARM+DSP架构,常见的型号是DM365。
2.4、mach-highbank目录下的是嘉协达(Calxeda)的ECX-1000系列,该公司已倒闭。
2.5、mach-integrator目录下的是ARM公司的RealView Integrator系列,是ARM10和ARM11架构。
2.6、mach-keystone目录下的是德州仪器(TI)的keystone系列,是多核DSP+ARM架构。
2.7、mach-kirkwood目录下的是美满(marvell,前身是迈威科技)的kirkwood系列,是ARMv5架构(如:88F6282)。
2.8、mach-mvebu目录下的是美满(marvell)的MV78xxx系列,是多核ARM架构。
2.9、mach-nomadik目录下的是意法-爱立信(ST-Ericsson)的nomadik系列,该公司已倒闭。
2.10、mach-orion5x目录下的是美满(marvell)的orion系列,kirkwood平台同是也支持orion系列。
2.11、mach-socfpga目录下的是Altera的SOC FPGA系列,是ARM+FPGA架构。
2.12、mach-tegra目录下的是NVIDIA的tegra系列,ARM11架构,如:Tegra 600。
2.13、mach-uniphier目录下的是松下的uniphier系列,用于数字家电。
2.14、mach-versatile目录下的是德州仪器(TI)的OMAP系列,ARM9架构。
2.15、mach-zynq目录下的是赛灵思(Xilinx)的ZYNQ系列,是ARM cortex A9+FPGA架构。
-------------------------------------------------------------------------------------------------------------------------------------------------
3、avr32。ATMEL的32位处理器,精简指令集。
4、blackfin。ADI和Intel联合开发的16位/32位处理器,精简指令集。
5、m68k。摩托罗拉的68000型cpu。
6、microblaze。Xilinx的可综合CPU,可运行于FPGA上面,跟NIOS2类似,精简指令集。
7、mips。它是公司名称也是CPU名称,意思是无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages),精简指令集。
8、nds32。台湾晶心科技(Andes)公司的32位处理器。
9、nios2。Altera的可综合CPU,可运行于FPGA上面,跟microblaze类似,精简指令集。
10、openrisc。开源的可综合CPU,可运行于FPGA上面,跟microblaze、NIOS2类似,精简指令集。
11、powerpc。IBM、苹果公司和摩托罗拉公司联合开发的32位/64位处理器,精简指令集。
12、sandbox。google的沙盒技术,它不是CPU,但是可以运行于各种CPU上面。它用于记录CPU处理过的事情,相当于轻量级的虚拟机,可防御黑客/病毒的攻击。
13、sh。日本瑞萨(RENESAS)公司sh-x系列的CPU,精简指令集。
14、sparc。SPARC公司的可扩充处理器架构(Scalable Processor ARChitecture),精简指令集。
15、x86。Intel公司的CPU,PC机常用的架构。