ZYNQ linux操作系统

文件准备

在ZYNQ-7000系列Soc上启动Linux操作系统需要两个文件,

  • 一个为BOOT.mcs(QSPI启动所需,SD卡启动为BOOT.bin)BOOT文件由三个文件合成,分别是系统第一阶段引导文件fsbl.elf,FPGA配置文件design.bit,Linux系统的启动文件u-boot.elf。
  • image.ub。其中image.ub为Linux系统镜像文件,由petalinux工具编译而成,

制作BOOT文件可以采用两种工具

  • xilinx官方的XSDK软件,ref
  • petalinux工具。通过指令“petalinux-package –boot –fsbl–fpga–u-boot”进行合成。

文件内容

boot.bin

fsbl.elf、u-boot.elf、design_1_wrapper.bit(非必须)、

  • 一级引导程序:fsbl.elf

  • 镜像引导程序:u-boot.elf

  • PL配置程序.bit

image.ub

这个文件是linux镜像程序(内核、设备树、文件系统),由petalinux-package --image 打包kernel rootfs device-tree这个三个文件合成的image.ub文件

启动方式

(一) SD卡启动linux

在生成BOOT.bin文件后,将其与image.ub文件一起放到SD卡中,设置板子的启动方式为SD卡启动,则可以通过SD卡进行linux的启动,该方法较为简单,调试时经常使用。

(二) QSPI Flash启动linux

在代码调试完成后,一般需要将linux内核烧写到Flash中,方便今后的使用。其步骤如下。

烧写BOOT.mcs文件:改变Zynq芯片的处理板模式为QSPI启动,找到刚才生成的BOOT.mcs文件,然后利用XSDK软件中的“Xilinx Tools”——“Program Flash Memory”工具,在Image File栏中添加刚才生成的BOOT.mcs文件.

连接板子的JTAG电缆(为了烧写Flash)和USB-UART电缆(供电和串口信息监控),点击Program将BOOT文件烧写进Flash。烧写完成后,断电重启并利用串口调试工具,即可观察到串口的打印信息。但由于BOOT文件中仅包含了u-boot文件,因此板子启动到u-boot阶段就会停止,无法找到linux内核,若要同时启动linux系统,则在生成BOOT文件的时候,将linux内核文件image添加进去,生成的BOOT文件内部u-boot会自动找到内核文件并展开加载相应的内核和文件系统。

把image.ub镜像烧写在flash开机启动(无SD卡)

flash 启动

借鉴tftp的启动方式,因为没有randisk所以直接用image.ub;
把iamge.ub加载在0x1000000内存地址就可以运行系统了
(注意:其他地址不行,这个地址查看u-boot环境变量得出)。红色为特别注意的,蓝色次之。(这个图是修改后的环境变量设置)注意:开始地址不能放在0x500000以下,boot环境变量存储就在0~5M内,查看环境变量得出。
在这里插入图片描述
1.将images.ub下载到内存中

tftp 0x800000 image.ub

2.把flash中的6~14M之间的内容擦除(输入sf probe 0命令后才能读写flash,我看到其他有些人是sf probe 0 0 0)

sf probe 0

sf erase 0x600000 0x700000

3.把内存中0x800000开始的7M的内容写到0x600000开始的后面7M的空间去。(因为我的镜像6.09M,实际大小看具体情况)

sf write 0x800000 0x600000 0x700000

4.设置环境变量让启动后把0x600000开始的7M内容加载到内存0x1000000中去,再用bootm命令启动内存中的内核。
setenv bootcmd ‘sf probe 0 && sf read 0x1000000 0x600000 0x700000 && bootm 0x1000000’

下图为启动启动过程截图,因为太长就只给出开始和末尾的:
在这里插入图片描述
在这里插入图片描述

ref
https://www.pianshen.com/article/2243712623/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值