Zedboard资料

1、 ZedBoard™ Linux Hardware Design Project Guide

下载地址

https://reference.digilentinc.com/_media/reference/programmable-logic/zedboard/zedboard_linux_design.zip

简介

ISE14.4版本,主要讲硬件配置、生成bitstream、生成FSBL、创建BOOT.BIN以及测试Boot Image。

2、Getting Started with Embedded Linux – ZedBoard

下载地址

https://reference.digilentinc.com/_media/zedboard_gswel_guide.pdf

简介

本文介绍如何在Zedboard上从SD卡启动linux
SD卡需要以下四个文件:

  1. 文件系统
  2. linux内核镜像
  3. BOOT.BIN文件
  4. 编译后的设备树

Formatting the SD Card

介绍如何在linux下给SD卡分区并创建文件系统。
在ZedBoard上若要支持Linaro文件系统,需要分两个区,第一分区至少1GB,FAT;第二分区至少3GB,EXT4。

The Linux File System

ZedBoard目前支持两种linux文件系统:BusyBox ramdisk和linaro Ubuntu distribution
Busybox:通过串口终端显示,掉电不保存,无需SD卡分两个区
Linaro:通过HDMI图形显示,掉电保存,需药SD分两个区
并分别介绍了如何使用上述两种文件系统

Building the Linux Kernel

介绍如何创建内核,主要包括

  1. 下载交叉编译器,配置环境变量
  2. 下载linux源码,make ARCH=arm digilent_zed_defconfig
  3. 配置内核 make ARCH=arm menuconfig
  4. make ARCH=arm
    最后在生成zImage,路径为源码目录/arch/arm/boot/zImage

Obtaining the BOOT.BIN File

BOOT.BIN是一个容器文件,它包含各种Xilinx用于启动PL和PS的特定文件
具体操作参考ZedBoard Linux Hardware Design

Compiling the Device Tree

设备树是一种数据结构,用于向linux描述使用的硬件,linux内核能解析设备树并在启动后对硬件初始化
除了描述硬件之外,设备树还能配置内核的启动参数。例如,告知内核要加载哪个文件系统,需要修改digilent-zed.dts文件以指定使用的文件系统。
对于Linaro在这里插入图片描述
对于Busybox ramdisk
在这里插入图片描述
然后用dtc工具用dts文件生成dtb文件

Booting the SD Card

介绍从SD卡启动ZedBoard的步骤

3、Embedded Linux Development Guide

下载地址

https://reference.digilentinc.com/_media/digilent_embedded_linux_guide.pdf

简介

本文介绍如何在Zynq-7000定制硬件上运行linux。

Hardware Customization

FSBL:建议每次修改硬件配置时都重新编译一次FSBL。FSBL会在为PS做一些简单的初始化,例如建立时钟发生器。

Device Tree

dts文件主要包含Node和Property,Node通常包含Property和Children Node,而property是key-value pair
(Generic Name)@(Base Address)中的基地是物理地址,代表什么?
当外设直接连在GPIO上时,为什么没有物理地址?
compatible对应设备的驱动
reg对应设备寄存器的物理地址(基址+寄存器的大小)

U-Boot

Zynq启动顺序为BootRom(Stage 0 BL)->FSBL->SSBL
Stage 0 BL:检查BootMode,来决定装载FSBL的方式;将“BOOT.BIN”装载到OCM并执行(BOOT.BIN包含FSBL,PL的bit文件和SSBL)
FSBL:将bit下载到PL,为PS建立PLL等等,最后把控制权移交给SSBL
SSBL(U-Boot):U-Boot启动autoboot,根据BootMode拿到内核Image。SD卡之下,U-Boot启动sdboot完成三件事。一是从FAT分区读取内核Image(zImage)并copy到0x0000_8000;二是读取DTB装载到0x0100_0000;三是读取ramdisk装载到0x0080_0000。最后U-Boot启动内核Image。

Linux Kernel Configuration

配置内核有多重方法,如config、menuconfig、defconfig等等。
默认内核参数可在配置菜单Boot Options->Default kernel command string(CONFIG_CMDLINE)设置,并且在设备树中,chosen节点的bootargs属性可以修改默认内核参数
文件系统定制,解压ramdisk.image.gz->挂载->修改->卸载->压缩

APPENDIX:Debug the kernel

4、Embedded Linux Hands-on Tutorial – ZedBoard

下载地址

https://reference.digilentinc.com/_media/zedboard_elhot.zip

简介

完整地减少了如何实现linux添加设备驱动并编写应用程序。
流程:
硬件定制->编译U-Boot->生成BOOT.BIN->编译Linux内核->测试文件系统->修改设备树,编写内核驱动->应用程序

你可能感兴趣的:(嵌入式)