linux系统移植

通过STM32的学习,基本掌握了外设底层的原理。进行linux驱动开发时,需要先将linux系统移植到开发板上。UCOS/FreeRtos移植就是在官方的sdk包中找到一个和自己所有芯片一样的工程编译一下,然后下载到开发板中。linux的移植就不是那么简单了,在移植linux之前要先移植一个bootloader,这个bootliader代码是用来启动linux内核的。常用的bootloader就是U-boot,要先移植好u-boot后,在移植linux内核,移植完linux内核,linux还不能正常启动,还需要移植一个根文件系统rootfs,根文件系统里面包含了一些常用的命令和文件,所以u-boot,linux-kenel和rootfs这三者一起,才构成了一个完整,功能完善,可以正常使用的linux系统。

  • u-boot,linux-kernel,rootfs这三者的移植,大部分的工作NXP(半导体公司)已经完成了,所以主要做的是“适配”,这里的“移植”主要是能够在I.MX6U-ALPHA开发板上跑起来。
  • U-boot简介:linux系统启动前需要一个bootload程序,芯片上电要先运行一段bootloader程序,这段程序会先初始化DDR等外设,然后将linux内核从flash(NAND,SD,MMC等)复制到DDR中,最后启动linux内核。实际上bootloader的实际工作要复杂的多,和PC机上的bios与windows的关系一样,bootloader相当于bios。现在有很多现成的bootloader软件可以使用,如u-boot, vivi,RedBoot等等,其中U-boot(universal boot loader)用的最为广泛。uboot是一个遵循GPL协议的开源软件,是一个裸机代码,可以看作是一个裸机综合例程。现在的uboot已经支持液晶屏,网络,usb等。一般不会直接用uboot官方的uboot源码,因为这些源码是给半导体厂商准备的,它们会下载uboot官方的uboot源码,然后将自家相应的芯片移植进去,也就是说半导体厂商会自己维护一个版本的uboot,这个版本的uboot相当于他们定制的,对自家的芯片支持的很全。虽然uboot官网的源码一般也会支持他们的芯片,但绝对没有半导体厂家自己维护的uboot全面。
种类 描述 使用场景
uboot官方的uboot代码 uboot官方维护开发的uboot版本,版本更新快,基本包含所有常用的芯片
半导体厂商的uboot代码 半导体厂家维护的uboot,专门针对自家芯片,在对自家芯片的支持上要比uboot官方好
开发板厂商的uboot代码 开发板厂家在半导体厂家提供的uboot基础上加入自家开发板支持 若购买开发板以后,使用半导体厂家提供的uboot,有些外设驱动可能是不支持的,需要自己移植,也就是uboot移植
  • uboot移植: 前面分析了uboot启动流程,对uboot有了初步的了解,下面将详细介绍NXP官方的uboot移植到正点原子的I.MX6ULL的开发板上,详细介绍如何在uboot中添加开发板。

你可能感兴趣的:(linux操作系统)