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平台的不同点相关推荐

  1. ZYNQ LINUX开发笔记——windows下用xilinx SDK编译zynq linux app小程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ LINUX开发笔记--windows下用xilinx SDK编译zynq linux app小程序 前言 操作方法 总结 前 ...

  2. ZYNQ LINUX开发笔记——内存直接访问

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ LINUX开发笔记--内存直接访问 LINUX 脚本方式 C APP模式 LINUX 脚本方式 写内存: devmem 0x ...

  3. linux编译x86和arm平台的x264

    摘抄网址:http://blog.csdn.net/baliguan163/article/details/11773363 参考网址:http://blog.csdn.net/evsqiezi/ar ...

  4. zynq linux开发环境,手记1:构建Zynq开发环境

    Created Tuesday 05 March 2013 一.ISE 配置步骤 1. 将电脑配置为双系统:windows7 + Ubuntu 12.04.02并下载ISE14.4 开发包.##这一步 ...

  5. 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发

    针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...

  6. Linux项目设计:基于ARM平台的停车场管理系统制作教程

    文章目录 一.功能要求 二.项目笔记 (一)网络问题:Ubuntu同时与开发板.WiFi连接 (二)图片文字识别 (三)文字转语音 (四)摄像头拍摄 化作尘其它开源项目: 单片机项目: Linux项目 ...

  7. 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF

    支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...

  8. 嵌入式Linux开发-6818开发板使用流程

    1. linux 运行c文件 先在window下编译C文件 在虚拟机共享此文件 在linux运行终端 cd /路径 gcc test.c -o 2 ./2 注:TAB键和空格的区别,空格在不同编译软件 ...

  9. 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 ...

最新文章

  1. python画图-python画图汇总(持续更新)
  2. 区块链之智能合约入门
  3. Extjs tree树的生成
  4. Service Mesh 落地挑战
  5. 为何电脑html无法删除,电脑文件无法删除该怎么办?几种解决方法介绍
  6. webloigc12服务启动不了_weblogic启动不能锁定AdminServer.lok的故障处理
  7. RESTful API 特点
  8. html5 css3 javascript从入门到精通,HTML5+CSS3+JavaScript从入门到精通(微课精编版)
  9. 社交网络影响力最大化基础知识总结
  10. mysql character_set_client 设置_关于MySQL如何修改character_set_client的编码问题
  11. EBS INV:单位
  12. 程序员python表白代码
  13. fastjson autoType is not support
  14. UI自动化平台(一)
  15. 霜冻前夜介绍 BBeat 演出播放器
  16. 阿里RocketMq试用记录+简单的Spring集成
  17. Gen2-UHF-RFID-Reader学习(二)全局变量
  18. hbuilder开发uniapp配置安卓模拟器
  19. java逆向反汇编工具_java反编译工具(XJad)v2.2
  20. 详解虚拟产品落地实操

热门文章

  1. mac 同步 linux文件夹在哪里,mac软件文件夹在哪里
  2. 多线程锁的升级原理是什么?
  3. 树状下拉combotree的动态加载
  4. 解决vue2.x在ie浏览器打开空白问题
  5. 二、SQL注入使用占位符解决、JDBC工具类、封装
  6. 阿里云ET2016年末的迁徙和演进
  7. 到底是学历重要还是能力重要
  8. 修改wrf下垫面数据
  9. 因电脑故障导致PPT内容消失问题解决
  10. autojs截图并发送邮件