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明确说明是执行文件格式错误
- 可能是交叉编译的时候交叉编译工具选择不符合原因。

猜你喜欢

转载自blog.csdn.net/lovexlsforever/article/details/82767980
今日推荐