实验室智能防火安全系统-------bootloader

bootloader介绍

       首先,介绍一下bootloader:

(以下摘自:http://baike.baidu.com/view/661955.htm   百度百科)

        简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 (类似于PC机上的BIOS)

  通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式 世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。

  1. Boot Loader 所支持的 CPU 和嵌入式板

  每种不同的 CPU 体系结构都有不同的Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。
  2. Boot Loader 的安装媒介(Installation Medium)
  系统加电或复位后,所有的CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行Boot Loader 程序。
  3. 用来控制 Boot Loader 的设备或机制
  主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。
  4. Boot Loader 的启动过程是单阶段(Single Stage)还是多阶段(Multi-Stage)
  通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的
  6. BootLoader 与主机之间进行文件传输所用的通信设备及协议 程,也即启动过程可以分为 stage 1和 stage 2 两部分。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面几篇讨论。
  5. Boot Loader 的操作模式 (Operation Boot Loader 大多都是 2 阶段的启动过Mode)
  Linux世界里Boot Loader的解析
  网上关于Linux的BOOTLOADER文章不少了,但是大都是vivi,blob等比较庞 大的程序,读起来不太方便,编译出的文件也比较大,而且更多的是面向开发用的引导代码,做成产品时还要裁减,这一定程度影响了开发速度,对初学者学习开销 也比较大,在此分析一种简单的BOOTLOADER,是在三星公司提供的2410 BOOTLOADER上稍微修改后的结果,编译出来的文件大小不超过4k,希望对大家有所帮助.

 

 

        在我们的学习过程中我们将用到u-boot和vivi(三星公司专用),推荐大家使用u-boot。在此为了方便我们将使用vivi,SBC2410是三星公司arm920t处理器s3c2410。但是这里提供u-boot的移植过程,在移植之前我们需要掌握arm的相关知识,其中包括arm体系结构,arm汇编,以及嵌入式系统原理与应用。

        由于篇幅有限,我这里也只提供一些资料给大家参考:

       1)这里假设你已经是一个不错的C/C++程序员了;(这个部分请参考http://blog.csdn.net/PenglueR/archive/2010/02/18/5310696.aspx

       2)找一本《嵌入式系统原理与应用》的书,只要是最近出版的都可以;

       3)参考基于S3C2410A的嵌入式系统的U-Boot移植;

       4)下载u-boot-1.1.6.tar.bz2;

       5)在linux进行交叉编译;

       6)u-boot简介。

 

        写到这里我才发现我好像还没有讲解系统环境的搭建,出于对一些朋友还处于刚开始学习的阶段考虑,所以我有必要向朋友们介绍一下。在下一篇我将会向大家稍微详细的介绍一番,供有兴趣的朋友参考。同时也希望各位给我一些建议和留言,请把你宝贵的见解发在评论之上。

        今天的内容主要是让大家了解一下bootloader的概念,以及u-boot的相关介绍。(因为我刚刚把vivi移植到SBC2410的板子上,所以发blog时间晚了一点,后面我将坚持每两天发上一篇。谢谢.....)

        在这个过程中我是一边自己做一边发表blog,所以很多东西会从网上找引证,请见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值