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.pswp.cn/news/696974.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696974.shtml
英文地址,請注明出處:http://en.pswp.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…

unity小工具-非實時的值變化監聽器

項目里有代碼專門監聽網絡環境的變化&#xff0c;特別是在下載中&#xff0c;如果遇到斷網或者切換為移動網絡&#xff0c;可能需要觸發提醒等等。這種需求可能是通用的&#xff0c;于是便寫了一個通用的監聽代碼。是 using System; using System.Collections; using System.C…

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…

【OpenAI官方課程】第五課:ChatGPT文本轉換Transforming

歡迎來到ChatGPT 開發人員提示工程課程&#xff08;ChatGPT Prompt Engineering for Developers&#xff09;&#xff01;本課程將教您如何通過OpenAI API有效地利用大型語言模型&#xff08;LLM&#xff09;來創建強大的應用程序。 本課程由OpenAI 的Isa Fulford和 DeepLearn…

緩存篇—緩存雪崩

什么是緩存雪崩 通常我們為了保證緩存中的數據與數據庫中的數據一致性&#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。實際上前文書也有提到…

c# HttpCookie操作,建立cookie工具類

HttpCookie 是一個在.NET Framework中用于管理和操作HTTP Cookie的類。它提供了一種方便的方式來創建、設置、讀取和刪除Cookie。 Cookie是一種在客戶端和服務器之間傳遞數據的機制&#xff0c;用于跟蹤用戶的會話狀態和存儲用戶相關的信息。它通常由服務器發送給客戶端&#…

萬字干貨-京東零售數據資產能力升級與實踐

開篇 京東自營和商家自運營模式&#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應用方式…

【C語言】sizeof()函數

前言 sizeof函數用于獲取數據類型或變量在內存中所占的字節數。 sizeof函數返回的是編譯時確定的值&#xff0c;不會計算動態分配的內存大小。 sizeof函數可以用于多種類型的數據&#xff0c;包括數組、指針、結構體、枚舉等。 1.數組 int arr[5];printf("%zu ", siz…

文件上傳與下載

文件上傳與下載 1. 文件上傳 為了能上傳文件&#xff0c;必須將表單的 method 設置為 POST&#xff0c;并將 enctype 設置為 multipart/form-data 。 有兩種實現文件上傳的方式&#xff1a; 底層使用 Apache Commons FileUpload 包 底層使用 Servlet 3.1 內置的文件上傳功能…

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

生成文件hash值的用途 哈希值&#xff0c;即HASH值&#xff0c;是通過對文件內容進行加密運算得到的一組二進制值&#xff0c;主要用途是用于文件校驗或簽名。正是因為這樣的特點&#xff0c;它常常用來判斷兩個文件是否相同。 比如&#xff0c;從網絡上下載某個文件&#xff0…