你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Adam Taylor玩转MicroZed系列55:在Zynq SoC上运行Linux操作系统

发布者:jackzhang 时间:2014-11-20 08:33:31

作者:Adam Taylor

如果在我们的虚拟机上已经安装好了SDK,我们就得使用Linux操作系统来建立我们自己的应用程序。这通常需要对 Zynq SoC的硬件重新进行定义。

首先,我们要做的就是确保将VIVADO设计套件以及SDK下载并且安装到我们的虚拟机中。因为我们需要这些工具对Zynq SoC进行硬件定制同时构建软件开发环境。

接下来我们按照下面步骤进行:

1. 按照我们的要求新建一个Zynq 硬件系统,确保我们有下面这些外设:
• UART(必须的)
• SD 卡配置(可选)
• 以太网(可选)
• TTC(三倍定时器/计数器模块,必须的)

2. 将硬件设计导出到SDK并且打开SDK,以便我们接下来的操作:
• 添加Petalinux 安装目录下的EDK用户库。该库在 tools ->SDK内部repositories 文件夹和Petalinux 安装目录下的 components 文件夹内都有。


  • 使用独立的BSP建立一个FSBL(第一级Boot Loader)。如果你不知道怎么做,本系列的第6部分可以帮你解决。
  • 为我们将要开发的Petalinux 应用程序创建一个BSP(板级支持包)。记住在OS选项中的下拉框中选择Petalinux ,如下图所示。如果你不熟悉的话,重复操作几次,本系列的第二部分针对如何创建一个BSP有一个详细的指导。

• 创建完了BSP。我们将我们选择的UART配置为std_in 和std_out (在本例中名字叫做ps7_uart_0 ),从主内存执行代码(在本例中是ps7_ddr_0)。

到目前为止,我们对使用的工具都非常熟悉,并且以前也操作过类似的步骤,比如我们曾经在 Zynq SoC移植过μC/OS-III操作系统。不管怎么样,现在我们要开始使用Petalinux SDK 了。

第一步,我们在SDK内新建一个工程,我们可以使用下面的命令:
$petalinux-create --type project --template zynq -- name week55

在我们Petalinux文件夹的顶层将生成一个工程文件。

下一步就是确保我们可以使用前面创建好的BSP获取我们的硬件设置。要实现这个,我们定位到BSP文件夹,并且指向刚刚我们创建的工程。命令如下:
$petalinx-config -- get-hw-description –p /home/adam/petalinux-v2014.2/final/week55

生成的文件(里面包含一个设备树,一个新的xparameters.h,一个config.mk 文件)在
/subsystems/linux/hw-description下面。

最后一步要求我们返回我们的工作目录,这样我们可以:
• 配置顶层系统,我们就用命令:$petalinux-config,例如:假设我们要配置从SD卡启动等。
• 配置内核我们就使用命令: $petalinux-config –c kernel
• 配置根文件系统,我们就使用: $petalinux-config –c kernel

如果我们对用这些命令进行自定义配置的结果都满意的话,我们就要编译这个系统了,这个操作非常简单,只要输入命令:$petalinux-build

然后,我们用下面的命令来创建一个boot镜像文件:
$petalinux-package –boot – fsbl
–fpga
--uboot

接着,我们就可以直接启动我们的系统并且测试它,当然,先用QEMU来仿真一下也是个好主意。

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了