移植U-Boot之BootLoader简介

来源:互联网 发布:微信公众号淘宝客制作 编辑:程序博客网 时间:2024/06/10 01:39

注:以韦东山的书籍和视频,以MINI2440开发板开始学习嵌入式LINUX的知识,边学边记录,先尝试着写博客,慢慢改进和提高!加油!欢迎交流。


一:BootLoader的认识:

      BootLoader的作用是初始化硬件设备,准备好软件环境,将操作系统内核复制到内存中,然后启动内核。


      为了开发方便,工程师们增强了BootLoader的功能,实际上,在生产的产品中并不需要这些功能,为了提高我们的开发效率而增加功能而已。


      BootLoader跟硬件关系紧密,像U-BOOT这种比较凶猛的BootLoader也还是有些CPU架构不支持的,像U-BOOT这种BootLoader如果想拿来用在自己的板子上,也是需要进行一些一直的。

    

     U-BOOT是一个功能强大,支持很多CPU架构,开源的BootLoader。


二:BootLoader启动方式

       启动加载模式:BootLoader运行起来后,直接把内核拷贝到RAM中运行。

       下载模式:用来下载文件或其他一些开发中所需要的动作。

三:CPU上电后,从哪个地址执行。

        MINI2440一上电,如果从NAND FLASH启动,从片内的RAM的0地址开始执行。嵌入式开发板中,需要把存储器ROM或FLASH等映射到这个地址。MINI2440从NAND FLASH启动的话,已经默认是从0地址开始执行的。

 

四:板子和主机间传输文件时,使用到的协议包括如下:

       串口:xmodem/ymodem/zmodem    简单,速度慢

       网络:tftp,nfs    要求:主机上要开启tftp、nfs服务

       其他:USB


五:嵌入式LINUX系统的4个层次(软件角度):

      1.引导加载程序:固件中的boot的代码(可选)和BootLoader(主要目的为加载内核到内存中,然后启动内核。上电后执行的第一个程序)

      2.Linux内核:为自己的板子定制的内核以及内核的启动参数(启动参数是为了告诉内核的,包含内存的大小,以及命令行参数等等)。

        启动参数:可以是BootLoader传递给内核(BootLoader把启动参数放在某个地址,然后再启动内核时,把地址传给内核,内核启动前获取完参数,解析后,启动内核),

                            也可以是内核默认的。

      3.文件系统:包括根文件系统和建立与Flash内存设备之上的文件系统。

                             文件系统包含了系统启动所必须的文件,包括:内核启动后运行的第一个程序(init),给用户提供操作LINUX的控制界面的shell程序,应用程序所依赖的库等。                              这些必须、基本的文件合称为根文件系统。它们存放在一个分区中,Linux启动后首先挂接在这个分区。其他分区上的所有目录、文件的集合也称为文件系统。

     4.用户应用程序:存储在文件系统中。在用户应用程序与内核层之间may be 有一个嵌入式图形用户界面(嵌入式GUI)。eg:Qtopia ,MiniGui,QT.

     

     关于4个程序的表述如下图所示:截图来自(韦东山的嵌入式LINUX应用开发)

     

                   


0 0
原创粉丝点击