读懂 PetaLinux:让 Linux 在 Zynq 上轻松起“跑”(转)
对于Zynq这样一个“ARM+可编程逻辑”异构处理系统我们已经不陌生,其创新性大家也有目共睹。不过想要让更多的应用享受到这一“创新”带来的红利,让其真正“落地”则需要大量系统性的工作,去营造一个完善的生态系统。从之前几篇文章中,我们已经看到Xilinx在这方面做出的努力,特别是不断迭代的先进的硬件开发(Vivado)和软件开发(Xilinx SDK)工具。而在嵌入式开发中,还有一个非常重要的环节需要关注,这就是操作系统。
对于日益智能和复杂的嵌入式系统来说,通过一个嵌入式操作系统来统领软硬件资源的调度和控制是必然之选,如果需要更为全面的功能,开发者就要考虑嵌入式Linux这样体量更“大”更复杂的OS。而面对Zynq这样一个大家都想“尝鲜”的创新硬件处理平台,如果能有一种便捷的方式,让嵌入式Linux在它上面“跑”起来,当然是开发者的福利。

图1,基于Zynq平台的嵌入式系统结构
这样的事儿,Xilinx早已想到并着手布局了,最终呈现在开发者面前的就是Petalinux。PetaLinux是一个工具集,包括了Linux, u-boot的源代码、库,以及Yocto Recipes,可以让客户很方便地配置、Build以及Deploy Linux。PetaLinux支持Zynq UltraScale+ MPSoC、 Zynq-7000全可编程SoC,以及MicroBlaze,可与Xilinx硬件设计工具Vivado协同工作,大大简化了Linux系统的开发。
使用PetaLinux工具,开发人员可以定制u-boot、Linux内核或Linux应用,开发者还可以通过网络或JTAG在随附的全系统仿真器 (QEMU) 或物理硬件上添加新的内核、器件驱动程序、应用和库,以及启动并测试软件协议栈,完成从系统启动到执行的所有操作。在主机端提供的PetaLinux工具包括:
- 命令行接界面
- 应用、器件驱动程序、库生成器以及开发模板
- 可引导的系统镜像生成器
- 调试代理程序
- GCC工具
- 集成的QEMU全系统仿真器
- 自动化工具
- 支持Xilinx系统调试器
图2,Petalinux工具
值得一提的是,为了能够让PetaLinux这一“简便”工具的使用变得更为简便,Avnet在近日举办的MiniZed Speedway培训活动中,专门设置了一个培训模块,从如何安装PetaLinux开始,全方位讲解如何使用PetaLinux在MiniZed板上创建一个嵌入式Linux,并进行应用开发。培训中重点的知识点包括:
- Petalinux概览
- Petalinux设计流程介绍
- Yacto项目概述
- 设备树(Device Tree)基础
- Petalinux用户应用开发
- 定制化Petalinux
这次PetaLinux工具培训相关的实验环节,更突出实操性,学员可以学习到如何使用PetaLinux工具导入自己的FPGA硬件设计,集成用户应用程序,以及配置和定制化Linux。在实验中,还特别通过一个具体的物联网应用范例,指导用户使用范例提供的应用代码通过TE Connectivity的HTU21D I2C传感器获取数据,并将周期性发布的传感器数据利用MQTT协议将其传送至云端。通过实验,学员可以掌握的开发技能包括:
- 工具安装:安装虚拟机-VirtualBox、Ubuntu、Vivado、SDK和Petalinux
- 使用Petalinux创建、配置和创建最小化的Linux
- 使用MiniZed经过Wi-Fi链接至LAN
- 使用Xilinx SDK为MiniZed创建Linux应用
- IoT应用实例:将MQTT集成到一个Linux 应用中
可以说,PetaLinux为Zynq应用开发提供了有力的助推,“读”懂了TA,就可让Zynq去应对更多应用场景的需要,也让更多基于嵌入式 Linux的用户应用在Zynq上畅快地奔跑起来!
http://xilinx.eetrend.com/
读懂 PetaLinux:让 Linux 在 Zynq 上轻松起“跑”(转)的更多相关文章
- 在ZYNQ上裸机跑ARM程序的演示
今天给大家演示如何在ZYNQ上,裸机跑ARM程序,本测试用的是米尔Z-turn Board单板,测试代码用的XILINX官方的C语言测试程序,用于测试挂接在ARM总线上的设备是否正常,并在串口终端打印 ...
- 读懂系统负载(Load Avg)的含义 | Devops
有过运维Linux服务器的选手,想必对于系统平均负载(load averages)参数不会陌生吧,我们可以通过top, htop, uptime这些命令找到它们(如下图),那么我们又改如何理解它们呢, ...
- 一文读懂高性能网络编程中的I/O模型
1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...
- 读懂SAP Leonardo物联网平台
读懂SAP Leonardo物联网平台 https://blog.csdn.net/weixin_42137700/article/details/81903290 本文比较系统.全面地介绍了SAP ...
- 一篇文章,读懂Netty的高性能架构之道
一篇文章,读懂Netty的高性能架构之道 Netty是由JBOSS提供的一个java开源框架,是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架, ...
- 即时通讯新手入门:一文读懂什么是Nginx?它能否实现IM的负载均衡?
本文引用了“蔷薇Nina”的“Nginx 相关介绍(Nginx是什么?能干嘛?)”一文部分内容,感谢作者的无私分享. 1.引言 Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡 ...
- 少啰嗦!一分钟带你读懂Java的NIO和经典IO的区别
1.引言 很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典IO(也就是常说的阻塞式IO)的API时,很快就会发现一个问题:我什么时候应该使用经典IO,什么时候应该使用NIO? 在本 ...
- 一片非常有趣的文章 三分钟读懂TT猫分布式、微服务和集群之路
原文http://www.cnblogs.com/smallSevens/p/7501932.html#3782600 三分钟读懂TT猫分布式.微服务和集群之路 针对新手入门的普及,有过大型网站技 ...
- 每个程序员都可以「懂」一点 Linux
提到 Linux,作为程序员来说一定都不陌生.但如果说到「懂」Linux,可能就没有那么多人有把握了.到底用 Linux 离懂 Linux 有多远?如果决定学习 Linux,应该怎么开始?要学到什么程 ...
随机推荐
- python Django rest-framework 创建序列化工程步骤
11创建项目 2创建应用 3stting添加应用(apps)-添加制定数据库-修改显示汉字(zh-hans)-上海时区(Asia/Shanghai) 4主路由添加子路由 5应用里创建子路由 6创建数据 ...
- 线程安全的"懒汉"单例模式
所谓线程不安全实际上就是一段代码在同一时间被两个线程同时执行,导致运行结果与单个线程运行结果不相同 新建一个单例模式类和一个多线程测试类 public class TestSingleTon impl ...
- 微信小程序中时间转化为时间戳(安卓和苹果兼容性)
在IOS中时间显示NAN,后来才知道是由于安卓和IOS时间解析时间的时间格式不一致: 在安卓机中2018-06-21 16:00:21 IOS识别的格式是 2018/06/21: 所以在处理IOS机器 ...
- Linux audit安全审计工具
/********************************************************************** * Linux audit安全审计工具 * 说明: * ...
- Python之路PythonThread,第三篇,进程3
python3 进程3 管道 在内存中开辟一个管道空间,对多个进程可见. 在通信形式上形成一种约束: linux 文件类型 b c d - ...
- Flask中的route
1. route的定义: 客户端发送请求给web服务器,web服务器再将请求发送给Flask程序实例 程序实例需要知道每个url请求所对应的运行代码是谁.所以程序中必须要创建一个 url 请求地址 到 ...
- SQLI DUMB SERIES-3
less3 输入?id=1' 说明输入的id旁边加了单引号和括号('id'),直接在1后面加入“ ') ”,闭合前面的单引号和括号. 方法同less1相同. 例如:查询PHP版本和数据库名字 ?id= ...
- macbook air 获取root权限
以下内容为转载 原创连接:http://blog.itpub.net/26148431/viewspace-1401745/ 1. 从 Apple 菜单中选取系统偏好设置,从显示菜单中选取用户与群组. ...
- Windows下的matplotlib画图中文显示设置
一.在测试matplotlib时遇到X轴中文字符不显示的问题,参考网上 源代码如下 from matplotlib import pyplot as plt import random import ...
- C++学习(二十二)(C语言部分)之 项目扫雷实例
一.新建项目 二.新建源文件 main.cpp和mining,cpp 三.新建头文件 mining.h 四.图片资源添加 添加完成后会在头文件里面生成一个.h头文件,用来调用资源 打开之后可以看到,对 ...