petalinux_zynq7 驱动DAC以及ADC模块之二:petalinux

petalinux_zynq7 C语言驱动DAC以及ADC模块之一:建立IPicon-default.png?t=N7T8https://blog.csdn.net/qq_27158179/article/details/136234296在上一篇,建立了ADC和DAC两个IP。这里继续。本文在 petalinux默认配置的基础上,添加了python和qt。再编译出sdk可以给x86主机交叉编译。

0. 环境

- ubuntu18
- vivado 2018.3
- mizar z7010 + ada106模块

1. petalinux工程创建

1.1 创建工程

cd /home/dell/work/mizar
source /opt/pkg/petalinux/2018.3/settings.sh
petalinux-create -t project -n linux_sd_adda --template zynq

拷贝 hdf


/home/xxjianvm/work/mizar/linux_sd_hdmi/linux_sd_hdmi.sdk/hdmi_out_wrapper_hw_platform_0/system.hdf
拷贝到
/home/dell/work/mizar7/linux_sd_hdmi/hdf/system.hdf

1.2 用mizar开发板提供的linux内核

准备修改过的linux内核(添加了hdmi)

F:\开发板-FPGA资料、Mizar_Z7010_2018.3\03_Source\03_source.7z
拷贝到
/home/dell/work/mizar/03_source.7z
解压

7z x 03_source.7z
cd 03_source
mkdir -p ../petalinux_kernel/linux-4.14
tar -zvxf linux-4.14.0-v2018.3.tar.gz -C ../petalinux_kernel/linux-4.14

1.3 导入硬件描述配置

配置 Petalinux 工程的硬件信息,硬件信息目录里只能有一个 hdf 文件
cd linux_sd_hdmi导入硬件描述

petalinux-config --get-hw-description hdf/

导入硬件描述后会自动弹出 menuconfig页面。 

检查串口 

Subsystem AUTO Hardware Settings -> Serial Settings -> FSBL Serial stdin/stdout (ps7_uart_1) 
Subsystem AUTO Hardware Settings -> Ethernet Settings -> Primary Ethernet (ps7_ethernet_0)
Subsystem AUTO Hardware Settings -> SD/SDIO Settings -> Primary SD/SDIO (ps7_sd_0)

配置SD卡

Image Packaging Configuration -> Root filesystem type -> SD card
Image Packaging Configuration  -> Device node of SD device -> /dev/mmcblk0p2

启动

Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> boot image settings -> image storage media (primary sd)
Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> u-boot env partition settings -> image storage media (primary sd)
Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> kernel image settings -> image storage media (primary sd)
Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> jffs2 rootfs image settings -> image storage media (manual)
Subsystem AUTO Hardware Settings -> Advanced bootable images storage Settings -> dtb image settings -> image storage media (from boot image)

之后可以临时退出menuconfig页面了。 

1.4 配置petalinux

 第一次配置输入指令

petalinux-config

第二次如果没修改hdf以及相关配置,输入指令

petalinux-config

第二次配置如果修改了hdf

petalinux-build -x mrproper -f
petalinux-config

第二次配置如果修改了配置:

petalinux-build -x distclean
petalinux-build

内核源码

Linux Components Selection -> linux-kernel -> ext-local-src
Linux Components Selection -> linux-kernel -> External linux-kernel local source settings -> /home/dell/work/mizar/petalinux_kernel/linux-4.14

配置 sstate 高速缓存(不是必须的)

petalinux-config -> Yocto Settings -> Local sstate feeds settings -> local sstate feeds url ->-> file:///opt/pkg/petalinux/2018.3/sstate-rel-v2018.3/arm
petalinux-config -> Yocto Settings -> Add pre-mirror url ->-> file:///opt/pkg/petalinux/2018.3/sstate-rel-v2018.3/downloads
petalinux-config -> Yocto Settings -> 取消 Enable Network sstate feeds
petalinux-config -> Yocto Settings -> 取消 Enable BB NO NETWORK                # python的一个库需要联网

此时保存配置退出。

1.5 配置内核

petalinux2018.3默认不支持远程中断配置内核,需要修改:

gedit project-spec/meta-user/conf/petalinuxbsp.conf

添加:

OE_TERMINAL = "xterm"

配置指令:

petalinux-config -c kernel

配置 hdmi

(默认已经勾上)Device Drivers -> Graphics support -> <*>Xilinx LCD/HDMI drive
(默认已经勾上)Device Drivers -> Graphics support -> <*>Digilent VGA/HDMI DRM Encoder Driver
(默认已经勾上)Device Drivers -> Common Clock Framework -> <*>Digilent axi_dynclk Driver 按 y

配置 usb gadget

Device Drivers -> USB Support -> <*>USB Gadget Support -> <*> RNDIS
Device Drivers -> USB Support -> <*>USB Gadget Support -> <*> Mass storage
Device Drivers -> USB Support -> <*>USB Gadget Support -> <*> Function filesystem

1.6 配置根文件系统

petalinux-config -c rootfs


添加 python3

Filesystem Packages -> misc -> python -> python3 -> <*>python3

添加 python3-pip,python3-flask

gedit project-spec/meta-user/recipes-core/images/petalinux-image-full.bbappend

添加:

IMAGE_INSTALL_append = "python3-pip"
IMAGE_INSTALL_append = "python3-flask"

配置

petalinux-config -c rootfs
user packages -> python3-pip
user packages -> python3-flask

也可以(不过我用的是上面的方法,未确认下面的带不带flask):

Petalinux Package Groups -> packagegroup-petalinux-python-modules -> <*>packagegroup-petalinux-python-modules

添加 qt (编译时候看到版本是5.9.6)

Petalinux Package Groups -> packagegroup-petalinux-qt -> <*> packagegroup-petalinux-qt
Petalinux Package Groups -> packagegroup-petalinux-qt -> <*>populate_sdk

添加 gcc (怀疑 libatomic在这里,尝试搭建nodejs + vue依赖libatomic)

Petalinux Package Groups -> packagegroup-petalinux-self-hosted -> <*>packagegroup-petalinux-self-hosted

1.7 设备树

gedit project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi

但是无法粘贴。修改为:

/include/ "system-conf.dtsi"/ {  model = "Navigator Development Board"; compatible = "microphase,zynq-7020","xlnx,zynq-7000"; usb_phy0:usb_phy@0{compatible = "ulpi-phy";#phy-cells = <0>;reg = <0xe0002000 0x1000>;view-port = <0x170>;drv-vbus;};video_timings {timing_4x3_480x272: timing0 {clock-frequency = <9000000>;hactive = <480>;vactive = <272>;hback-porch = <40>;hsync-len = <20>;hfront-porch = <5>;vback-porch = <8>;vsync-len = <3>;vfront-porch = <8>;hsync-active = <0>;vsync-active = <0>;de-active = <1>;pixelclk-active = <0>;};timing_1920x1080: timing1 {clock-frequency = <148500000>;hactive = <1280>;vactive = <720>;hback-porch = <148>;hsync-len = <44>;hfront-porch = <88>;vback-porch = <36>;vsync-len = <5>;vfront-porch = <4>;hsync-active = <0>;vsync-active = <0>;de-active = <1>;pixelclk-active = <1>;};};       
};&usb0{dr_mode = "host";usb-phy = <&usb_phy0>;
};&axi_dynclk_0 {compatible = "digilent,axi-dynclk";clocks = <&clkc 15>;#clock-cells = <0>;
};&v_tc_0 {compatible = "xlnx,v-tc-5.01.a";
};&amba_pl {xlnx_vdma_hdmi {compatible = "xilinx,vdmafb";status = "okay";xlnx,vtc = <&v_tc_0>;clocks = <&axi_dynclk_0>;clock-names = "hdmi_pclk";dmas = <&axi_vdma_0 0>;dma-names = "hdmi_vdma";is-hdmi = <0x1>;display-timings = <&timing_1920x1080>;xlnx,pixel-format = "bgr888";};
};

1.7 编译工程

第一次编译

petalinux-build

如修改配置编译:

petalinux-build -x distclean
petalinux-build

1.8 打包boot.bin

petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --u-boot --fpga --force

1.9 编译出sdk

petalinux-build --sdk
#petalinux-package --sysroot        # 这个是安装指令。

失败
| Cloning into '/home/dell/work/mizar/linux_sd_adda/build/tmp/work/x86_64-nativesdk-petalinux-linux/nativesdk-qemu-xilinx/v2.11.0-xilinx-v2018.3+gitAUTOINC+f70bd86859-r0/git/capstone'...
| fatal: unable to connect to git.qemu.org:
| git.qemu.org[0: 20.218.253.93]: errno=Connection timed out

解决办法:
修改文件:
/home/dell/work/mizar/linux_sd_adda/build/tmp/work/x86_64-nativesdk-petalinux-linux/nativesdk-qemu-xilinx/v2.11.0-xilinx-v2018.3+gitAUTOINC+f70bd86859-r0/git/.git/config

url = git://git.qemu.org/capstone.git 
url = git://git.qemu.org/keycodemapdb.git


修改为: 

url = https://gitlab.com/qemu-project/capstone.git
url = https://gitlab.com/qemu-project/keycodemapdb.git

然后命令行模式进入目录

cd /home/dell/work/mizar/linux_sd_adda/build/tmp/work/x86_64-nativesdk-petalinux-linux/nativesdk-qemu-xilinx/v2.11.0-xilinx-v2018.3+gitAUTOINC+f70bd86859-r0/git

执行命令

git submodule update

之后,重新在工程目录下执行petalinux-build --sdk即可

参考:petalinux2019.1编译sdk失败的解决办法,https://blog.csdn.net/b154265423/article/details/131976182

2. 制作SD卡文件系统

2.1 分区

ubuntu18 -> disks -> 给8GB TF卡重新分区
-> + -> 5000MB -> Next
    -> Volume Name:     FAT
    -> type:            FAT
-> + -> 剩余 2858MB -> Next
    -> Volume Name:     EXT
    -> type:            ext4
-> 弹出TF卡 -> 断开连接 再次连接到虚拟机

2.2 EXT分区

sudo  tar  xzvf  rootfs.tar.gz  -C  /media/xxjianvm/EXT
sudo sync

2.3 FAT分区

直接拷贝
BOOT.bin
image.ub
到FAT分区


2.4 启动测试

2.4.1 启动

拨码开关拨到SD模式。
开关都往下拨。

2.4.2 默认登录账号密码

root/root
 

下篇:

petalinux_zynq7 C语言驱动DAC以及ADC模块之三:C语言API的实现-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_27158179/article/details/136238093

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车智能座舱中 显示屏市场战略趋势分析 中篇

今天主要讲讲主流车厂显示屏的趋势。 主流车厂的中控&液晶仪表屏的尺寸及趋势汇总 奔驰 奔驰A级 10.2510.25 奔驰C级 12.310.25 奔驰GLA 10.2510.25 奔驰E级 12.312.3 奔驰S级 12.312.8 1、奔驰的仪表几乎都为液晶仪表&#xff0c;几乎所有车型都有HUD的选配&#xff…

大功率应用中的厚膜电阻散热器的设计?

在许多大功率应用中&#xff0c;例如电机和电源&#xff0c;电源电阻器位于主电源线中。它们的目的是防止损坏或提供一定程度的控制。 在这些应用中&#xff0c;电阻器承受恒定的、相对较高的电流。当电流流过电阻器时&#xff0c;它会产生热量。这种热能必须消散到环境中&…

1、WEB攻防-通用漏洞SQL注入MYSQL跨库ACCESS偏移

用途&#xff1a;个人学习笔记&#xff0c;欢迎指正&#xff01; 前言&#xff1a; 为了网站和数据库的安全性&#xff0c;MYSQL 内置有 ROOT 最高用户&#xff0c;划分等级&#xff0c;每个用户对应管理一个数据库&#xff0c;这样保证无不关联&#xff0c;从而不会影响到其他…

Autosar-WdgM配置详解-3

1.11生成代码解析 1.11.1MasterSWC代码解析 在MasterSWC的RE_TestRun这个runnable里会调用两个检测点函数,我们可以在两个检测点函数之间,加入我们所需要监控的代码。 Rte_Call_RPort_StartCheckPoint_CheckpointReached(); Rte_Call_RPort_EndCheckPoint_CheckpointReac…

C#串口 Modbus通讯工具类

一、安装Modbus包 二、创建modbushelper类 1、打开串口 public bool IfCOMOpend; //用于实例内的COM口的状态 public SerialPort OpenedCOM;//用于手动输入的COM转成SERIAL PORT /// <summary> /// 打开串口 /// </summary> /// <param name="COMname&quo…

c++服务器开源项目Tinywebserver运行

c服务器开源项目Tinywebserver运行 一、Tinywebserver介绍二、环境搭建三、构建数据库四、编译Tinywebserver五、查看效果 Tinywebserver是github上一个十分优秀的开源项目&#xff0c;帮助初学者学习如何搭建一个服务器。 本文讲述如何在使用mysql跟该项目进行连接并将项目运行…

python 层次分析(AHP)

文章目录 一、算法原理二、案例分析2.1 构建指标层判断矩阵2.2 求各指标权重2.2.1 算术平均法&#xff08;和积法&#xff09;2.2.2 几何平均法&#xff08;方根法&#xff09; 2.3 一致性检验2.3.1 求解最大特征根值2.3.2 求解CI、RI、CR值2.3.3 一致性判断 2.4 分别求解方案层…

利用Ubuntu22.04启动U盘对电脑磁盘进行格式化

概要&#xff1a; 本篇演示利用Ubuntu22.04启动U盘的Try Ubuntu模式对电脑磁盘进行格式化 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 开机按F2进入BIOS 开机按F12进入Boot Manager 2、Ubuntu22.04启动U盘 制作方法参考笔者的文章&#xff1a; Ubuntu制作Ubun…

缓存篇—缓存雪崩

什么是缓存雪崩 通常我们为了保证缓存中的数据与数据库中的数据一致性&#xff0c;会给 Redis 里的数据设置过期时间&#xff0c;当缓存数据过期后&#xff0c;用户访问的数据如果不在缓存里&#xff0c;业务系统需要重新生成缓存&#xff0c;因此就会访问数据库&#xff0c;并…

QEMU源码全解析 —— virtio(22)

接前一篇文章&#xff1a;QEMU源码全解析 —— virtio&#xff08;21&#xff09; 前几回讲解了virtio驱动的加载。本回开始讲解virtio驱动的初始化。 在讲解virtio驱动的初始化之前&#xff0c;先要介绍virtio配置的函数集合变量virtio_pci_config_ops。实际上前文书也有提到…

万字干货-京东零售数据资产能力升级与实践

开篇 京东自营和商家自运营模式&#xff0c;以及伴随的多种运营视角、多种组合计算、多种销售属性等数据维度&#xff0c;相较于行业同等量级&#xff0c;数据处理的难度与复杂度都显著增加。如何从海量的数据模型与数据指标中提升检索数据的效率&#xff0c;降低数据存算的成…

parallels配置centos虚拟环境

parallels Desktop M1/M2芯片Parallels Desktop 19虚拟机安装使用教程&#xff08;超详细&#xff09;-CSDN博客 下镜像记得找和mac芯片匹配的 安装就选第一个centos7不要选第二个 安装有问题就选回退重启 parallel desktop 18/19安装centos7.2009教程_parallels desktop 19…

echarts多y轴样式重叠问题

1、主要属性设置 yAxis: [{//y轴1nameTextStyle: {align: "right",padding: 0}},{//y轴2nameTextStyle: {align: "left",padding: 0}},{//y轴3axisLabel: {margin: 50},nameTextStyle: {align: "left",padding: [0, 0, 0, 50]},axisPointer: {l…

Python Web开发记录 Day2:CSS

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 二、CSS1、CSS-初始入门①快速了解②CSS应用方式…

如何计算文件哈希值(MD5值)

生成文件hash值的用途 哈希值&#xff0c;即HASH值&#xff0c;是通过对文件内容进行加密运算得到的一组二进制值&#xff0c;主要用途是用于文件校验或签名。正是因为这样的特点&#xff0c;它常常用来判断两个文件是否相同。 比如&#xff0c;从网络上下载某个文件&#xff0…

C++ Primer Plus 笔记(持续更新)

编译器的正解 数据&#xff0b;算法程序 赋值从右向左进行 cin&#xff0c;cout的本质也是对象 类和对象的解释

OpenAI文生视频大模型Sora概述

Sora&#xff0c;美国人工智能研究公司OpenAI发布的人工智能文生视频大模型&#xff08;但OpenAI并未单纯将其视为视频模型&#xff0c;而是作为“世界模拟器” &#xff09;&#xff0c;于2024年2月15日&#xff08;美国当地时间&#xff09;正式对外发布。 Sora可以根据用户…

Redis中的AOF重写到底是怎么一回事

首先我们知道AOF和RDB都是Redis持久化的方法。RDB是Redis DB&#xff0c;一种二进制数据格式&#xff0c;这样就是相当于全量保存数据快照了。AOF则是保存命令&#xff0c;然后恢复的时候重放命令。 AOF随着时间推移&#xff0c;会越来越大&#xff0c;因为不断往里追加命令。…

哪些行业适合做小程序?零售电商、餐饮娱乐、旅游酒店、教育生活、医疗保健、金融社交、体育健身、房产汽车、企管等,你的行业在其中么?

引言 在当今数字化时代&#xff0c;小程序成为了各行各业快速发展的数字工具之一。它的轻便、灵活的特性使得小程序在多个行业中找到了广泛的应用。本文将探讨哪些行业适合开发小程序&#xff0c;并介绍各行业中小程序的具体应用。 一、零售和电商 在当今数字化的商业环境中&…

C#之WPF学习之路(2)

目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…