#########################################################################################
. 必須使用su用戶下,才能用jtag下載程序##
#########################################################################################
0.定位目錄
先在shell中找一個準備存放工程的地方,(我的是/media/keith/work),命令行:cd /media/keith/work
1.定位編譯鏈
根據安裝petalinux的路徑:
source /media/keith/work/petalinux/settings.sh
2.創建petalinux工程
在目錄下面,創建一個工程:
petalinux-create --type project --template zynq --name zynq_hb
h1_petalinux_test是工程名,該命令會自動在PRO文件夾裏創建zynq_hb文件夾
3.引用剛纔輸出的硬件描述文件
把之前導出的硬件描述文件system_wrapper.hdf拷貝到虛擬機中的h1_petalinux_test工程文件夾下,然後:
petalinux-config --get-hw-description=/media/keith/work/z7_tmp/bsp
會進入一個配置界面,在裏面我們可以配置一些系統參數,主要的配置包括:啓動方式,啓動存儲器分區表,啓動文件名稱等等,本文暫不對其修改(默認是從SD卡中啓動),然後等待其配置(時間較長),然後就可以輸入petalinux-build來編譯了,是整個工程直接編譯。
4.獲取文件夾權限
在上一步完成後,輸入命令sudo chmod -R 777 /home/hlf獲取文件夾權限(工程文件夾和petalinux的安裝文件夾),否則編譯的時候,會發生錯誤
目前爲止,在shell中的命令既可以以超級用戶su的身份運行也可以以普通用戶的方式運行(建議全部都用普通用戶的方式,免得切換),但是等下編譯u-boot和kernel以及rootfs的時候,必須以普通用戶的身份運行命令行,否則會報錯的
5.編譯u-boot
注意:到此處的時候,不能再用超級用戶了,要切換到普通用戶下,之後的所有操作都在普通用戶下
普通用戶的shell中輸入petalinux-config -c u-boot(依然要事先輸入source /home/hlf/mnt/petalinux/settings.sh命令),然後等待GUI出來,這裏暫時不改動啥,直接save(save爲u-boot.config,名字隨便取但不要留空),然後繼續等(新建工程要等的時間還是比較長的,後來就會好的)
這裏寫圖片描述
6.編譯kernel
命令petalinux-config -c kernel,操作同上(save爲kernel.config)
7.編譯rootfs
命令petalinux-config -c rootfs,操作同上(save爲默認即可)
8.設備樹配置
若要修改,直接在工程文件夾下,Ctr+F搜索.dts就可以找到相關文件,做出相應修改”
暫時默認吧,不修改,按照它自動生成的設備樹
9.編譯工程
輸入命令petalinux-build,等待即可,最後生成的文件在 image/linux下
10.生成BOOT.BIN
把shell定位到image/linux目錄下,執行命令
petalinux-package --boot --format BIN --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot,在文件夾下就可以發現,多了一個BOOT.BIN
11.使用jtag下載鏡像到板子,需先切換到su
petalinux-package --prebuilt --fpga <FPGA bitstream>
petalinux-boot --jtag --prebuilt 3
12.編譯工具鏈,可以獨立編譯應用
petalinux-build -c meta-toolchain
13.添加一個自己的應用
petalinux-create -t apps --template install --name myapp --enable ,編譯完成後
14.配置內核模塊,關閉版本校驗,避免每次都要重新編譯內核模塊
CONFIG_MODULE_FORCE_LOAD:y
CONFIG_MODVERSIONS:n