DE10_Standard開發板的學習過程(更改裝置數)
阿新 • • 發佈:2018-12-12
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
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
-
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
問題
1、自己的寫的ip核掛載在qsys中的總線上面,在生成裝置樹的時候,出現unkown現象沒有解決。 2、QSYS中自己新增官網的一些IP,生成裝置樹的時候,出現not support也沒有解決
上面的問題歸根就是不會改動soc_system_board_info.xml,hps_common_board_info.xml
這個兩個檔案,有哪位網友會改動的可以下面留言一下,嘻嘻。