分类: LINUX
2010-07-26 15:14:32
特点和功能
|
U-boot
|
Yamon
|
支持的cpu和board
|
1. 支持种类繁多,包括arm的各个系列,ppc,mips
2. mips的支持较差,目前支持au1100,au1500系列,4kec的需要自己移植
(工作量主要在起始代码的初始化部分,包括cahe和中断的初始化)
|
1.基本上对mips系列的都支持,包括SEADTM ,SEAD-2TMTM, AltasTM Malta
2.基本上属于mips系列专用,未听说过将Yamon应用去其他架构的实例(可行性低,相当于重写)
|
Image大小
|
通常200k~300k左右,可对一些功能进行裁减至100k下
|
一般最小500k
主要包括初始代码(start code)+大端image+小端image,通过修改,可裁减掉一种endian的image,大概减少200k左右
最小化裁减:可能接近100k
|
代码结构
|
1.采用了将平台无关和平台相关的代码分开处理的方法
|
1.采用了将平台无关和平台相关的代码分开处理的方法
|
内核启动方式
|
串口,tftp,本地, DHCP
|
串口,tftp,本地
|
内核支持格式
|
Vmlinux,或gzip压缩,或bzip2压缩,或zImage
|
只支持原始的vmlinux,网上有人也尝试修改过yamon来支持zImage(amd的1500开发板提供了支持zImage的补丁)
|
调试功能
|
只有简单的Go
|
功能强大,支持gdb,还有异常处理等
|
可移植性
|
对于移植到新的板子或cpu,需要修改的目录结构较清晰,容易添加
|
因为yamon没有采用大量的ifdef来控制选项,是通过yamon启动后自动detect到cpu和board的类型的,所以修改稍微麻烦
|
可裁减性
|
结构清晰,易于裁减
|
结构也较清晰,但由于存在较多yamon自动检测的部分,裁减性稍差
|
可扩展性
|
易于扩展,对于扩展shell命令和增加Driver较为容易
|
对shell command和Driver的支持也较易添加
|
总结
|
U-boot是一个较为通用的Bootloader,主要目的是启动内核,同时给开发者提供较为方便的移植性,U-Boot的扩展功能什么丰富;
Yamon(Yet Another Monitor)是主要针对MIPS系列cpu的一个功能强大的Rom monitor程序,Yamon的扩展功能较为单一;
|
|
结论
|
使用U-Boot作为开发用Bootloader
|