基于Zynq-7000的嵌入式Linux移植

合集下载

ZYNQ_嵌入式软件开发

ZYNQ_嵌入式软件开发

Example: Xapp1078 : Linux / Bare-metal AMP Xapp1079 : Bare-metal / Bare-metal AMP More info Refer to:
/Multi-OS+Support+(AMP+%26+Hypervisor)
FSBL工程根据XPS的XML文档选择需要的BSP驱动,并生 成ps7_init.c文件
相关文档: /support/documentation/user_g uides/ug821-zynq-7000-swdev.pdf
Page 8
Zynq-7000 Bootgen and BIF file format
Bootgen
A standalone tool for creating a bootable image suitable for the Zynq7000 AP SoC processor. The program assembles the boot image by prefixing a header block to a list of partitions. Each partition can be optionally encrypted and authenticated.
Page 3
Zynq-7000 开发工具 ---- XPS
XPS 可实现完整 的配置和定制操 作
管理 Zynq-7000 AP SoC 外设 IO 引脚启动配置和 初始化
器件安全、回读引 导和比特流管理 措施 项目专用配置感 知 无需用户掌握具 体硬件知识 利用可展开的软 件图自动构建一 级引导载入程序
Page 13
Zynq-7000 Power Management

微型嵌入式实时操作系统SmallRTOS在Xilinx(赛灵思)Zynq平台上的移植

微型嵌入式实时操作系统SmallRTOS在Xilinx(赛灵思)Zynq平台上的移植

微型嵌入式实时操作系统SmallRTOS在Xilinx(赛灵思)Zynq平台上的移植微型嵌入式实时操作系统SmallRTOS是一个源代码开放的、易于移植的、面向深度嵌入式应用的微内核实时操作系统,主要应用领域为工业控制,智能传感器开发,智能终端等。

其官方开源网址为:,下面我们逐步演示如何在Zynq平台移植SmallRTOS 实时操作系统。

我们从Vivado导出硬件顶层设计包开始,如下图所示点击菜单File‐>Export‐>Export HardwareVivado会弹出如下对话框,我们不做任何修改,直接点击OK按钮然后通过Vivado启动软件开发套件工具SDK,点击菜单File‐>Launch SDKVivado会弹出如下提示对话框,采用默认设置,直接点击OK按钮。

此时软件开发套件SDK会启动,并提示正在导入硬件顶层设计包,如下图所示:导入完毕,我们在SDK左侧栏可以看到导入的硬件顶层设计包design_1_wrapper_hw_platform_0在此基础上,我们创建板级支持包BSP工程,点击SDK菜单下的File‐>New‐>Board Support PackageSDK弹出如下配置对话框,采用默认命名,默认参数即可,直接点击Finish按钮。

接着弹出如下对话框,选择根据需要选择板级支持包的功能组件,我们选择如下三个组件:lwip,xilffs,xilrsa等点击OK按钮后,弹出如下进度提示框,表示正在生产BSP板级支持包。

生成完毕后,在左侧栏会出现如下所示的两个工程:接着,就可以创建应用程序了。

在SDK的菜单中点击File‐>New‐>Application Project,如下图所示:在SDK的弹出对话框中,填写应用程序的名字,比如SmallRTOSDemo等,板级支持包选择已经创建的工程standalone_bsp_0。

之后点击按钮Next此时会出现示例工程选择对话框,如下所示,可以根据需要自行选择,我们选择Empty Application点击按钮Finish后,应用工程就创建完毕了,不过此时应用工程是空的,还无法使用。

基于Zynq7000的简易数据采集记录系统

基于Zynq7000的简易数据采集记录系统

基于Zynq7000的简易数据采集记录系统陈维蛇;姜文博;刘洪【摘要】介绍利用Zynq7000的SD卡接口,通过xilffs-v3.1轻量级文件系统,将所需要的记录数据存储到SD卡上,以实现数字信号采集、系统工作状态记录等功能.【期刊名称】《通信电源技术》【年(卷),期】2018(035)004【总页数】2页(P55-56)【关键词】Zynq7000;SD卡;xilffs;数据采集【作者】陈维蛇;姜文博;刘洪【作者单位】陕西长岭电子科技有限责任公司,陕西宝鸡 721006;陕西长岭电子科技有限责任公司,陕西宝鸡 721006;陕西长岭电子科技有限责任公司,陕西宝鸡721006【正文语种】中文0 引言Zynq-7000 SoC xilinx是新一代FPGA(Artix-7与Kintex-7FPGA)与Cortex-A9 ARM相结合的一款可扩展处理平台。

它的可编程逻辑部分被称为PL,采用了28 nm可编程技术,使用户可以利用它进行系统可编程逻辑部分的开发;ARM部分被称为PS,为Cortex-A9双精度浮点引擎的双核ARM,集成了L1和L2缓存、DDR3控制器、以太网、串口和IIC总线等常用外设。

用户可以利用它进行C语言部分开发。

ARM核可以裸机运行,也可以灵活搭载Linux、VxWorks等操作系统。

Zynq-7000 SoC的PL与PS部分采用AXI总线系统进行通信,xilinx公司提供了APB桥、DMA高速数据通道以及GPIO、UART等AXI总线标准外设通信模块。

用户可以利用它们方便地搭载自己的可裁剪系统。

在包含Zynq7000的嵌入式系统工作过程中,有时需要记录一些系统工作过程中的数据,如AD采集的数据、系统工作状态等。

如果使用标准的数据记录系统,则需要额外的硬件软件开销,无形中增加了系统的成本和复杂性。

本文介绍了一种简易记录这些数据的方法。

1 系统构架本例硬件采用AX7020和其配套的AD卡,开发环境采用VIVADO2015.4,系统结构如图1所示。

基于ZYNQ平台的图像拼接实验案例设计与实现

基于ZYNQ平台的图像拼接实验案例设计与实现

ISSN 1002-4956 CN11-2034/T实验技术与管理Experimental Technology and Management第37卷第10期2020年10月Vol.37 No. 10 Oct. 2020DOI:10.16791/ki.sjg.2020.10.041基于ZYN Q平台的图像拼接实验案例设计与实现于蕾、李欣泽2,侯长波1(1.哈尔滨工程大学信息与通信工程学院电工电子国家级实验示范中心,黑龙江哈尔滨150000;2.哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150000)摘要:为了优化和改进“电子系统设计”实验课教学内容,设计了一个基于ZYNQ 7000系列平台的图像拼接 实验案例。

该实验在Visual Studio环境中编写图像拼接程序,通过搭建L inux环境,将算法程序移植到硬件平台中以完成图像拼接。

该实验是一个典型的利用ARM+FPGA体系结构扩展FPG A应用的案例,为学生进行创新性 设计提供了良好的示范,有利于培养学生的软硬件协同设计能力。

关键词:电子系统设计;图像拼接;Z Y N Q;软硬件协同设计中图分类号:G642.4 文献标识码:A 文章编号:1002-4956(2020)10-0176-03Design and realization of image stitching experimentalcase based on ZYNQ platformYU Lei1,LI Xinze2,HOU Changbo1(1. National Electrical and Electronic Experimental Teaching Demonstration Center, College of Information andCommunication Engineering, Harbin Engineering University, Harbin 150000, China; 2. College of Information and Communication Engineering, Harbin Engineering University, Harbin 150000, China)Abstract:To optimize and improve the teaching content o f the “Electronic system design” experimental course, an experimental case o f image stitching based on the ZYNQ 7000 series platform is designed. In this experimental case, an image stitching program is written in the Visual Studio environment. By setting up a Linux environment, the algorithm program is transplanted to the hardware platform to complete the image stitching. This experiment is a typical case o f using the ARM + FPGA architecture to extend FPGA applications, which provides a good example for students to carry out innovative design and cultivates students' software and hardware collaborative design ability.Key words:electronic system design; image stitching; ZYNQ; software and hardware collaborative design传统的“电子系统设计实验”课程中所采用的 F P G A芯片功能较单一,需要使用专用的硬件描述语 言(Verilog H D L或者VHDL ),擅长C语言或者嵌人 式系统编程的工程师往往需要重新入门学习,不利于 扩展后续功能[1]。

XilinxZYNQ-7000平台简介

XilinxZYNQ-7000平台简介

XilinxZYNQ-7000平台简介平台介绍Zynq7000是赛灵思公司(Xilinx)推出的⾏业第⼀个可扩展处理平台Zynq系列。

旨在为视频监视、汽车驾驶员辅助以及⼯⼚⾃动化等⾼端嵌⼊式应⽤提供所需的处理与计算性能⽔平。

在2010年4⽉硅⾕举⾏的嵌⼊式系统⼤会上,赛灵思发布了可扩展处理平台的架构详情,这款基于⽆处不在的ARM处理器的SoC可满⾜复杂嵌⼊式系统的⾼性能、低功耗和多核处理能⼒要求。

赛灵思可扩展处理平台芯⽚硬件的核⼼本质就是将通⽤基础双ARMCortex-A9MPCore 处理器系统作为“主系统”,结合低功耗28nm⼯艺技术,以实现⾼度的灵活性、强⼤的配置功能和⾼性能。

由于该新型器件的可编程逻辑部分基于赛灵思28nm7系列FPGA,因此该系列产品的名称中添加了“7000”,以保持与7系列FPGA的⼀致性,同时也⽅便⽇后本系列新产品的命名。

Zynq-7000系列的可编程逻辑完全基于赛灵思7系列FPGA架构来设计,可确保28nm系列器件的IP核、⼯具和性能100%兼容。

最⼩型的Zynq-7000、Zynq-7010和Zynq-7020均基于专门针对低成本和低功耗优化的Artix-7系列;较⼤型的Zynq-7030和Zynq-7040器件基于包括4⾄12个10.3Gbps收发器通道,可⽀持⾼速⽚外连接的中端Kintex-7系列。

所有四款产品均采⽤基于2个12位1MspsADC(模数转换器)模块的新型模拟混合信号模块。

Zynq®-7000 SoC 系列集成 ARM® 处理器的软件可编程性与 FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上⾼度集成 CPU、DSP、ASSP 以及混合信号功能。

Zynq-7000 系列包括单核 Zynq-7000S 器件和双核 Zynq-7000 器件,是单位功耗性价⽐最⾼的全⾯可扩展的 SoC 平台,可充分满⾜您的独特应⽤需求。

AUMO ALINX ZYNQ-7000产品手册说明书

AUMO ALINX ZYNQ-7000产品手册说明书

ZYNQ-7000产品手册ZYNQ-7000 Product Guide2023关于我们官方合作伙伴业务范围芯驿电子科技(上海)有限公司,成立于2012年,总部位于上海松江临港科技城,是一家车载智能产品和FPGA 技术方案公司,拥有“AUMO”和“ALINX”两大品牌,其中AUMO 品牌专注车载智能产品,ALINX 品牌专注于FPGA 产品和方案定制。

经历十年发展,公司产品已经远销海外30多个国家。

2018年,公司通过高新技术企业认证,并通过ISO9001质量体系认证;2019年,荣获上海市松江区九亭镇“科技创新奖”;2020年,荣获上海市“专精特新企业“称号;2021年,申请通过上海市科技型中小企业技术创新资金项目,通过了国家级科技型中小企业认定,并通过了高新技术企业认证复审;2022年获得上海市张江国家自主创新示范区专项发展资金并通过“上海市创新型中小企业”认证。

ALINX 是全球的FPGA 芯片龙头企业XILINX 官方合作伙伴,国内FPGA 芯片龙头企业紫光同创官方合作伙伴,同时作为百度AI 合作伙伴,为百度定制了国产AI飞桨系统的Edgeboard 系列边缘设备。

通过多年的研发投入,已经推出100多款FPGA SoM 模组和配套板卡,积累了1000多家企业批量用户,上万个独立开发者,市场占有率遥遥领先。

通过产品+定制化服务的经营方式,ALINX 将继续加大对产品研发和技术研究的投入,不断与垂直行业客户合作,聚焦高端设备领域,协助客户解决行业的技术难题。

主要聚焦于FPGA + AI 解决方案,FPGA 国产化,FPGA 开发套件, ALINX 自有品牌产品。

公司提供的设计解决方案涉及人工智能、自动驾驶、轨道交通、半导体、5G 通信、医疗设备、工业互联、仪器仪表、数据中心、机器视觉、视频图像处理等行业。

紫光同创国内唯一的FPGA 板卡官方合作伙伴,XILINX 官方重要合作伙伴,百度AI合作伙伴。

基于ZYNQ-7000的星载双模卫星导航接收机设计与实现

基于ZYNQ-7000的星载双模卫星导航接收机设计与实现赵晶【摘要】随着卫星导航系统的不断发展和完善,星载卫星导航接收机的研制己经成为卫星导航领域重要研究方向之一.设计了一种基于ZYNQ-7000的星载卫星导航接收机,具有GPS/BDS双模兼容、高精度和高动态等特点.详细介绍该星载接收机总体设计架构、捕获跟踪设计、定位测速算法及电离层误差修正,最后通过模拟源模拟低轨卫星场景,验证了设计方案的可行性.同时,通过统计星载接收机定位误差,证明了该星载接收机满足指标要求.%With the continuous development and perfection of the satellite navigation system, the development of space-borne satellite receiver becomes an important research direction of satellite navigation system. A satellite-borne satellite navigation receiver based on ZYNQ-7000 is designed, which has the characteristics ofGPS/BDS dual-mode compatibility, high precision and high dynamic. The overall design frame, capture and tracking design, positioning velocity-measurement algorithm and ionospheric error correction are described in detail. Finally, simulation on low earth-orbit satellite indicates the feasibility of the proposed scheme. Meanwhile, the statistics on the positioning error of the satellite-borne receiver indicate that the on-board receiver could meet the requirements of design indicators.【期刊名称】《通信技术》【年(卷),期】2017(050)008【总页数】6页(P1849-1854)【关键词】星载接收机;卫星导航;捕获跟踪;ZYNQ-7000【作者】赵晶【作者单位】中国电子科技集团公司第二十研究所,陕西西安 710068【正文语种】中文【中图分类】TN967.1随着卫星导航技术的不断深入发展,星载接收机的研制成为卫星导航领域的重要研究方向之一。

基于zynq平台的android操作系统移植

㊀ISSN1672-4305CN12-1352/N实㊀㊀验㊀㊀室㊀㊀科㊀㊀学LABORATORY㊀SCIENCE第22卷㊀第6期㊀2019年12月Vol 22㊀No 6㊀Dec 2019计算机应用基于Zynq平台的Android操作系统移植王㊀洁,冷㊀威,侯㊀刚(大连理工大学软件学院,辽宁大连㊀116620)摘㊀要:为了解决Zynq-7000在无操作系统情况下ProcessingSystem部分开发困难的问题,研究并给出了An⁃droid操作系统在Zynq-7000AllProgrammableSoC平台上移植的具体方法㊂通过安装交叉编译器㊁移植Boot⁃Loader引导程序㊁配置和编译Linux内核㊁编译Android源码㊁生成Android文件系统和镜像文件等步骤,完成了Android系统的移植工作㊂将Android系统在Zynq-7000平台启动所需要的文件拷贝到SD卡中并进行系统启动,实验结果表明Android系统移植成功,这可以使得Zynq-7000平台的开发与使用更加广泛㊂关键词:Zynq平台;操作系统移植;Android;全可编程SoC中图分类号:TP316㊀㊀文献标识码:A㊀㊀doi:10.3969/j.issn.1672-4305.2019.06.011TransplantationofAndroidoperatingsystembasedonZynqplatformWANGJie,LENGWei,HOUGang(SchoolofSoftwareTechnology,DalianUniversityofTechnology,Dalian116620,China)Abstract:InordertosolvetheproblemthattheZynq-7000isdifficulttodevelopintheProcessingSystemwithoutoperatingsystem,thespecificmethodofportingtheAndroidoperatingsystemontheZynq-7000AllProgrammableSoCplatformisstudied.ThemigrationoftheAndroidsystemiscomple⁃tedbyinstallingthecrosscompiler,portingtheBootLoader,configuringandcompilingtheLinuxker⁃nel,compilingtheAndroidsourcecode,generatingtheAndroidfilesystemandimagefiles.ThefilesneededtostarttheAndroidsystemontheZynq-7000platformarecopiedtotheSDcardandthesys⁃temisstarted.TheexperimentalresultsshowthattheAndroidsystemissuccessfullytransplanted,whichmakesthedevelopmentanduseoftheZynq-7000platformmoreextensive.Keywords:Zynq;operatingsystemtransplant;Android;AllProgrammableSoC㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀基金项目:国家自然科学基金(项目编号:61472100);中央高校基本科研业务费资助(项目编号:DUT17JC26)㊂通讯作者:候刚(1982-),男,辽宁沈阳人,博士,讲师,主要研究方向为模型检测㊁形式化方法㊂㊀㊀随着科技的进步和各个领域应用需求的多样化,嵌入式设计技术和芯片技术经历了一次又一次的革新㊂Xilinx公司推出的全球第一个可扩展处理平台Zynq系列打破了传统嵌入式处理器的性能瓶颈[1-2]㊂Zynq将处理器与FPGA整合在一起,实现了全可编程SoC,其在机器学习㊁图像处理㊁汽车电子等领域都有广泛应用[3]㊂本文致力于研究Android嵌入式操作系统在Zynq-7000开发平台上的实现㊂通过在Zynq-7000开发平台上移植操作系统来屏蔽底层的硬件,提供一个统一的编程接口,使得高级语言程序员不需要学习Zynq-7000开发平台以及Xilinx开发工具也能够很好地开发可以在Zynq-7000开发平台上正确运行的软件,这使得Zynq-7000平台的应用与开发更加广泛㊂1㊀硬件平台环境ZynqAPSoC平台是由ARM+FPGA组成的,其体系结构如图1所示㊂其中ARM部分在Zynq中被称为ProcessingSystem(PS),处理器为双核的Cor⁃texTM-A9,而FPGA部分在Zynq中被称为Program⁃王洁,等:基于Zynq平台的Android操作系统移植mableLogic(PL),其资源和结构与Xilinx的7系列FPGA一样㊂图1㊀Zynq-7000体系结构图2㊀Android简介Android是Google公司和OpenHandsetAlliance(开放手机联盟)为移动设备开发的一个操作系统㊂Android是基于Linux内核的㊁开源的操作系统,其包括了操作系统㊁用户界面和应用程序三大部分㊂Android系统除了被应用于智能手机㊁平板电脑外,也可应用于数字电视[4]㊁数码相机[5]㊁探测器[6]㊁医疗设备[7]等电子设备中㊂Android是开源的意味着降低了手机软件的开发成本和手机的价位,因此Android操作系统受到了各大手机厂商和消费者的青睐㊂同时由于第三方恶意软件的出现,Android系统的安全问题也成为了研究的热点[8-10]㊂3㊀Android操作系统移植在这一节中将介绍如何在Zynq-7000平台上搭建Android操作系统㊂本节分为七个部分来详细叙述Android在Zynq-7000平台上的移植过程:An⁃droid移植环境搭建㊁BootLoader移植㊁Linux内核配置和编译㊁编译设备树㊁构建Android用户空间㊁ram⁃disk修改和制作startup.sh文件㊂3.1㊀Android系统移植环境搭建Android操作系统移植环境搭建是在Linux系统下进行的,本文使用的是Ubuntu14.4㊂需要安装交叉编译器,在Xilinx官网上下载并安装xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,并通过exportCROSS_COMPILE=arm-xilin1x-linux-gnuea⁃bi和exportPATH=/<myPath>/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin:ƔPATH两条语句导入环境变量㊂由于Android上层代码是用JAVA编写的,所以在移植Android时还需要JAVA的开发环境,本文安装的是JDK6㊂这样Android移植需要的环境就搭建完成了㊂3.2㊀BootLoader移植u-boot是当前比较流行并被广泛采用的一款Bootloader㊂可以从https://github.com/Xilinx/u-boot-xlnx下载最新版本的u-boot源码㊂在使用交叉编译器编译u-boot之前,首先要通过执行makeZynq_zed_config命令对源码进行配置,使之能够生成支持XilinxBSP的可执行文件㊂然后编译u-boot,将会在该路径的目录下生成一个名为u-boot.elf的文件,该文件用于生成BOOT.BIN启动文件㊂3.3㊀Linux内核配置和编译本文使用的是3.3版本的Linux内核,由digi⁃lent维护㊂源码可以从https://github.com/Digi⁃lent/linux-3.3-digilent.git下载㊂通过执行makeARCH=armdigilent_zed_defconfig命令对Linux内核源码进行配置,使其能够支持Xilinx的BSP与驱动㊂通过执行makemenuconfig命令启动图形配置界面来启用Linux内核中关于Android系统的功能㊂图形界面如图2所示,选择DeviceDrivers项,回车,进入设备驱动配置界面,选择Stagingdrivers项,按 Y ,使该功能可用,然后回车,进入平台驱动配置界面㊂在平台驱动配置界面中选择Android项,回车,进入Android操作系统驱动配置界面,通过按 Y 允许Android下的所有功能,然后保存退出㊂至14此,内核配置完成,通过make命令编译内核,生成的内核镜像文件zImage在arch/arm/boot/目录下㊂图2㊀Linux内核配置界面3.4㊀编译设备树可以在内核目录的scripts/dtc路径下找到设备树编译器㊂需要注意的是内核在编译时需要配置为打开设备树编译器㊂Zynq的默认设备树源文件digilent-zed.dts在arch/arm/boot/dts目录下㊂在编译设备树源文件之前,要对Zynq的设备树进行如下修改:bootargs="console=ttyPS0,115200root=/dev/ramrwinitrd=0x800000,8Mearlyprintkrootfstype=ext4rootwaitdevt⁃mpfs.mount=0";然后利用设备树编译器生成devicetree.dtb文件㊂3.5㊀构建Android用户空间首先借助repo工具下载得到Android系统源码,然后切换到Android系统源码目录下对Android源码进行编译㊂在编译后的Android系统源码目录下,新建一个名为Makefile.Zynq的文件,将如下内容写入到文件中:OUT_DIR:=out/target/product/genericROOT_IMG:=root.imgROOTFS:=rootfsROOT_DIRS=lib/modulestmpmediaPHONY:dummyƔ(ROOT_IMG):dummyrm-rfƔ@sudorm-rfƔ(ROOTFS)cp-rƔ(OUT_DIR)/rootƔ(ROOTFS)cp-rƔ(OUT_DIR)/systemƔ(ROOTFS)cdƔ(ROOTFS)&&mkdir-pƔ(ROOT_DIRS)sudochown-Rroot:rootƔ(ROOTFS)sudogenext2fs-dƔ(ROOTFS)-bƔƔ((80∗1024))-m0-NƔƔ((64∗1024))Ɣ(ROOT_IMG)sudochownƔ(shellid-u):Ɣ(shellid-g)Ɣ(ROOT_IMG)#Phonytargetforcestherootfsimagefiletoberebuiltoneachmakedummy:使用make-fMakefile.Zynq命令生成Android文件系统㊂生成的文件名为root.img,文件大小为80M左右㊂3.6㊀ramdisk修改首先通过编译BusyBox㊁编译Dropbear㊁工具链动态库与应用的设置㊁目录的创建与配置和制作ramdisk镜像文件ramdisk8M.image.gz五步完成根文件系统的制作㊂为使Zynq-7000平台在启动时能加载Android系统文件,还需修改ramdisk文件㊂将文件解压并挂载到ramdisk目录下,然后修改ram⁃disk目录下的etc/init.d/rcS文件,将如下内容添加到rcS文件末尾:echo"MountingSDcardto/mnt/sd"mkdir-p/mnt/sdmount/dev/mmcblk0p1/mnt/sdecho"++Startingstartup.shscriptonSDcard"if[-f/mnt/sd/startup.sh];then/mnt/sd/startup.shfi分析上面的内容可以看出:rcS是Linux启动后运行的一个脚本,在rcS文件的最后去执行startup.sh文件,来加载Android系统的相关内容㊂3.7㊀制作startup.sh文件startup.sh文件是用来挂载并配置Android系统㊀王洁,等:基于Zynq平台的Android操作系统移植相关内容的脚本文件,在Linux内核启动后开始执行㊂新建startup.sh文件,将如下内容写入到startup.sh文件:echo"++PreparingforAndroid"mkdir/mnt/rootmount-oloop/mnt/sd/root.img/mnt/root/mount-tprocproc/mnt/root/procmount-tsysfssys/mnt/root/sysmount-ttmpfstmp/mnt/root/datamkdir-p/mnt/root/tmp/sdmount/mnt/sd/mnt/root/tmp/sdecho"++StartingAndroid"chroot/mnt/root/init至此,完成了Android系统在Zynq-7000平台上的移植工作㊂4㊀Android操作系统的板级实现Android系统启动需要BOOT.BIN㊁devicetree.dtb㊁zImage㊁root.img㊁ramdisk8m.image.gz和startup.sh六个文件,将这些文件拷贝到Zynq-7000平台自带的SD卡中㊂4.1㊀Zynq-7000平台的配置Android系统在Zynq-7000平台上启动是从SD卡启动并引导的㊂首先将ZedBoard板卡断电,然后将SD卡从电脑SD卡槽中取出,并将其插入到Zed⁃Board的SD卡槽中㊂修改跳线设置,通过USB电缆将ZedBoard板的J14MiniUSB接口和用于当前设计的计算机的一个USB接口连接㊂通过HDMI转VGA线连接ZedBoard上的HDMI接口和显示器上的VGA接口㊂接着打开串口调试工具,设置参数如下:波特率115200,数据位8,停止位1,无奇偶校验位,无硬件控制流㊂最后打开ZedBoard开发板电源,大约15秒后,可以看到串口调试工具界面上显示操作系统的启动过程㊂4.2㊀Android系统启动结果展示通过HDMI连接显示器,可以看到Android系统启动过程㊂最后在显示器上会显示Android系统启动后的界面,如图3所示㊂测试结果表明移植的Android系统可以稳定的运行㊂5㊀结语本文在Zynq-7000平台上移植了Android操作系统,结果表明所移植的Android系统功能完善㊂通过在Zynq上移植操作系统,可降低PS部分的开发难度,为高级语言程序员在Zynq上的应用开发提图3㊀Android启动界面供便利,使得Zynq-7000开发平台的应用与开发更加广泛㊂参考文献(References):[1]㊀王莹,李健,万翀.引领28nmFPGA 智 造时代[J].电子产品世界,2011,18(12):10-11.[2]㊀王莹.Xilinx可扩展处理平台:ZYNQ嵌入式处理器与FPGA集成的独特创举[J].电子产品世界,2012,19(2):27-32.[3]㊀陆佳华,江舟,马岷.嵌入式系统软硬件协同设计实战指南[M].北京:机械工业出版社,2013.[4]㊀赵爽怡.安卓在新一代数字电视芯片上的移植技术研究[D].武汉:华中科技大学,2013.[5]㊀苏锋.智能相机任重道远 两款安卓系统数码相机使用感受[J].微电脑世界,2013,29(1):126-127.[6]㊀魏爽.基于Android的嵌入式非线性结探测装置研究[D].长春:吉林大学,2015.[7]㊀李晨.基于定制Android平台的呼吸机软件研究与实现[D].南京:东南大学,2016.[8]㊀LiD,BissyandeTF,KleinJ,etal.UnderstandingAndroidAppPiggybacking:ASystematicStudyofMaliciousCodeGrafting[J].IEEETransactionsonInformationForensics&Security,2017,12(6):1269-1284.[9]㊀FarukiP,BharmalA,LaxmiV,etal.AndroidSecurity:ASur⁃veyofIssues,MalwarePenetration,andDefenses[J].IEEECom⁃municationsSurveys&Tutorials,2017,17(2):998-1022.[10]㊀FangZ,HanW,LiY.PermissionbasedAndroidsecurity:Is⁃suesandcountermeasures[J].Computers&Security,2014,43(6):205-218.收稿日期:2018-07-11修改日期:2018-07-25作者简介:王洁(1979-),男,辽宁大连人,博士,副教授,主要研究方向为并行体系结构㊁容错计算㊂34。

zynq7000 linux开发流程

zynq7000 linux开发流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!Zynq7000芯片的Linux开发流程详解Zynq7000系列是Xilinx公司推出的一种基于ARM Cortex-A9双核处理器的可编程系统芯片(System on Chip, SoC),集成了处理系统和可编程逻辑两大部分。

基于ZYNQ-7000嵌入式平台的Flash驱动的设计与实现

49基于ZYNQ-7000嵌入式平台的Flash 驱动的设计与实现张钰尧1,张前1,郭俊麟2(1.中国航空工业集团公司西安航空计算技术研究所,陕西西安710065;2.中国航空工业集团公司陕西千山航空电子有限责任公司,陕西西安710065)摘要:为了实现某项目在天脉1操作系统下的BSP 板级驱动适配,基于ZYNQ-7000平台完成了Flash 基本功能的设计与实现。

本文分析了该项目中在ZYNQ-7000平台上ARM 处理器所采用的SPI Flash 的特性,设计Flash 驱动模型并实现,同时对实现后的Flash 驱动进行了测试。

测试结果表明Flash 基本功能正常,可以支撑项目中文件在线烧写升级的功能。

关键词:ZYNQ-7000;SPI Flash ;QSPI 控制器;天脉1操作系统中图分类号:TP333文献标识码:A 文章编号:1673-1131(2019)04-0049-020引言随着计算机科学领域的发展,互联网技术的成熟,各个领域信息化、网络化的要求日益增高,以前功能单一的设备也在快速的更新,在软硬件上的设计结构更加复杂。

这些市场的发展趋势要求芯片设计厂商在芯片上集成更多的功能,设计师们一方面采用更强大的嵌入式处理器,同时增加功能接口,逐步形成了片上系统(SoC )的概念。

对于软件方面,依赖一个可靠、有效的操作系统,可以增强产品的安全性,保障软件质量。

Zynq-7000[1]SoC 系列集成ARM 处理器的软件可编程性与FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上高度集成CPU 、DSP 、ASSP 以及混合信号功能。

而对于机载嵌入式设备而言,天脉1操作系统具有强实时性、高可靠性和高安全性。

本文采用Zynq-7000平台,基于天脉1操作系统,完成ARM 处理器上Flash 驱动的设计,实现Flash 的基本读、写和擦除功能。

1SPI Flash设备图1SPI Flash 存储结构图Flash 是一种非易失存储器,即即使断电数据也不会丢失。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Zynq-7000的嵌入式Linux移植张朝元;邵高平;汪洋【摘要】针对Zynq-7000平台在无操作系统情况下,开发应用程序需对处理器硬件结构有一定的了解,存在开发难度大的问题.从全可编程器件的角度提出了一种Vivado+ SDK+ Linux的嵌入式系统移植方法.构建了基于Zynq-7000的Linux系统移植环境,生成Linux镜像并进行系统启动.结果表明,该方法提升了系统灵活性,降低了应用开发难度.【期刊名称】《电子科技》【年(卷),期】2018(031)001【总页数】3页(P9-11)【关键词】Zyq-7000;嵌入式Linux;U-boot;全可编程SoC【作者】张朝元;邵高平;汪洋【作者单位】信息工程大学信息系统工程学院,河南郑州450000;信息工程大学信息系统工程学院,河南郑州450000;信息工程大学信息系统工程学院,河南郑州450000【正文语种】中文【中图分类】TP316.81随着全可编程SoC容量和性能的不断提高,全可编程技术在通信、汽车电子、机器学习等领域得到了广泛的应用[1]。

Zynq-7000全可编程SoC以FPGA为基础,将双核的ARM Cortex-A9处理器(Processing System,PS)和可编程逻辑(Programmable Logic,PL)集成在单个芯片中,使得嵌入式系统的设计结构更加灵活,体积显著缩小,系统整体性能明显提高[2-4]。

同时,设计的复杂度也不断提高。

传统的嵌入式Linux系统移植主要是针对SoC产品[5],已经不能够迁移到全可编程SoC上。

本文提出一种基于Zynq-7000的嵌入式Linux系统的移植方法,针对不同的应用,进行灵活的硬件配置和Linux内核裁剪,定制嵌入式系统,提升系统灵活性。

降低在PS部分开发应用的难度。

硬件平台环境如图1所示,平台核心处理器采用Zynq-702全可编程SoC,PS部分的每个Cortex-A9处理器都有一个高性能、低功耗的内核,支持虚拟内存,Linux系统的移植主要围绕这部分展开;内部总线AXI[6]为PS与PL的数据交互提供高速的链路接口;PL部分是Xilinx的7系列FPGA,提供硬件加速和灵活的可扩展的能力[7-8];板卡外围配置DDR3高速缓存、SD卡、Flash存储及串口、JTAG等接口,提升系统整体性能,同时为系统的启动和调试提供硬件接口。

基于SoC的嵌入式Linux系统移植方法是修改和移植Bootloader引导程序(通常是U-boot[9]),编译Linux内核,生成内核镜像,制作文件系统,然后烧写到板子上进行启动。

在Zynq-7000上移植Linux操作系统要相对复杂,图2所示为移植Linux到Zynq-7000的原理框图。

系统硬件设计作为Linux系统运行的基础,主要完成PS部分的硬件配置和针对特定应用的PL逻辑的开发,生成硬件配置bit 文件。

系统软件开发是Linux系统移植的核心,主要完成U-boot、Linux内核、设备树和文件系统的编译,第一阶段启动程序(First Stage Boot Loader,FSBL)的生成,创建启动镜像文件。

PS处理器部分集成的控制器和大量的外设具有硬件可编程特性,移植操作系统或者开发裸跑程序之前,都需在Vivado中对控制器和外设进行选择配置,生成硬件配置bit文件。

图3为PS部分提供的所有IO和存储控制器。

根据Linux启动要求,配置SD卡、Flash,这是系统启动的两种方式;配置串口控制器[10-11](UART),串口是Linux系统在板卡上启动后,用户和平台进行数据交互的通道。

配置外部存储器DDR3,选择和平台上DDR3一致的型号,否则系统将无法正常启动。

这是不针对确定应用的前提下,确保Linux在平台上正常启动的最少配置。

此外,PL可编程逻辑可进行自定义接口开发,满足不同的应用需求。

将生成的硬件bit文件导入到SDK中,在SDK中可根据bit文件自动生成FSBL。

FSBL与Zynq-7000的启动密切相关,系统上电后自动执行片内BootROM中的代码,根据外部启动引脚配置从外部存储器引导FSBL到内存。

FSBL根据硬件配置bit文件对PS部分进行初始化,配置PL逻辑部分,加载第二阶段引导程序(Second Stage Boot Loader,SSBL)或者裸跑程序到内存空间,文中设计为加载U-boot。

因此,FSBL是U-boot的引导程序,U-boot又作为Linux内核的引导程序。

(1)编译U-boot。

U-boot是在操作系统运行之前执行的一小段程序[12]。

其主要任务是将Linux系统和硬件平台衔接在一起,通过初始化硬件设备、建立内存空间映射,建立正确的系统运行环境,引导Linux系统到内存。

本文使用Ubuntu-14.04-i386桌面系统,交叉编译工具是Xilinx网站上提供的gcc,文件名为xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin,U-boot版本为u-boot-v2016.03。

Ubuntu系统下,进入U-boot文件夹,删除和Zynq-7000无关的处理器架构源码和其它开发板源码,输入make CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_702_defconfig命令,生成Makefile文件。

Makefile定义了U-boot和Linux内核的编译规则,执行编译命令CROSS_COMPILE=arm -xilinx-linux-gnueabi-,生成u-boot.elf文件;(2)编译Linux内核。

Linux内核是操作系统的核心,U-boot加载Linux镜像的部分内核到内存后,将控制权交给这部分内核,随后Linux会将剩余的代码加载到内存,并对所有设备进行初始化,建立数据结构,最后内核会启动init进程[13],根据配置文件加载文件系统,完成系统启动。

Linux内核选用Linux-v4.0版本,进入内核目录,在xilinx_zynq_defconfig文件下修改处理器架构ARCH=arm,交叉编译工具改为本文安装的gcc,保留平台上的串口、SD卡、Flash等信息,删除不用的多余接口,使编译的内核更加精炼。

在命令行输入make ARCH=arm CROSS_COMPILE= arm-xilinx-linux-gnueabi- xilinx_zynq_defconfig,生成Makefile文件。

输入make ARCH=arm CROSS_COMPILE =arm-xilinx-linux-gnueabi-命令进行内核编译,生成 Linux内核镜像zImage;(3)建立设备树文件。

设备树文件为U-boot和Linux内核之间提供了一个动态的接口,降低了内核对系统硬件的严重依赖,提高代码的重用率,使内核的设计和编译更为简单。

设备树文件由zynq-7000.dts文件生成。

该文件在SDK中和FSBL一起生成,通过dtc -O dtb -I dts -o devicetree.dtb zynq-7000.dts[14]命令,生成devicetree.dtb;(4)生成文件系统。

文件系统为操作系统提供在储存设备上存储数据的方法。

文件系统采用Xilinx网站上提供的amdisk.image.gz文件,通过mkimage -A arm -T ramdisk -C gzip damdisk.image.gz uramdisk.image.gz命令生成。

通过以上分析,嵌入式Linux系统在Zynq-7000上的启动整个过程是:系统上电后,加载FSBL到内存,完成PS处理器部分的初始化,根据bit文件配置PL逻辑,引导U-boot到内核,U-boot完成硬件初始化,引导Linux内核到内存,通过设备树文件将硬件设备树信息传递给内核,最后把控制权交给Linux系统内核。

Linux系统初始化所有设备,加载文件系统,完成系统启动。

在SDK中选择Xilinx Tools下的Greate Zynq Boot Image工具,如图4所示,依次按顺序添加FSBL、硬件配置bit文件和编译后的U-boot文件u-boot.elf3个文件,完成boot.bin镜像文件的创建。

将生成的BOOT.BIN和编译后的Linux内核zImage、设备树文件devicetree.dtb、文件系统uramdisk.image.gz拷贝到FAT格式的SD卡中,插入到Zynq-7000平台,设置从SD卡方式启动,连接好串口线,设置串口波特率为115 200,上电后在串口终端可以看到Linux系统的启动信息。

为进一步验证系统的正确性和灵活性,如图5所示,在Linux PC机上编译和链接OpenCV库,开发基于OpenCV的图像边缘检测代码,将编译后的可执行代码、源图像和OpenCV库拷贝到SD卡,挂载OpenCV库到Zynq-702平台的Linux 系统/usr/lib目录下,执行检测代码,结果如图6所示。

实验表明,在PS上运行Linux后,对于特定的应用只需专注于C代码的实现和相应的库函数的编译,省去了在无操作系统情况下对硬件板级支持包的理解和修改,降低了二次开发的难度。

此外,PL部分可通过SD卡的灵活插拔实现动态可重构和部分动态可重构,虽然时间较长,但具有较好的灵活性。

本文阐述了在Zynq-7000平台上移植嵌入式Linux系统的方法和实现过程,降低了在PS上开发应用的难度,并以图像边缘检测为例验证系统的正确性。

但所选应用没有用到PL部分,未能体现软硬件协同设计的优势,需进一步验证。

【相关文献】[1] 陆佳华,江舟,马岷.嵌入式系统软硬件协同设计实战指南[M].北京:机械工业出版社,2015.[2] Xilinx Company.Zynq-7000 all programmable SoC technical reference manual[M].San Jose:Xilinx Company,2016.[3] Xilinx Company.Zynq-7000 all programmable SoC overview[M].San Jose:Xilinx Company,2014.[4] 杨晓安.基于Zynq-7000高速图像采集与实时处理系统[J].电子科技,2014,27(7):151-154.[5] 丁鹏仁.基于ZYNQ的软件无线电平台设计与实现[D].北京:北京邮电大学,2015.[6] Crockett L H,Elliot R A,Enderwitz M A,et al.Embedded processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 all programmable SoC[M].UK:Strathclyde Academic Media,2016.[7] 何宾,张艳辉.Xilinx Zynq-7000嵌入式系统设计与实现[M].北京:电子工业出版社,2016.[8] 陆启帅,陆彦婷,王地.Xilinx Zynq SoC与嵌入式Linux设计实战指南[M].北京:清华大学出版社,2014.[9] 武杰.基于ARM9的嵌入式Linux移植[J].自动化技术与应用,2014,33(3):38-40.[10] 夏柯.基于ZYNQ-7000 DMA控制器的UART数据传输的设计与实现[J].信息系统工程,2014,9(20):113-114.[11] 党俊博,李哲,李雅俊.基于FPGA的串口通信电路设计与实现[J].电子科技,2016,29(7): 106-110.[12] 金刚,吴军,马鹏,等.嵌入式Linux系统移植中SMP的实现研究[J].信息技术,2016,10(8):93-96.[13] 刘慧双.Linux实时操作系统定制及设备驱动开发[D].武汉:华中科技大学,2013.[14] William E,Shotts Jr.Linux命令行大全[M].郭光伟,郝记生,译.北京:人民邮电出版社,2013.。

相关文档
最新文档