网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

Bootloader存在的必要性

Bootloader存在的必要性
By good02xaut

Bootloader的功能决定了在引导Linux系统时,必须使用bootloader,除非你对linux内核进行了修改。
Bootloader有两个主要功能:
1.在发布模式,自动引导linux系统,为系统初始化各种参数。
2.在调试模式,要能够方便的下载内核,引导内核。

Linux系统一定要bootloader支持吗?
答:是的。通用的Linux内核,启动时需要很多参数,这些参数必须通过bootloader传递。而且内核一般是压缩存放到外存上的,从外存到内存的拷贝也是由bootloader完成。

Bootloader为什么不和kernel放到一起呢?
答:不可以这样做。从bootloader的第二个功能就知道,bootloader是不能和内核放到一起。当然,在发布模式时,是可以集成到一起的,通常没必要。

从哪里可以得到bootloader
答:目前通用的bootloader很多,不论是嵌入式还是桌面系统,比如lilo,grub,blob等。桌面用的bootloader我们就不讨论了,重点说一下嵌入式领域用的bootloader。采用通用的bootloader功能强大,开发容易,而且由专人维护升级,不过多是针对特定的CPU或者特定开发板的。如果是学习,推荐自己开发bootloader。

如何编写自己的bootloader?
答:编写一个bootloader只要能够完成前面提到的两个功能就可以了。分别描述一下这两个功能的实现:
1.该功能比较简单,就是从FLASH中拷贝数据到RAM。如果内核的存放不是基于文件系统的,直接采用汇编就可以完成块拷贝。然而如果内核存放在文件系统之上,比如内核存放到了基于ext2文件系统的CF卡上。首先我们的bootloader要能够访问CF卡,然后要能够识别文件系统,只有这样才能正确找到内核文件并拷贝到内存中。
2.该功能一般通过串口实现。对于ARM来说,驱动串口比较容易,直接从主机的串口接收内核数据存放到RAM中,就可以启动内核了。如果需要发布,还要实现把内核从RAM烧写到外存的能力。
为了提高速度,充分挖掘开发板和CPU的潜力,出现了许多用网口和USB接口下载内核的bootloader。使用网口,bootloader必须提供网卡驱动和TCP/IP协议的支持。使用USB接口,需要提高大容量存储类驱动。
为了拓展思路,你也可以使用红外,存储卡接口进行数据下载。使用红外接口,和串口基本一样,无非就是没有了连线。使用存储卡,通常需要文件系统的支持。比如,我们使用XD卡存放内核,在主机交叉编译好内核后,把内核存放到XD卡上。然后将XD卡插到目标板的插槽中,bootloader必须有能力把XD卡上的内核拷贝的RAM中,过程参考功能1的实现。

热门搜索:B10-8000-PCB 02B0500JF TLP76MSG 01B5001JF TLP725 2856142 TLP712B LC1800 TRAVELER3USB PM6SN1 SS7415-15 2856087 02M1001JF PDU1215 RBC11A TLP810NET 01B1001JF 1301380020 PS3612 PS-415-HG 2866569 2817958 BTS410F2E6327 2320306 01B1002JF
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质