1. 程式人生 > >lulugay的部落格閱讀指南

lulugay的部落格閱讀指南

歡迎大家就本部落格內容與我聯絡[email protected]
17年開始接觸FPGA和ZYNQ,在學習ZYNQ和相關工具的過程中遇到過很多坑,最大的問題是沒有找到一套完整,成系列的教程可以讓我一步一步做下來。
工程性質的知識(區別於理論)大概分成兩部分,一部分是概念,一部分是操作。有些東西你從原理上能想通它是怎麼做的,但是沒親自動手做過,一旦說起細節就可能發現自己的概念並不健全。有些東西你照著別人的實驗做過,但是不清楚為什麼每一步要這麼做。這兩者雖然說並不要求同步進行,但是兩者進度不能差太多。相信很多同學學習知識的時候都是先找個別人做好的東西一步一步先照著做下來,然後再自己改一些東西。這個時候就要注意去了解概念,如果不清楚概念的話復現一個簡單的工程可能還行,復現一個大的工程可能就不行了。剛接觸ZYNQ的時候曾經嘗試著去復現wiki.xilinx.com上的一些Target Reference Design,但是那個時候對概念完全沒有理解,所以復現起來每一步都要花很久,遇到bug也不知道怎麼debug。如果只有概念沒有操作,那麼這些概念也是無源之水無本之木,沒有進一步的操作也就沒法進一步搭建概念,類似於毛爺爺講的

“通過實踐而發現真理,又通過實踐而證實真理和發展真理.從感性認識而能動地發展到理性認識,又從理性認識而能動地指導革命實踐,改造主觀世界和客觀世界.實踐、認識、再實踐、再認識,這種形式,迴圈往復以至無窮,而實踐和認識之每一迴圈的內容,都比較地進到了高一級的程度.這就是辯證唯物論的全部認識論,這就是辯證唯物論的知行統一觀.”〔毛選1-296〕《毛澤東選集》1卷《實踐論》

開通部落格的目的一方面是記錄自己學習ZYNQ的過程,希望能夠系統地整理下學習ZYNQ相關的內容,給讀者提供足夠多的“操作”作為參考,同時提供一些在網上難以找到的“概念”,比如Linux系統相關的概念網上有很多講解,但是介紹SDSoC,Vivado HLS工具相關的概念就很稀少。另外一方面也是希望提升自己的表達能力和梳理能力,將複雜的東西用淺顯易懂的方式講解出來。

Xilinx現在正在進行二次創業,不再滿足在傳統的IC驗證和通訊市場,力求在更多的領域獲得市場份額。最近Xilinx在力推的兩樣新玩意——SDSoC和PYNQ就是為了實現這個目標。因為這兩個新玩意實在是太新了,所以網上能找到的資料很少,所以結合我學習的經歷,打算以SDSoC為中心介紹基於Xilinx ZYNQ系列晶片的嵌入式系統開發。
暫定有如下幾個系列

  1. SDSoC的軟硬體協同設計流程系列
    1. SDSoC軟硬體協同設計流程系列——1.基於SDSoC的軟硬體協同設計流程簡介
    2. SDSoC軟硬體協同設計流程系列——2.SDSoC使用
    3. SDSoC軟硬體協同設計流程系列——3. SDS pragma
    4. SDSoC軟硬體協同設計流程系列——4.搭建SDSoC Platform
    5. SDSoC軟硬體協同設計流程系列——4.zcu102搭建帶xfce4桌面的SDSoC Platform
    6. SDSoC軟硬體協同設計流程系列——5.ultra96搭建支援PYNQ框架的SDSoC Platform
    7. SDSoC軟硬體協同設計流程系列——6.SDSoC+xfOpenCV+OpenCV顏色識別

本系列前四篇文章主要是對Xilinx文件進行整理和翻譯,其中第三篇介紹SDS Pragma結合了我的一些理解,力求介紹這些Pragma相關的“概念”。但是做完本系列前4篇文章用SDSoC也只能是跑一個demo,比如說用命令列輸入一些指令,然後返回一些log,離實現一個完整的系統還差很多。因此本系列從第五篇文章開始將介紹一些官方文件中沒有的案例,使用SDSoC進行一些完整系統的開發。
實現完整的系統,只依賴SDSoC工具是遠遠不夠的,還涉及很多嵌入式Linux相關的知識,於是引出了SDSoC的好幫手——Petalinux。

  1. Petalinux系列
    1. Petalinux系列——1.安裝Petalinux
    2. Petalinux系列——2.建立以及簡單配置Petalinux工程
    3. Petalinux系列——3.使用Petalinux編譯串列埠驅動CP210x
    4. Petalinux系列——4.編寫字元裝置驅動4路PWM控制器
    5. Petalinux系列——5.Linux核心新增USB裝置驅動

第二個系列主要是介紹Petalinux的一些簡單操作,並不涉及Petalinux工具是如何構建的,只是講怎麼用,都是一些小型工程。正好我正在做把VCU整合在PYNQ框架中的工作,就開了第三個系列MPSoC PYNQ框架整合

  1. MPSoC PYNQ框架整合VCU系列
    1. MPSoC PYNQ框架整合VCU——1.VCU在zcu104上執行
    2. MPSoC PYNQ框架整合VCU——2.初識
    3. MPSoC PYNQ框架整合VCU——3.分析gstreamer的recipes

第三個系列嚴格地說屬於Petalinux系列,但是內容比較複雜因此單獨開一個系列。這部分工程我也是在一步一步自己做,做一步更一步。

第四個系列是SDSoC的一個系統級設計案例,使用Ultra96作為大疆機甲大師比賽的主控,包括

  1. 基於Ultra96的DJI戰車主控
    1. 基於Ultra96的DJI戰車主控——1.OpenCV的Profiling
    2. 基於Ultra96的DJI戰車主控——2.OpenCV to xfOpenCV的轉寫
    3. 基於Ultra96的DJI戰車主控——3.主控與下位機通訊

希望我的部落格對你能有所幫助!!!