相信大家对BIOS都有一些基本的了解:是操作系统的一部分固件,位于RAM中,负责检测和配置计算机的硬件环境,读完后将硬盘MBR中的引导程序读到系统的RAM中,然后引导程序就将操作系统的内核映射从磁盘或者其他介质中读到RAM中,然后操作系统就可以以工作了。
对于嵌入式系统,没有BIOS,也没用磁盘中的引导程序,只有bootloader来完成操作系统引导的全部工作。bootloader的程序是依赖于硬件产生的,而硬件是由具体的情况决定的,所以并没有统一的bootloader程序来满足所以的嵌入式系统。但是会有一些较常用的bootloader程序。其中最出名的应该是U-Boot。他是ARMboot和PPCBOOT的综合体。
那么bootloader是如何启动的呢?一般有三种方式:网络启动,磁盘启动,Flash启动。在上次的博客中我们也提到,嵌入式系统的外部存储设备主要是Flash,所以bootloader的最常用的的启动方式是Flash启动。
刚才我们讲到了bootloader的启动方式,而我们也在之前说到,嵌入式系统的开发先把硬件设计好,在设计软件。那么假设我们现在硬件设计好了,bootloader怎么为我们所用呢?这时候就需要把bootloader程序烧录到我们的硬件中。bootloader的烧录方式有两种:通过JTAG口烧录和通过串口烧录。第一种方式的应用场景是我们第一次烧录bootloader程序。第二种方式是我们已经有了一个bootloader,但是我们需要更新下。bootloader烧录结束后,可以利用相应的命令,把bootloader写入到Flash中,然后就可以重启目标板,让bootloader正常工作了(也就是把嵌入式linux的内核映像加载到内存当中)。
对于嵌入式系统,没有BIOS,也没用磁盘中的引导程序,只有bootloader来完成操作系统引导的全部工作。bootloader的程序是依赖于硬件产生的,而硬件是由具体的情况决定的,所以并没有统一的bootloader程序来满足所以的嵌入式系统。但是会有一些较常用的bootloader程序。其中最出名的应该是U-Boot。他是ARMboot和PPCBOOT的综合体。
那么bootloader是如何启动的呢?一般有三种方式:网络启动,磁盘启动,Flash启动。在上次的博客中我们也提到,嵌入式系统的外部存储设备主要是Flash,所以bootloader的最常用的的启动方式是Flash启动。
刚才我们讲到了bootloader的启动方式,而我们也在之前说到,嵌入式系统的开发先把硬件设计好,在设计软件。那么假设我们现在硬件设计好了,bootloader怎么为我们所用呢?这时候就需要把bootloader程序烧录到我们的硬件中。bootloader的烧录方式有两种:通过JTAG口烧录和通过串口烧录。第一种方式的应用场景是我们第一次烧录bootloader程序。第二种方式是我们已经有了一个bootloader,但是我们需要更新下。bootloader烧录结束后,可以利用相应的命令,把bootloader写入到Flash中,然后就可以重启目标板,让bootloader正常工作了(也就是把嵌入式linux的内核映像加载到内存当中)。