微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?

玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?

时间:02-24 来源:本站整理 点击:

  :ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬件信息是不固定的。这也是zynq灵活性的一个表现。电子发烧友网编辑现为读者整合《玩转赛灵思Zedboard开发板》系列文章, 其中包括在ZedBoard开发板上的一些应用实例。其内容包括:

  玩转赛灵思Zedboard开发板(1):ZedBoard详解

  玩转赛灵思Zedboard开发板(2):ZedBoard最简单的测试工程

  玩转赛灵思Zedboard开发板(3):基于Zynq PL的流水灯

  玩转赛灵思Zedboard开发板(4):如何使用自带外设IP让ARM PS访问FPGA?

  玩转赛灵思Zedboard开发板(5):基于AXI Lite 总线的从设备IP设计

  从本小节开始,讲着重介绍Zedboard上的嵌入式linux应用,包括使用SDK设计最简单的linux应用程序、linux交叉编译环境搭建、设备驱动编写等内容。本小节使用的linux系统是Digilent官方提供的OOB设计,它是Digilent官网给出的一个完整的、Zedboard可运行的linux 系统,包含了Zedboard上的几个重要的设备驱动如串口、USB、以太网、OLED、HDMI等。当linux在Zedboard上运行起来后,Zedboard就是一个小型的嵌入式系统,使用SDK及Xilinx ARM Linux工具链编译生成的可执行文件可以在这个系统执行。

  硬件平台:Digilent ZedBoard;开发环境:Windows XP 32 bit;软件: SDK 14.2。

  一、获取Zedboard可运行的linux

  Digilent官网给出Zedboard的可运行linux设计ZedBoard_OOB_Design包,可从http://www.digilentinc.com/Data/Documents/Other/ZedBoard_OOB_Design.zip获取,下载后解压,可以看到包的结构和内容:

  boot_image目录

  -- system.bit – 配置FPGA的bit文件

  -- u-boot.elf – 引导linux需要的Second-Stage boot loader

  -- zynq_fsbl.elf – 配置ARM PS系统的First-Stage boot loader(FSBL)

  doc目录

  -- README.txt – 说明文件

  hw目录

  -- EDK 14.1版本的XPS工程,用来生成硬件文件和bit文件

  linux目录

  -- devicetree_ramdisk.dts – 设备树源代码

  -- .config – Linux内核配置文件,用来生成zImage

  sd_image目录

  -- BOOT.BIN – 使用boot_images中的三个文件生成的Zynq配置文件

  -- devicetree_ramdisk.dtb – 编译后的设备树文件

  -- ramdisk8M.image.gz – 编译后的文件系统

  -- README – 介绍如何运行OOB设计的说明文档

  -- zImage – 编译后的内核

  sw目录

  --硬件配置

  --FSBL源代码

  其中sd_image目录中包含了ZedBoard上能够运行linux的所有文件。将SD卡格式化为Fat32,把sd_image目录文件拷贝到SD 卡根目录下;然后将JP7~JP11设置为SD卡启动模式,将JP2短路,JP3断开,这样可以下一步我们可以把U盘作为USB 从设备挂载到Zedboard上。

  

  图 Zedboard的连接和短路块设置

  上电后,等待ARM PS的配置、FPGA的配置(蓝色LED DONE 亮起),之后开始引导Linux系统了。可以从超级终端上看到一系列的引导信息:

  1 U-Boot 2012.04.01-00297-gc319bf9-dirty (Sep 13 2012 - 09:30:49)

  2

  3 DRAM: 512 MiB

  4 WARNING: Caches not enabled

  5 MMC: SDHCI: 0

  6 Using default environment

  7

  8 In: serial

  9 Out: serial

  10 Err: serial

  11 Net: zynq_gemHit any key to stop autoboot: 0

  12 Copying Linux from SD to RAM.。。

  13 Device: SDHCI

  14 Manufacturer ID: 1b

  15 OEM: 534d

  16 Name: 00000

  17 Tran Speed: 25000000

  18 Rd Block Len: 512

  19 SD version 1.0

  20 High Capacity: Yes

  21 Capacity: 3.7 GiB

  22 Bus Width: 1-bit

  23 reading zImage

  24

  25 2479640 bytes read

  26 reading devicetree_ramdisk.dtb

  27

  28 5817 bytes read

  29 reading ramdisk8M.image.gz

  30

  31 3694108 bytes read

  32 ## Starting application at 0x00008000 。。。

  33 Uncompressing Linux.。。 done, booting the kernel.

  34 [ 0.000000] Booting Linux on physical CPU 0

35 [ 0.000000] Linux version 3.3.0-digilent-12.07-zed-beta (tinghui.wang@DIGILENT_LINUX) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) )

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top