ARRIA10學習之(4)

上一章的問題解決

ARRIA10學習之(3)linux啓動失敗的問題,現在已經解決了這個問題,過程大概這樣。
因爲我在ubuntu安裝的quatusii ,我是直接用用命令運行

$ ~/intelFPGA//quartus/bin/quartus_cpf -c \
  ~/cv_soc_devkit_ghrd/output_files/soc_system.sof  \
  ~/cv_soc_devkit_ghrd/output_files/soc_system.rbf 

這可能是因爲quatusii的License沒有識別到原因吧,因爲我每次打開quartusii的時候,它會叫我輸入License,所以可能是這個原因。還有一個地方就是運行的命令時的目錄路徑不對。

$ ~/intelFPGA/[acds_version]/embedded/embedded_command_shell.sh
//下面的目錄應該是在工程的目錄運行的,boot.script 也應該放在工程的目錄下面。
$ mkimage  -A arm -O linux -T script -C none -a 0 -e 0 -n "My script" -d boot.script u-boot.scr 
//雖然mkimage是在其他的目錄下面,但是我認爲在其他目錄下運行也應該可以。

就上面的地方改動以後,重新走遍就可以啓動了,上一章中的那個unkonwn應該沒有影響。
mkimage命令
這裏寫圖片描述

但是現在新的問題又來了

  • 1、不知在哪裏找到地址,就是基地址,比如FPGA端的LED地址。
  • 2、對於mmap和munmap、open等函數不熟悉,這個學習一下就好了應該。

自己編譯C代碼的經過

找到一個demo,然後進入其中修改一下自己的main函數和其他函數,然後就可以make了,因爲demo目錄下面他們已經提供了makefile,而且他們在makefile中也定義好了CROSS_COMPILEE工具,前提你在終端下面要可以識別到交叉工具才能這樣用啊。
還有就是你embedded_command_shell.sh 記得打開,不然找不到很多頭文件。
makefile中定義好了交叉工具
這裏寫圖片描述
make的過程
這裏寫圖片描述

編譯不能執行

對於linux下cannot execute binary file: Exec format error明確說明是執行文件格式錯誤
- 可能是交叉編譯的時候交叉編譯工具選擇不符合原因。

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