Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403564
  • 博文数量: 77
  • 博客积分: 3149
  • 博客等级: 中校
  • 技术积分: 828
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 11:48
文章存档

2012年(5)

2011年(2)

2010年(11)

2009年(44)

2008年(15)

我的朋友

分类: LINUX

2009-03-24 11:20:03

 一.Bootloader
      理论上,uClinux引导时并非一定需要一个独立于Kernel Image的Bootloader Image。然而,将Bootloader与Kernel分开设计能够使软件架构更加清晰,也有助于灵活地支持多种引导方式,实现一些有用的辅助功能。Bootloader的主要任务可以概括如下:
    1.硬件初始化和系统引导;
    2.加载uClinux Kernel Image (如果需要);
    3.设置需要传递给Kernel的启动参数(如果需要);
    4.调用uClinux Kernel;
    5.辅助功能:从主机下载新的Image;
    6.辅助功能:烧写Flash Memory;
    7.辅助功能:支持功能5和6所需的人机界面,如串行终端上的命令行接口。
    对于常见的几类处理器内核,现在一般都找得到现成的Bootloader可用,不过需要针对具体的Board做些移植。在实现上述功能的前提下,也可以选择自行开发。由于Bootloader Image在物理上独立于Kernel Image,因此不一定选择GNU作为开发工具。对于以ARM7TDMI为内核的S3C44B0X处理器,完全可以使用ADS来开发Bootloader。
     1.硬件初始化和系统引导完整的Bootloader引导流程可描述如下:
     硬件初始化阶段一 -> 复制二级Exception Vector Table -> 初始化各种处理器模式 -> 复制RO和RW,清零ZI -> (跳转到C代码入口函数) -> 初始化Exception/Interrupt Handler  Entry Table -> 初始化Device Drivers -> 硬件初始化阶段二 -> 建立人机界面
     下面对上述各步骤逐一加以说明。
(由于排版原因,本文不完整,请看原文)

 
阅读(1171) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~