IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> zynq linux开发与普通ARM平台的不同点 -> 正文阅读

[嵌入式]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 来说,我们可以忽略它!

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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:03:16  更:2021-10-01 17:03:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:52:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码