您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁体中文

Blob在S3C2440A上的移植

1引言Bootloader是在操作系统运行之前执行的一段程序。通过这段小程序,初始化硬件设备,建立内存空间的映射表,设置适当的系统软硬件环境,为最终调用操作系统内核做准备。目前流行的可以引导加载Linux的Bootloader包括:支持x86体系结构的LILO,GRUB,ROLO,Loadlin,Etherboot,LinuxBIOS;支持ARM体系结构的Compaq的bootldr,Blob,U-Boot,vivi,RedBoot;支持MIPS体系结构的PMON和支持m68K体系结构的sir-boot。相对于上述Boot

1引言

Bootloader是在操作系统运行之前执行的一段程序。通过这段小程序,初始化硬件设备,建立内存空间的映射表,设置适当的系统软硬件环境,为最终调用操作系统内核做准备。目前流行的可以引导加载Linux的Bootloader包括:支持x86体系结构的LILO,GRUB,ROLO,Loadlin,Etherboot,LinuxBIOS;支持ARM体系结构的Compaq的bootldr,Blob,U-Boot,vivi,RedBoot;支持MIPS体系结构的PMON和支持m68K体系结构的sir-boot。相对于上述Bootloader,Blob具有代码量小,文件结构清楚等优势,更易于在具有ARM核的器件上移植。

2 Blob简介

Blob是Boot Loader Object的缩写,是一款功能强大的Bootloader。它遵循GPL,源代码完全开放,既可用来进行简单调试,也可启动Linux Kernel。最初的Blob是Jan-DerkBakker和Erik Mouw为一块名为LART(Linux Advanced Radio Terminal)的板子写的,该板使用的处理器是StrongARMSA-1100。Blob的主要特征是引导嵌入式Linux功能即把Kernel、根文件系统等从Flash中调入SDRAM执行;存储操作功能。即支持内存查看、修改、比较;设备驱动功能。即支持串口,Flash、外部SDRAM等驱动;命令交互功能。可在命令行下在线更新Blob,Kemel和ramdisk。

3 Blob的运行过程分析

图1给出Blob的启动示意图。定义Blob编译后的最大代码为64 KB,并且这64 KB分为两个阶段来执行。第一阶段的代码在start.s中定义,大小为1 KB,包括从系统上电后在0x00000000地址开始执行的部分。这部分代码包括对S3C2440A的一些寄存器的初始化和将Blob第二阶段代码从Flash拷贝到SDRAM中。除去第一阶段的1 KB代码,剩下的部分都是第二阶段的代码。第二阶段的起始文件为trampoline.s,被复制到SDRAM后,就从第一阶段跳到这个文件开始执行剩余部分代码。第二阶段的代码最大为63 KB,trampoline词义为"蹦床",所以在该程序中进行一些BSS段设置和堆栈的初始化等工作后,最后跳转到main.c进入C函数。


  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj