软件设计部分就是采用DS-5软件来进行软件应用程序的编写,然后将其下载到开发板运行。
系统要求:
DE1-SoC开发板、带Linux系统的可启动的SD卡,USB口(mini转接线)或者网口(路由器),SOC EDS,通用文档编译器,串口终端软件putty。
1、使用 Intel 版的 DS-5 软件编写C程序
2、使用编译器生成可执行文件
3、在DE1-SoC上启动Linux
4、将可执行文件在Linux中执行
具体操作如下:
开始菜单栏打开已安装好的 SoC EDS Command Shell,在命令行后输入eclipse& 后回车可打开DS-5软件
打开后,新建一个C/C++工程
给出项目名
选择GCC4.x编译器——next——finish
新建Source File,编写C程序,此程序是基于Linux系统的应用程序
格式不会自动识别,要加入后缀.c——finish
编写如下C代码
#include <stdio.h>
int main(int argc, char*argv[]) //main函数标准格式
{
printf("hello_fpga");
return 0;
}
注意:编写完成后一定要保存,不然可能出现undefined reference to `main’ 的错误。
保存后即可build project 可编译或选中工程 ctrl+B 编译
如下界面说明编译成功,且生成了hello_fpga可执行程序,此程序即可在开发板上运行。
首先将可执行程序复制到SD卡(I盘),直接在该可执行程序上右键复制即可。
然后将SD卡插入到开发板,电脑连接开发板,并打开putty。
以root用户登录进来,并通过命令cd 和 ls 找到我们放置 hello_fpga的文件路径。
cd / 进入根目录
如下图,找到了hello_fpga 可执行文件
将该可执行文件复制到根目录
f复制文件到根目录
cp xxx /root
复制文件夹到根目录
cp -a xxx /root
此时回到根目录下,可看到我们复制过来的hello_fpga可执行程序
采用命令修改可执行文件的权限
chmod 777 hello_fpga
采用命令运行 可执行文件
./hello_fpga
由下图可看到出现hello_fpga。由于c程序中输出没使用换行,所以看起来不美观,之后可以加入换行符。
到这里,基于DE1-SoC的软件实验(一)——hello_fpga 完成。
出现如下错误应该怎么解决:
- 编写完 c 程序后进行编译,可能出现以下错误
解决方法:
在建立的工程上,右击选择properties—>C/C++Build—>Tool Chain Editor—>Current builder即可。
- 出现 undefined reference to `main’ 的错误
我这里因为main.c处一直有个 * 号,所以是没有保存,将其保存后重新编译即成功(离谱)。
碎碎念:
咱也不知道什么时候一个 “hello_world(hello_fpga)” 也这么难了,一直都没成功运行。
各种DE1-SoC上不能成功运行Linux,然后运行了找不到自己复制到SD卡的可执行文件各种问题,以及可执行文件如何获得。
DE1-SoC的教程给出来的软件实验一步骤真的好多,不仅要写C程序,还要写Makefile,不过最后还是采用了小梅哥的方法,直接写完C程序,编译后将可执行文件直接复制的方法,简单了很多。
昨天跟着学弟学了几个Linux命令,才能正确找到可执行文件,并将其复制到根目录,才能正确运行,多亏学弟,不然一个hello_world想实现都是难上加难,简直是直接放弃了。但是这个成功的话,后面还可以继续尝试的就比较多了,不过我操作或许又要出现各种问题了!!!