1. 程式人生 > >DE10_Standard開發板的學習過程(更改裝置數)

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
 
  • 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這個兩個檔案,有哪位網友會改動的可以下面留言一下,嘻嘻。