DE10_Standard開發板的學習過程(更改設備樹)

1、下載鏡像

鏡像可以去友晶官網下載鏡像下載地址,有兩個鏡像,一個是lxde一個是console控制檯的,兩個的Linux內核都是4.5的。這個去github上面下載,網址如下https://github.com/terasic/linux-socfpga選擇Branch: socfpga-4.5
以後如果自己的需要添加自己的驅動,可以重新編譯上面的內核就好,內核的編譯可以按照rocketboard官網來做,官網是默認用他們的配置來編譯,你可以根據自己的需求來編譯。

2、設備樹和preloader等改動

在光盤下面有一個工程,/Demonstration/SoC_FPGA/DE10_Standard_GHRD,下面的這個soc_system_board_info.xml,hps_common_board_info.xml刪掉,然後這個工程Demonstration/SoC_FPGA/ControlPanel/Quartus下面拷貝soc_system_board_info.xml,hps_common_board_info.xml他們去替換。因爲鏡像系統是基於這個工程Demonstration/SoC_FPGA/ControlPanel/Quartus來做的。
可以好好看這個文檔DE10-Standard_User_manual.pdf,裏面有一些細節需要注意一下。上面都弄好之後就可以開始按下面的步驟來做了。

//1、cd到編譯好的工程目錄下,我是用windows編譯,然後拷貝到Linux上面去的。
//2、然後替換好上面提到這兩文件soc_system_board_info.xml,hps_common_board_info.xml
//如下流程
~/intelFPGA/16.1/embedded/embedded_command_shell.sh
cd output_files
//這一步按照比較重要,bitstream_compression=on這個參數一定要添加,要不然
//出現altera loaded:failed with error code -4
/home/you/intelFPGA/16.1/quartus/bin/quartus_cpf -c DE10_Standard_GHRD.sof -o bitstream_compression=on soc_system.rbf
cd ..
bsp-editor & //默認按照rocketboard官網就好
cd software/spl_bsp/
make
cd ../../
//這一步當中是soc_system.dtb而不是socfpga.dtb因爲,我沒有改動u-boot.scr所以也默認用這個soc_system.dtb名字
sopc2dts --input soc_system.sopcinfo --output soc_system.dtb --type dtb --board soc_system_board_info.xml --board hps_common_board_info.xml --bridge-removal all --clocks
//產生頭文件.h
 sopc-create-header-files soc_system.sopcinfo 

//上面步驟完成以後
把soc_system.dtb soc_system.rbf preloader-mkpimage.bin 拷貝到sd卡的相應分區就好
sudo dd if=preloader-mkpimage.bin of=/dev/sdb3 bs=64k seek=0

3、製作鏡像可能常用的指令

//.sopcinfo文件生成dts文件
 sopc2dts --input soc_system.sopcinfo --output new_soc_system.dts --board soc_system_board_info.xml --board hps_common_board_info.xml
//.sopcinfo文件生成dtb文件
sopc2dts --input soc_system.sopcinfo --output soc_system.dtb --type dtb --board soc_system_board_info.xml --board hps_common_board_info.xml --bridge-removal all --clocks
//用dts文件生成dtb
 dtc -I dts -O dtb -o socfpga.dtb new_soc_system.dts //dts to dtb
 //用dtb文件生成dts
 dtc -I dtb -O dts -o soc_system.dts soc_system.dtb  //dtb dts
 
  • 1、查看.img鏡像文件的內容
    可以參考這個鏈接linux系統中如何打開察看img文件內容
    在這裏插入圖片描述

  • 2、製作.img鏡像
    可以參考這個鏈接Altera FPGA SoC搭建步驟這個鏈接中可以知道如何編譯文件系統還有Linux內核,還有u-boot等,但是好像現在altera的鏡像都用Linux Angstrom管理文件系統。
    分區3是A2類型的分區是無文件系統分區
    在這裏插入圖片描述

製作完成之後用如下命令讓它生效

//讓它生效
sudo partprobe /dev/loopX
// 格式化分區1,成爲FAT文件系統:
sudo mkfs –t vfat /dev/loopXp1
//格式化分區2,成爲ext4文件系統: 
sudo mkfs.ext4 /dev/loopXp2
//preloader寫入分區3:
sudo dd if=software/spl_bsp/preloader-mkpimage.bin of=/dev/loopXp3 bs=64k seek=0
// 掛載分區1(FAT文件系統),並將拷入之前生成的"u-boot.img", "u-boot.scr"和FPGA的燒寫文件"soc_system.rbf".
mkdir temp_mount
sudo mount /dev/loopXp1 ./temp_mount
sudo cp software/u-boot-socfpga/u-boot.img software/u-boot.scr soc_system.dtb soc_system.rbf temp_mount
sync
sudo umount temp_mount

關於loop設備的掛載和卸載

//可以使是.iso或是.img文件
sudo mount   -t   xxxx.iso   -o   loop   /dev/loop0   //loop設備路徑
//查看loop設備
losetup -a
//卸載loop設備
losetup -d /dev/loop1
  • 3、製作鏡像,根據rocket官網步驟來走
sudo ~/make_sdimage.py  \
  -f \
  -P preloader-mkpimage.bin,u-boot-cyclone5.img,num=3,format=raw,size=10M,type=A2  \
  -P rootfs/*,num=2,format=ext3,size=1500M  \
  -P zImage,u-boot.scr,soc_system.rbf,socfpga.dtb,num=1,format=vfat,size=500M  \
  -s 2G  \
  -n sd_card_image_cyclone5.img

總結

如果qsys的東西沒有改變,那麼只要更新.rbf文件就可以。

問題

1、自己的寫的ip核掛載在qsys中的總線上面,在生成設備樹的時候,出現unkown現象沒有解決。
2、QSYS中自己添加官網的一些IP,生成設備樹的時候,出現not support也沒有解決

上面的問題歸根就是不會改動soc_system_board_info.xml,hps_common_board_info.xml這個兩個文件,有哪位網友會改動的可以下面留言一下,嘻嘻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章