zynq linux开发与普通ARM平台的不同点
zynq系列 linux开发特点
- 前言
- 平台简介
- 开发方式
- 使用petalinux直接配置
- 使用源码工程传统开发
- 启动linux文件的区别
- 1.patelinux配置开发
- 2.使用源码工程开发
- pinctrl 子系统
- 文章未更新完,持续踩坑中...
前言
笔者之前从事的是imx平台的linux开发,之后工作需求转到Xilinx推出的zynq系列芯片的开发,以下内容是笔者在适用zynq平台中遇到的不同于传统linux开发的内容,期间踩了不少坑,笔者希望能够帮助读者理解zynq的开发,少走弯路。
平台简介
zynq是xilinx推出的一款集成arm核以及fpga可编程逻辑器件的soc芯片,使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点。zynq主要分为两端,首先是pl端,属于像fgpa开发一样的纯逻辑开发。然后是ps端,我把它类比成是单片机的裸机开发,通过操作库函数配置寄存器等,它的优势是可以将pl端当成是外设,pl端写好的东西可以被ps端直接调用。然后ps端是属于arm-A核,是可以跑系统的(linux等)。
开发方式
zynq的linux在开发方式上有两种,一种是全程使用petalinux开发,还有一种是自行选择自己的 uboot、kernel、rootfs、设备树进行开发。
使用petalinux直接配置
使用工具开发可以参考以下的文章:
使用petalinux定制自己的linux
使用petalinux虽然是方便了开发人员的开发,但是,它的编译速度会很慢,因为编译了大量的内容,这个工具可以在软件内定制自己的内核和根文件系统等,省去了自己移植的繁琐步骤。但是我不建议使用这种方式开发,效率比较低。
使用源码工程传统开发
这种方式比较靠近我们传统的linux开发,这种方式需要自行到Xilix下载制作相应的 uboot、kernel、rootfs,使用这种方式开发可以单独操作linux的每个部分,按照自己的开发板进行相应的驱动移植,单独编译出镜像,在进行开发的时候效率会高很多。但是和传统linux开发不同的是,它的编译也是需要借助petalinux工具的,所以说zynq开发时离不开petalinux的。
启动linux文件的区别
相比于常用平台的linux开发,所需要制作的启动文件也是不一样的。常规的启动需要的文件是:Zimage镜像、dtb设备树文件、根文件系统、uboot.bin引导文件。
zynq启动文件类型需要按照开发方式划分:在这里首先建议大家先基本了解一下zynq的启动流程:zynq启动流程分析
1.patelinux配置开发
使用petalinux开发的时候,编译成功后会产生如下两种类型文件:
image.ub 这个文件的本质包括内核镜像、 dtb 以及根文件系统。
BOOT.BIN 文件是 fsbl 镜像、 u-boot 镜像以及 pl 端 bit 文件集合在一起的。
本文件夹中的两个文件是完全由petalinux定制出来的,image.ub文件中集成了一个定制出来
的小文件系统,便于对开发板进行测试。
使用方法:直接将image.ub和BOOT.BIN文件复制到sd卡的fat格式分区后插入开发板
2.使用源码工程开发
源码工程开发,根据uboot等每一个部分的编译都会产生相应的文件,如下:
相比熟悉linux开发的同学已经熟悉其中的三个文件了吧!这里的文件和使用petalinux开发不同的是,使用 .bit .dtb .zimage文件替换了 .ub 文件。其实可以说是吧.ub文件拆解了。这样的话,我们就可以分别调试编译不同的部分了,不用修改一次就把所有部分重新编译,非常耗时间。还有根文件系统,也不需要集成进去了,可以通过制作根文件系统在sd卡的不同分区去挂载,这样就可以使用自己制作的不同的根文件系统啦!
pinctrl 子系统
对于 ZYNQ 来说, 我们使用了 vivado 图形化完成了对 PIN 的配置并在 fsbl 阶段将配置信息写入了硬件寄存器中(具体的过程就不分析了),所以不需要在内核阶段进行配置,对于 ZYNQ 来说,我们可以忽略它!
文章未更新完,持续踩坑中…
zynq linux开发与普通ARM平台的不同点相关推荐
- ZYNQ LINUX开发笔记——windows下用xilinx SDK编译zynq linux app小程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ LINUX开发笔记--windows下用xilinx SDK编译zynq linux app小程序 前言 操作方法 总结 前 ...
- ZYNQ LINUX开发笔记——内存直接访问
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ LINUX开发笔记--内存直接访问 LINUX 脚本方式 C APP模式 LINUX 脚本方式 写内存: devmem 0x ...
- linux编译x86和arm平台的x264
摘抄网址:http://blog.csdn.net/baliguan163/article/details/11773363 参考网址:http://blog.csdn.net/evsqiezi/ar ...
- zynq linux开发环境,手记1:构建Zynq开发环境
Created Tuesday 05 March 2013 一.ISE 配置步骤 1. 将电脑配置为双系统:windows7 + Ubuntu 12.04.02并下载ISE14.4 开发包.##这一步 ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
- Linux项目设计:基于ARM平台的停车场管理系统制作教程
文章目录 一.功能要求 二.项目笔记 (一)网络问题:Ubuntu同时与开发板.WiFi连接 (二)图片文字识别 (三)文字转语音 (四)摄像头拍摄 化作尘其它开源项目: 单片机项目: Linux项目 ...
- 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF
支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...
- 嵌入式Linux开发-6818开发板使用流程
1. linux 运行c文件 先在window下编译C文件 在虚拟机共享此文件 在linux运行终端 cd /路径 gcc test.c -o 2 ./2 注:TAB键和空格的区别,空格在不同编译软件 ...
- LINUX QT移植到ARM (zynq平台 qt5.4.1)
LINUX QT移植到ARM (zynq平台 qt5.4.1) 1.安装tslib 2.安装QT5.4.1 2.1下载QT5.4.1 2.2解压 2.3修改配置文件替换自己的编译器 2.4配置 2.4 ...
最新文章
- python画图-python画图汇总(持续更新)
- 区块链之智能合约入门
- Extjs tree树的生成
- Service Mesh 落地挑战
- 为何电脑html无法删除,电脑文件无法删除该怎么办?几种解决方法介绍
- webloigc12服务启动不了_weblogic启动不能锁定AdminServer.lok的故障处理
- RESTful API 特点
- html5 css3 javascript从入门到精通,HTML5+CSS3+JavaScript从入门到精通(微课精编版)
- 社交网络影响力最大化基础知识总结
- mysql character_set_client 设置_关于MySQL如何修改character_set_client的编码问题
- EBS INV:单位
- 程序员python表白代码
- fastjson autoType is not support
- UI自动化平台(一)
- 霜冻前夜介绍 BBeat 演出播放器
- 阿里RocketMq试用记录+简单的Spring集成
- Gen2-UHF-RFID-Reader学习(二)全局变量
- hbuilder开发uniapp配置安卓模拟器
- java逆向反汇编工具_java反编译工具(XJad)v2.2
- 详解虚拟产品落地实操