zynq linux开发与普通ARM平台的不同点

前言

笔者之前从事的是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 来说,我们可以忽略它!

文章未更新完,持续踩坑中…

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值