根據(jù)SOC FPGA之HPS模型設(shè)計(jì)(一),
Quartus工程經(jīng)過全編譯后會(huì)產(chǎn)生Handoff文件夾、SOPCINFO文件、SVD文件
二、生成Preloader鏡像文件
通過信息交換文件Handoff文件生成Preloader,需要用到SOC EDS
Preloader也被稱為spl(Second Program Loader)或u-boot-spl
在SOC EDS安裝目錄下雙擊Embedded_Command_Shell.bat文件啟動(dòng)嵌入式命令Shell窗口,輸入bsp-editor啟動(dòng)BSP編輯器
選擇File->New BSP,選擇工程目錄下的\hps_isw_handoff\soc_system_hps_0子目錄,該目錄包含Qsys產(chǎn)生的xml文件(描述了定制SOC的外設(shè)和DDR設(shè)置)?,點(diǎn)擊OK創(chuàng)建BSP設(shè)置文件setting.bsp以及子目錄\software\spl_bsp,該目錄為Preloader工程目錄
?點(diǎn)擊Generate產(chǎn)生Preloader源代碼及makefile文件,然后退出BSP編譯器,可以查看沈城的.h文件
在Shell窗口進(jìn)入到software\spl_bsp文件夾,輸入make指令進(jìn)行編譯,編譯完成后在spl_bsp\uboot-socfpga\spl文件夾下會(huì)生成Preloader的ELF文件u-bbot-spl和二進(jìn)制文件u-bbot-spl.bin
(也可以輸入make uboot命令,編譯出Preloader.img和U-Boot.img文件)
這里出了點(diǎn)問題,會(huì)提示find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer
解決方法有兩個(gè):
【解決】find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer_0 [main] find 7136 find_falst_cwd_好像不對勁的博客-CSDN博客
win10下解決編譯環(huán)境find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer_find_fast_cwd couldn't compute_清淺灬的博客-CSDN博客?因?yàn)槲已b了多個(gè)版本的Quartus和SOC DES,因此用了第一個(gè),親測有效
之后又出現(xiàn)了一個(gè)問題,在生成preloader報(bào)錯(cuò)Failed to open gdrive/……/uboot-socfpga.tar.gz?
在windows下make 生成 preloader 時(shí)報(bào)錯(cuò) (18.1 版本的SOCEDS) - Doreen的FPGA自留地 - 博客園 (cnblogs.com)
然后又又出現(xiàn)了問題,提示什么make: *** No rule to make target ` ‘, needed by xxx. Stop
這里首先要到Qsys中的HPS組件中取消勾選Use default MPU clock frequency,重新生成Qsys系統(tǒng)
然后在bsp-editor中boot——FAT_SUPPORT——勾選spl.boot、將Advanced——spl?取消勾選
解決完報(bào)錯(cuò)之后再輸入make就直接生成.bin文件了
在spl文件中就可以看到生成的spl文件夾下的u-boot-sol.bin
?將spl下的u-boot-spl.bin文件復(fù)制到spl_bsp下,在Shell中進(jìn)入spl_bsp,輸入mkpimage -hv 0 -o preloader_with_header.img u-boot-spl.bin指令(必須要-hv 0),即可在spl_bsp下產(chǎn)生preloader_with_header.img鏡像文件,鏡像文件可在linux環(huán)境下通過輸入相應(yīng)命令更新到電腦boot SD卡中
?
三、生成設(shè)備樹(Device Tree)
設(shè)備樹是一種有關(guān)硬件系統(tǒng)描述的數(shù)據(jù)結(jié)構(gòu),可以描述整個(gè)系統(tǒng)上掛載了多少種類的硬件。設(shè)備書系統(tǒng)上的硬件信息可以傳遞給linux操作系統(tǒng),就不需要在內(nèi)核Kenel中進(jìn)行大量的編碼。
Qsys產(chǎn)生出FPGA的系統(tǒng)(.sopcinfo)后,通過SOC EDS中的Device Tree產(chǎn)生器生成設(shè)備樹的源文檔(dts),該文檔描述了有關(guān)HPS的外設(shè)以及使用到的FPGA軟核IP和用戶自定義的外設(shè)等信息。
生成設(shè)備樹源文件.dts需要.sopcinfo、hps_clock_info.xml、xxx_board_info.xml文件
Shell窗口進(jìn)入Quartus工程目錄,輸入以下命令產(chǎn)生.dts文件?
sopc2dts --input xxx.sopcinfo --output xxx.dts <--board xxx_board_info.xml -board hps_clock_info.xml -bridge-removal all> //<>為可選項(xiàng)
?.dtb文件是.dts文件經(jīng)Device Tree編譯后生成的二進(jìn)制格式的Device Tree描述,可被Linux內(nèi)核解析。通常在為目標(biāo)板制作NAND、SD卡啟動(dòng)鏡像時(shí),會(huì)為.dtb文件預(yù)留一個(gè)很小的存放區(qū)域(FAT分區(qū)),之后bootloader在引導(dǎo)Kernel過程中會(huì)先讀取該.dtb到內(nèi)存中(如DDR3存儲(chǔ)器)。
在Shell窗口輸入以下命令產(chǎn)生.dtb文件?
dtc -I dts -o dtb -o xxx.dtb xxx.dts
?文章來源:http://www.zghlxwxcb.cn/news/detail-618750.html
此外,由于工程文件夾下有 Makefile,因此可以直接采用 make 命令產(chǎn)生兩個(gè)文件文章來源地址http://www.zghlxwxcb.cn/news/detail-618750.html
make dts
make dtb
到了這里,關(guān)于SOC FPGA之HPS模型設(shè)計(jì)(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!