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

Adam Taylor玩转MicroZed系列53:聊聊Linux 和 SMP

发布者:jackzhang 时间:2014-11-11 15:55:06

作者:Adam Taylor

在最近的几篇博客中,我们花了主要精力讲解操作系统和AMP(非对称多进程处理),接下来我们希望看到Linux系统在microzed板上运行。我们目前还没有讨论过Xilinx ZYNQ SoC上运行Linux,尽管Linux已经是一个非常流行嵌入式操作系统了。本节我们通过讲述它,同时也顺便讨论SMP(对称多处理器)。俗话说,一石二鸟嘛。

自从Linux系统被 Linus Torvalds(一 个赫尔辛基大学计算机系的学生,他1991年写这个Linux时,只是作为他个人的一个项目来做)创建以来。Linux已经成为世界上最广泛采用的操作系 统之一,作为嵌入式操作系统它正变的越来越受欢迎!随着大量的软件开发人员熟悉Linux内核和Linux下的应用程序开发,很显然,我们也希望能够在 Zynq SoC的PS上跑Linux操作系统。Linux既然有能力跑在一片 ARM Cortex-A9 多核处理器,当然也可以在Zynq SoC的ARM Cortex-A9 双核上运行。

当操作系统跑在双核上时,单个系统受控制并且将变成一个SMP(对称多处理器),我们有两种方法在MicroZed板上启动及运行Linux操作系统。

  • 我们可以使用一个已经存在的预编译镜像文件,就像这里这个。这是个最快速的方法,但是这个操作系统镜像可能没有像我们在硬件级别上所要求的那么多的外设。
  • 另外一种方法,我们可以基于PetaLinux创建我们自己的Linux版本,(您必须在Linux系统下完成开发,而不是windows)

    定制属于我们自己的操作系统版本需要如下步骤。

    具体步骤如下:
    1、第一级Boot Loader:配置处理器和硬件,比如说DDR时序等。
    2、第二级Boot Loader:载入操作系统,U Boot是最常用的方法。
    3、根文件系统:针对我们自己的版本,我们需要一个RAM存储,包含所有的启动Linux系统所需要的文件。
    4、设备Blob树:这一步定义了硬件配置,并且允许通过不同的硬件实现来使一个发行版本被使用。
    5、Linux Kernel :为我们的应用程序,重新编译下内核。
    6、开发Linux下面的应用程序。
    7、创建Boot镜像。

    我们将在接下来的几篇博客中对以上7步加以描述。
    尽可能地使用Linux 预编译镜像文件,该文件是MicroZed板自带的,尽管这个版本实际上还只是个demo。我们要做的第一件事就是从上面的链接下载Zip文件并且保存到一个工作目录。

    然后我们将这些文件复制到一个SD卡并设置MicroZed板跳线帽,使镜像文件从SD卡启动。

    当启动序列完成后,我们将在终端看到如下图所示:

    由于这个Linux版本是为MicroZed进行定制开发的,所以部分功能受到限制。尽管如此,Zynq PS肯定是能够支持GPIO的,这样的话,我们便可以通过终端来控制MIO47上的LED灯的亮灭,按键是在MIO51上,我们可以读取它的状态。

    我们在终端中获取可用的驱动程序,在如下路径:/sys/class/gpio/ 。我们可以通过下面的命令串来控制LED,该命令串首先输出mio47到sysfs文件系统,接着配置IO作为输出,最后点亮LED。
    Echo 47 > /sys/class/gpio/export
    Echo 47 > /sys/class/gpio/export
    Echo 1 > /sys/class/gpio/gpio47

    通过以上命令串控制说明,基本的Linux操作系统可以很容易在microzed上启动和运行。但是,要真正体现Linux的强大,我们还得让他跑一个定制的硬件应用程序才行。这个我们将在下一篇博客中继续讲述。

    原文链接:
    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基础及典型数字

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