嵌入式小结1

一、
1、uboot U-Boot嵌入式Linux系统的引导
(1)uboot主要作用是用来启动操作系统内核。

(2)uboot还要负责部署整个计算机系统。

(3)uboot中还有操作Flash等板子上硬盘的驱动。

(4)uboot还得提供一个命令行界面供人来操作。
1、uboot从哪里来的?

(1)uboot是SourceForge上的开源项目

(2)uboot项目的作者:一个德国人最早发起的项目

(3)uboot就是由一个人发起,然后由整个网络上所有感兴趣的人共同维护发展而来的一个bootloader。

2、uboot的发展历程

(1)自己使用的小开源项目。

(2)被更多人认可使用

(3)被SoC厂商默认支持。

总结:uboot经过多年发展,已经成为事实上的业内bootloader标准。现在大部分的嵌入式设备都会默认使用uboot来做为bootloader。
uboot本质上是一个裸机程序(不是操作系统),一旦uboot开始SoC就会单纯运行uboot(意思就是uboot运行的时候别的程序是不可能同时运行的),一旦uboot结束运行则无法再回到uboot(所以uboot启动了内核后uboot自己本身就死了,要想再次看到uboot界面只能重启系统。重启并不是复活了刚才的uboot,重启只是uboot的另一生)
2、bootloader
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
二、

  • board 目标板相关文件,主要包含SDRAM、FLASH驱动;
  • common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;
  • cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;
  • driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)
  • doc U-Boot的说明文档;
  • examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;
  • include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;
  • lib_xxx 处理器体系相关的文件,如lib_ppc, lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;
  • net 与网络功能相关的文件目录,如bootp,nfs,tftp;
  • post 上电自检文件目录。尚有待于进一步完善;
  • rtc RTC驱动程序;
  • tools 用于创建U-Boot S-RECORD和BIN镜像文件的工具;
    (以上关于目录结构的说明只适应u-boot-2010.06之前版本。u-boot-2010.06之后目录结构改变
    1.cpu与lib_arch合二为一,命名arch
    2.增加include folder
    3.分离出通用库文件夹lib
    三、
    一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:
    1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。
    2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
    3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。
    4、 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。
    通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。

猜你喜欢

转载自blog.csdn.net/weixin_42269817/article/details/86321318