最近學習zynq較多,這裡做乙個筆記,供日後參考使用。zynq是xilinx公司出的一款soc,上面包含有雙核arm9+fpga,arm9可以執行裸機程式或者是linux,fpga可以做一些定製化的硬體開發,比如說10個以上的串列埠等等。
1、開發板
目前學習zynq使用zedboard較多,**上可以購買黑金的版本,只需要使用兩根usb線+乙個電源就可以開始開發和除錯了。當然,如果需要開發網路,還需要一根網線。
2、開發軟體
開發zynq需要安裝vivado。注意在安裝的時候一定要選擇安裝sdk。vivado主要是負責硬體環境的搭建,而sdk主要負責軟體的開發。
3、開發過程
4、除錯方法
目前除錯方法主要是jtag除錯+sdk單步除錯。zedboard有兩根usb線,一根usb負責串列埠列印,另外一根usb負責jtag燒錄。注意,這兩個usb線連線的都是usb2uart晶元,但是是不同廠家的晶元,所以需要安裝不同的驅動。
6、vivado提供了哪些ip core
vivado提供的ip core還是很多的,常見的gpio、uart、dma、fifo、hdmi等都可以輕鬆找到,但是複雜一點的演算法,恐怕就需要自己寫了。zynq上面使用的是axi匯流排,最後將ip core bind到匯流排、分配乙個位址空間就可以了。如果是定製的ip,那麼後期就需要綜合、實現、構建bitfile了。
vivado提供了很多程式,不管是fatfs、lwip、rsa這些函式庫,還提供了freertos、peripheral test、bootloader、linux、roofs這些複雜程式的**,大家可以根據自己的實際情況靈活使用。
8、zynq應該怎麼學
市面上關於zynq的中文學習資料還是有一些的,但是還是建議大家多看看英文原版資料、邊看邊練,總能找到辦法解決的。不管是複雜的網路、音效卡、hdmi,還是簡單的gpio、uart,事實上都是前人已經犯過的錯誤,問題不是很大。此外,zynq學習的曲線很高,既要懂硬體、還要精通軟體和fpga,熟悉實時系統、編譯器、鏈結檔案和驅動開發,或許這才是它的有趣之處。
9、zynq的最佳應用場合
個人覺得影象和定製化場景是zynq的最佳戰場。比如如果有乙個場景需要10個串列埠,那麼一般soc是很難滿足的,zynq就不存在這個問題。我們可以自己在fpga實現,此外如果是影象開發,把一些簡單的演算法直接用fpga實現,用arm來做排程和開發,其實這也是非常合適的。此外,用zynq學習一下fpga,也是很不錯的,一舉兩得。
軟體隨想錄
最近閱讀了由阮一峰翻譯的,有程式設計師部落酋長之稱的 joel 撰寫的 軟體隨想錄 精華摘抄如下 就如同所有行業最好的人才一樣,那些優秀的程式設計師是不會出現在招聘市場的。通常優秀的程式設計師在整個職業生涯中,可能會有4次求職。實習生制度創造了輸送優秀人才的管道,但是這個管道比較長,而且一路上損耗很...
專案隨想錄
發現自己不怎麼會起題目了。中午回去還沒走到寢室,就接到劉老師的 說要把程式調通,於是中午吃完飯立馬跑回去,把顯示問題解決了。其實那個無效數字問題是因為在hql語句中使用了cast pw as integer 將字串轉成integer型,可是資料庫中的內容程式設計了字母加數字,自然會轉換失敗了,唉,真...
雜文 隨想錄
這裡是一些隨想。關於名為二氫婦女的使用者本人,希望 ta 能有乙個美好的未來。科學雖然給我們許多驚奇,但也攪壞了我們許多好夢。當登上了月球的那一刻,一切有關月的夢都被現實的蒼涼所破碎了。從那一步邁出起,廣寒宮破碎,輝夜姬亦未曾回到月上,阿爾忒彌斯丟失了金弓與駕月之車,一切有關月的神話於此失去光輝,人...