supervivi的一点秘密

自从2009-7版本的supervivi,其实是由三个程序组成的:
1. vboot和nboot的混合体,
2. 原来的supervivi
3. eboot
他们使用不同的编译器编译出,最后粘在一起形成supervivi,所以,supervivi并不是单纯的一套代码,而是三套代码。
其中,vboot和nboot的混合体暂且可以成为xboot,它的原始版本是nboot,但做了比较大的修改,以便可以做到这三个功能:
(1)检测开发板的K1-K6按键是否按下以启动supervivi
(2)启动Linux
(3)启动WinCE
xboot是由ARM Linux GCC编译的,其bin文件小于4K,因为xboot的功能比较多,而大小有限,所以无法像nboot那样加载开机图片和进度条,像vboot或者nboot一样,xboot实际是支持各个容量nand flash读取启动的。
原来的supervivi姑且称为old-supervivi,它主要保留了以前的功能:
(1)下载烧写Linux映像文件
(2)设置Linux启动参数
(3)格式化或者烧写整片Nand Flash
(4)下载裸机程序到内存运行,或者烧写到nand flash的block 0
old-supervivi也是由ARM Linux GCC编译的,因为三星原来的vivi实在太烂,如果要同时支持512 byte和2K byte的nand flash,需要做很多的调整,鉴于时间原因,我们暂时没有做这样的开发,因为重新设计一个新结构的bootloader比做这样的改进还要快一些。所以现在有两个版本的supervivi: 64M和128M
eboot其实是用PB编译出来的bin文件直接塞进supervivi里面的,但执行烧写nk.bin的命令时会调用这个eboot,所以不像其他烧写过程,nk.bin烧写完是无法返回supervivi菜单的。
当然,我们对eboot做了很多删减,只保留了最基本的烧写功能。
至此,或许你应该明白,supervivi实际是一团bootloader糅合在一起的东西,它无法通过单一的编译器制作生成,对于它的开放性也就几乎失去了意义,supervivi的功能很强的,而且简单易用,你只要学会使用它就可以了。对于喜欢研究bootloader的网友,有很多开源的可以参考学习;对于打算做项目的用户,完全可以使用vboot或者nboot来代替它,vboot和nboot的代码量很小,而且简单易懂,很容易实现定制化,比如加个开关控制之类的功能,因为实际的产品对于bootloader的要求大部分是很简单的,只要启动够快就行,关键还在于系统及应用部分。
希望这点“小秘密”对你有所帮助。

转载于:https://www.cnblogs.com/hnrainll/archive/2011/03/09/1978253.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值