Linux启动总结

1 zynq启动流程

在没有外部JTAG的情况下,PS和PL都要依靠PS来完成芯片的初始化配置
配置控制模块分成两部分

  • 启动存储区(BootROM):ARM和上电启动时执行的静态存储区
  • 芯片配置单元:控制JTAG debug
    所以zynq的启动分成两种:BootROM主动启动和JTAG被动启动
    在这里插入图片描述

1.1 BootROM

不使用JTAG的情况下,ARM从BootROM中开始执行代码。PS所有模块中,CPU总是最先启动的。
BootROM中的代码负责加载stage1的启动镜像,当BootROM将控制权交给stage1以后,用户代码掌握整个系统的控制权,想要重新执行BootROM只能重启
在这里插入图片描述

1.2 FSBL(first stage boot loader)

FSBL是BootROM之后启动的引导程序,FSBL完成的工作有
在这里插入图片描述
FSBL阶段PL的配置不是必须的可以不配置PL部分
对于zynq平台而言,PL的bit文件、SSBL、裸跑的应用程序、linux内核都必须组织成flash分区镜像
在这里插入图片描述
在这里插入图片描述

1.3 SSBL

如果是裸跑的程序,那么可以省略,对于操作系统而言,是为操作系统进行初始化工作的
对于zynq平台的linux系统而言,U-BOOT就是SSBL,是linux社区一个开源的引导文件

2 Linux启动过程

选自http://blog.sina.com.cn/s/blog_b35897360102x5jg.html
嵌入式Linux从软件层面考虑分成四个部分

  • 引导文件(BootLoader):U-boot,SSBL阶段
    完成linux内核初始化内存,初始化外设,为内核拷贝设备树镜像文件到内存中
    之后U-boot姜系统控制权交给Linux内核
  • linux内核
    初始化、驱动设备的初始化和挂载
  • 文件系统:文件系统对一个存储设备上的数据和元数据进行组织的机制,文件系统不仅包含着文件的数据还包含着文件系统的结构
  • 应用程序

3 linux移植

设置交叉编译工具,得到三个东西

  • BootLoader:boot.bin=FSBL.elf+PL部分的bit+uboot.elf
  • linux内核:zImage+dtb
    zImage是压缩的Image
    和设备树device tree blob(U-Boot用来传递参数给Linux内核参数的一种文件形式)
  • 文件系统:ramdisk或Linaro

3.1 概念区分

https://www.cnblogs.com/linhaostudy/p/6735697.html
内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。
uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。
其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动去搞那些参数
平时调试用uImage,不用去管调整了哪些东西;zImage则是一切OK后直接烧0X0。开机就运行。


https://blog.csdn.net/xiabodan/article/details/46861139里有一句话:
Now we need to put BOOT.bin, devicetree.dtb, and uImage onto the FAT32 boot partition.

4 petalinux使用

来自https://blog.csdn.net/u013793399/article/details/53054734
https://blog.csdn.net/xiang_shao344/article/details/83144126

4.1 创建工程

  • 利用BSP生成一个工程
    petalinux-create -t project -s ~/Desktop/BSP/zc706.bsp
    -t 表示的是 type,类型是project,-s 表示 source,源是你的BSP文件
  • 自定义工程
    petalinux-create -t project --template zynq --name test_proj
    template属性可以选择zynq,zynqMP,microblaze

4.2 硬件配置(利用BSP生成一个工程可跳过)

指定hdf文件
petalinux-config --get-hw-description=~/Desktop
注意参数是存有hdf文件的路径,而不是文件本身
貌似不用改什么

4.3生成镜像

petalinux-build
在"/images/linux" 目录下生成对应各平台的petalinux系统镜像文件:
在这里插入图片描述

4.3.1 如果要生成uImage,如果需要的话

petalinux-package --image -c kernel --format uImage

4.3.2 生成引导镜像

petalinux-package --boot --fpga xxx.bit --u-boot
生成引导镜像文件:BOOT.bin

4.4 下载

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值