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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux第62步_备份移植好的所有的文件和文件夹

1、备份“my-tfa”目录下所有的文件和文件夹 1)、打开终端 输入“ls回车”&#xff0c;列出当前目录下所有的文件和文件夹 输入“cd linux回车”&#xff0c;切换“linux”目录下 输入“ls回车”&#xff0c;列出当前目录下所有的文件和文件夹 输入“cd atk-mp1/回车”&am…

Java设计模式-结构型-适配器模式

Java设计模式-结构型-适配器模式 本文我们简单说下设计模式中的适配器模式。 一、概述 ​ 与电源适配器相似&#xff0c;在适配器模式中引入了一个被称为适配器(Adapter)的包装类&#xff0c;而它所包装的对象称为适配者(Adaptee)&#xff0c;即被适配的类。适配器的实现就是…

短剧小程序系统,重塑视频观看体验的科技革命

随着科技的飞速发展&#xff0c;人们对于数字化内容的消费需求也在不断增长。在这个大背景下&#xff0c;短剧小程序作为一种新型的视频观看方式&#xff0c;正逐渐受到大众的青睐。本文将探讨短剧小程序的发展背景、特点以及市场前景&#xff0c;分析其在重塑视频观看体验方面…

WPF 开发调试比较:Visual Studio 原生和Snoop调试控制台

文章目录 前言运行环境简单的WPF代码实现一个简单的ListBoxVisual Studio自带代码调试热重置功能测试实时可视化树查找窗口元素显示属性 Snoop调试使用Snoop简单使用调试控制台元素追踪结构树Visual/可视化结构树Logical/本地代码可视化树AutoMation/自动识别结构树 WPF元素控制…

8个平面设计灵感网站盘点

设计是一件非常令人兴奋的事情。特别是最常见的平面设计&#xff0c;作为一种传达想法或信息的视觉表达形式&#xff0c;被要求不仅突出个性和主题&#xff0c;而且具有创造力和美感&#xff0c;使许多设计师在灵感枯竭时疯狂。此时&#xff0c;浏览一些平面设计网站&#xff0…

Android 仿信号格子强度动画效果实现

效果图 在 Android 中&#xff0c;如果你想要绘制一个圆角矩形并使其居中显示&#xff0c;你可以使用 Canvas 类 drawRoundRect 方法。要使圆角矩形居中&#xff0c;你需要计算矩形的位置&#xff0c;这通常涉及到确定矩形左上角的位置&#xff08;x, y&#xff09;&#xff0…

ES项目应用

配置: ES存储了2-3亿条&#xff0c;几百GB ES集群有5 个节点 2主2副 ES返回数据量窗口大小设置 index.max_result_window 深度翻页 1.from size 方式 2.scroll相当于维护了一份当前索引段的快照信息&#xff0c;这个快照信息是你执行这个scroll查询时的快照。在这个查询后的任…

【Wio Terminal】使用WiFi(1)- 更新无线核心固件

使用WiFi&#xff08;1&#xff09;- 更新无线核心固件 一、概述1、更新无线核心固件步骤 1 - 擦除初始出厂固件步骤 2 - 刷入最新的固件 2、从Arduino IDE检查RTL8720固件版本安装rpcWiFi库验证 3、更新 SAMD ArduinoCore 一、概述 这篇wiki介绍了如何为Wio Terminal上的Real…

11.CSS3的媒介(media)查询

CSS3 的媒介(media)查询 经典真题 如何使用媒体查询实现视口宽度大于 320px 小于 640px 时 div 元素宽度变成 30% 媒体查询 媒体查询英文全称 Media Query&#xff0c;顾名思义就是会查询用户所使用的媒体或者媒介。 在现在&#xff0c;网页的浏览终端是越来越多了。用户可…

基于java springboot+mybatis爱游旅行平台前台+后台设计实现

基于java springbootmybatis爱游旅行平台前台后台设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 可定制系统 欢迎点赞 收藏…

Http改为Https后该如何测试

需要了解Http和Http之间的关系&#xff0c;他们之间都有哪些优点&#xff0c;哪些缺点&#xff0c;如果使用的产品进行了更改&#xff0c;该如何进行测试等等&#xff0c;Https提供了一个安全层&#xff08;SSL/TLS&#xff09;&#xff0c;这个安全层在客户端和服务器之间提供…

羊大师解读,春季牧场产出的羊奶更好吗?

羊大师解读&#xff0c;春季牧场产出的羊奶更好吗&#xff1f; 由于春季牧场上的牧草新鲜嫩绿且富含各种营养成分&#xff0c;例如蛋白质、维生素和矿物质等&#xff0c;所以春季产出的羊奶可能更加优质。这些营养物质为羊奶提供了丰富的营养来源&#xff0c;使得春季牧场产出…

flutter开发实战-StreamBuilder使用介绍及实例

flutter开发实战-StreamBuilder使用介绍及实例 StreamBuilder是一个Widget&#xff0c;它依赖Stream来做异步数据获取刷新widget。 一、Stream Stream是一种用于异步处理数据流的机制&#xff0c;它允许我们从一段发射一个事件&#xff0c;从另外一段去监听事件的变化.Strea…

HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输&#xff0c;所以安全上存在以下三个风险: 窃听风险&#xff0c;比如通信链路上可以获取通信内容&#xff0c;用户号容易没。篡改风险&#xff0c;比如…

Vue 图片轮播第三方库 介绍

Vue图片轮播是一种在网页上以自动或手动方式展示图片的组件&#xff0c;常用于产品展示、网站banner等场景。有许多第三方库可以帮助Vue开发者轻松实现图片轮播功能。以下是一些流行的Vue图片轮播第三方库的介绍&#xff1a; 1. Vue-awesome-swiper - **简介**&#xff1a;V…

Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用

Lison <dreamlison163.com>, v1.0.0, 2023.10.20 Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用 文章目录 Spring Cloud Alibaba-05-Gateway网关-03-过滤器(Filter)使用过滤器的简介什么是过滤器&#xff1f;过滤器的生命周期过滤器的分类和作用范围 局部…

从 Elasticsearch 到 Apache Doris,统一日志检索与报表分析,360 企业安全浏览器的数据架构升级实践

导读&#xff1a;随着 360 企业安全浏览器用户规模的不断扩张&#xff0c;浏览器短时间内会产生大量的日志数据。为了提供更好的日志数据服务&#xff0c;360 企业安全浏览器设计了统一运维管理平台&#xff0c;并引入 Apache Doris 替代了 Elasticsearch&#xff0c;实现日志检…

HarmonyOS4.0系统性深入开发36 媒体查询(mediaquery)

媒体查询&#xff08;mediaquery&#xff09; 概述 媒体查询作为响应式设计的核心&#xff0c;在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景&#xff1a; 针对设备和应用的属性信息&#xff08;比如显…

Prometheus+Grafana 监控

第1章Prometheus 入门 Prometheus 受启发于 Google 的 Brogmon 监控系统&#xff08;相似的 Kubernetes 是从 Google的 Brog 系统演变而来&#xff09;&#xff0c;从 2012 年开始由前 Google 工程师在 Soundcloud 以开源软件的形式进行研发&#xff0c;并且于 2015 年早期对外…

【FPGA】VHDL:小型出勤系统设计

附源代码&#xff0c;一定能实现&#xff01; 目录 EDA设计练习题&#xff1a; 实验要求如下&#xff1a; 思路分析&#xff1a; 代码 99进制计数器 码转换 顶层文件 特别注意 测试 编译通过 结果展示 RTL视图 技术映射视图 软件&#xff1a;Quartus II 13.0 (64…