最新文�? 单片机常用软件架构 一文搞懂单片机软件架构思维 深入剖析单片机软件模块化编程 揭秘单片机寄存器的本质和原理 透彻理解单片机的MemoryMap
原创 : zedboard基于petalinux移植Linux系统及一些应用 历史版本:
上次修改时间:

引用自

原创 : zedboard基于petalinux移植Linux系统及一些应用

zedboard基于petalinux移植Linux系统及一些应用

前言

基于petalinux的Linux移植教程,用到的工具有vivado2019.1,安装了petalinux的Ubuntu系统(本人用的是虚拟机)

1.Linux移植

移植总览

移植Linux时,首先我们需要移植一个boot loader,用于启动Linux内核,boot loader有很多,常用的是U-Boot。Bootloader 是在操作系统运行之前执行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备(对于 ZYNQ 而言,在引导过程中,需要先运行 FSBL 来设置 PS,然后运行 U-Boot 用于加载 Linux 内核映像并引导 Linux)。之后移植Linux kernel,即Linux内核,最后移植一个根文件系统(rootfs),根文件系统内是一些常用的命令和文件。U-Boot、Linux kernel 和 rootfs 这三者一起构成了一个完整的 Linux 系统,一个可以正常使用、功能完善的 Linux 系统。此外还有设备树用于驱动按键、led等外设,不过设备树需要进行相关配置具有对应语法并需要Linux内核驱动。

具体操作

1.1 创建vivado并导出hardware

利用zedboard模板创建工程,然后建立block design添加zynq并选择zedboard的预设(本文以读者有zynq使用经验为前提跳过了一些步骤,详细步骤可在本人主页参照 zynq板zedboard+vitis设计 (一) hello world实验)

 依次进行generate output products、create HDL wrapper以及generate bitstream。最后导出hardware。此时,再工程文件内的.SDK目录下会生成一个hdf文件

 vivado部分操作结束

1.2 建立petaliunx工程并依次配置编译工程

在Linux内建立一个文件夹,然后将.SDK目录(即存放hdf文件的文件夹)导入

 再次新建一个文件夹用于存放petalinux生成的工程

 1)配置petalinux环境变量,注意每次使用之前一定要配置petalinux环境变量

source ~/application/petalinux/settings.sh

2)创建petalinux工程,存放工程的路径下会生成一个文件夹,之后工程生成的文件都存放在此文件夹内,最后一个参数name可以根据需求修改

petalinux-create --type project --template zynq --name zedboard

 

3)先进入新建的工程目录,然后进行工程配置,注意路径的描述要到hdf文件的上一层。然后会自动弹出配置窗口,该界面内只能通过小键盘上的上下左右按键进行选择,按下‘Y’键使能该选项,此时选项前就会出现‘*’,按下‘N’键取消选项,按下‘M’键使选项编译为模块。先通过上下键选择目录,然后通过左右键选择想要进行的操作,然后按回车进行操作。本次实验不需要进行任何配置,全部选择默认即可。双击ESC键退出配置界面。退出之后可以通过petalinux-config命令再次进入配置界面。

cd zedboard
petalinux-config --get-hw-description ~/application/petalinux/hdf/linux.sdk

 这里需要注意的是,在image packaging configuration选项内可以进行根文件系统类型的配置,默认为INITRAMFS,但是INITRAMFS类型每次掉电之后就会失去之前的修改内容,我们可以选择SD card将根文件系统放在SD卡的ext4区

 4)配置Linux kernel,同样会自动弹出配置界面,保持默认,双击ESC键直接退出即可

petalinux-config -c kernel

 5)配置根文件系统,这里可以在petalinux rootfs settings内设置root密码,默认为root,保持默认即可,双击ESC退出

petalinux-config -c rootfs

 6)编译工程

petalinux-build

7)制作BOOT.BIN启动文件,BOOT.BIN是zynq设备的引导格式, 一般包含 fsbl 文件、bitstream 文件和 uboot 文件 

petalinux-package --boot --fsbl --fpga --u-boot --force

 这里有两个warning,主要是我们没有创建tftpboot目录,在第三步对工程进行配置时,有“Copy final images to tftpboot”选项,当在 Ubuntu 的根文件下创建一个名为 tftpboot 的文件夹时,工程生成镜像后会自动将相关文件复制到 /tftpboot 目录中

8)制作SD启动卡,如果在第三步进行配置时,我们选择了SD卡模式,则需要在SD卡内新建一个EXT4分区,本次实验我们选择了默认的模式,因此不需要新建分区,直接将工程路径images/linux文件夹内的BOOT.IN和image.ub两个文件存入SD卡内即可

 

 1.3启动开发板并通过串口连接电脑

将SD卡插入卡发版,跳线选择SD卡启动模式,连接好串口后上电启动

通过串口工具我们可以看见上电启动的一些信息

 启动完成后我们可以输入用户名和密码进行登录,默认用户名和密码都是root

 至此,移植工作结束

0条评�?
全部评论

关于博主

an actually real engineer

通信工程专业毕业,7年开发经验

技术栈:

精通c/c++

精通golang

熟悉常见的脚本,js,lua,python,php

熟悉电路基础,嵌入式,单片机

耕耘领域:

服务端开发

嵌入式开发

git

>

gin接口代码CURD生成工具

sql ddl to struct and markdown,将sql表自动化生成代码内对应的结构体和markdown表格格式,节省宝贵的时间。

输入ddl:
输出代码:

qt .ui文件转css文件

duilib xml 自动生成绑定控件代码

协议调试器

基于lua虚拟机的的协议调试器软件 支持的协议有:

串口

tcp客户端/服务端

udp 组播/udp节点

tcp websocket 客户端/服务端

软件界面

使用例子: 通过脚本来获得接收到的数据并写入文件和展示在界面上

下载地址和源码

duilib版本源码 qt qml版本源码 二进制包

webrtc easy demo

webrtc c++ native 库 demo 实现功能:

基于QT

webrtc摄像头/桌面捕获功能

opengl渲染/多播放窗格管理

janus meeting room

下载地址和源码

源码 二进制包

wifi,蓝牙 - 无线开关

实现功能:

通过wifi/蓝牙实现远程开关电器或者其他电子设备

电路原理图:

实物图:

深度学习验证工具

vtk+pcl 点云编辑工具

实现功能:

1. 点云文件加载显示(.pcd obj stl)

2. 点云重建

3. 点云三角化

4. 点云缩放

下载地址:

源码 二进制包

虚拟示波器

硬件实物图:

实现原理

基本性能

采集频率: 取决于外部adc模块和ebaz4205矿板的以太网接口速率,最高可以达到100M/8 约为12.5MPS

上位机实现功能: 采集,显示波形,存储wave文件。

参数可运行时配置

上位机:

显示缓冲区大小可调

刷新率可调节

触发显示刷新可调节

进程守护工具

基本功能:

1. 守护进程,被守护程序崩溃后自动重启。

2. 进程输出获取,显示在编辑框中。

二进制包

openblt 烧录工具

基本功能:

1. 加载openblt 文件,下载到具有openblt bootloader 运行的单片机中。

二进制包

opencv 功能验证工具(开源项目二次开发)

基本功能:

1. 插件化图像处理流程,支持自定义图像处理流程。 2. 完善的日志和权限管理

二进制包

又一个modbus调试工具

最近混迹物联网企业,发现目前缺少一个简易可用的modbus调试工具,本软件旨在为开发者提供一个简单modbus测试工具。
主打一个代码简单易修改。
特点:

1. 基于QT5

2. 基于libmodbus

3. 三方库完全跨平台,linux/windows。

二进制包

屏幕录制工具

1. 基于QT5

2. 基于ffmpeg

3. 支持自定义录屏

源代码

开源plutosdr 板卡

1. 完全开源

2. 提高固件定制服务

3. 硬件售价450 手焊产量有线

测试数据

内部DDS回环测试

接收测试

外部发送500MHZ FM波形

硬件原理图

matlab测试

2TRX版本

大部分plutosdr应用场景都是讲plutosdr板卡作为射频收发器来使用。
实际上plutosdr板卡本身运行linux 操作系统。是具有一定脱机运算的能力。 对于一些微型频谱检测,简单射频信号收发等应用完全可以将应用层直接实现在板卡上
相较于通过网卡或者USB口传输具有更稳定,带宽更高等优点。
本开源板卡由于了SD卡启动,较原版pluto支持了自定义启动应用的功能。
提供了应用层开发SDK(编译器,buildroot文件系统)。
通过usb连接电脑,经过RNDIS驱动可以近似为通过网卡连接
(支持固件的开发定制)。

二次开发例子

``` all:
arm-linux-gnueabihf-gcc -mfloat-abi=hard --sysroot=/root/v0.32_2trx/buildroot/output/staging -std=gnu99 -g -o pluto_stream ad9361-iiostream.c -lpthread -liio -lm -Wall -Wextra -lrt
clean:
rm pluto_stream

bsdiff算法补丁生成器

1. 官方bsdiff算法例子自带bzip压缩方式

2. 本例子没有压缩,直接生成补丁文件

3. 图形化界面基于DUILIB

二进制文件

版面分析即分析出图片内的具体文件元素,如文档标题,文档内容,文档页码等,本工具基于cnstd模型

Base64 Image

. 闽ICP备19002644号