广告

【博客大赛】【小梅哥FPGA】闹心的gcc-linaro-arm-linux-gnueabihf编译器——Floating ...

2018-5-27 22:03 2919 5 7 分类: FPGA/CPLD 文集: FPGA深入学习
  今天在继续编写示波器(just for fun)工程,该工程的波形显示和处理界面是在Linux系统上编写程序实现的。应用程序的编写是使用的17.1版本的Quartus软件配套的DS-5软件中自带的arm-linux-gnueabihf工具链,在软件安装目录下(D:\intelFPGA\17.1\embedded\ds-5\sw\gcc)有一个说明文件,说明该编译器的版本为2014.04版本,是4.8.3的版本。而Linux内核是在Ubuntu中编译的,在Ubuntu中使用的编译器版本号为4.7.3。
   为什么要用4.7.3呢?其实在这之前我也安装过4.8.2的编译器,编译器使用的是大名鼎鼎的linaro编译器,但是编译的时候一直通不过,一直提示什么您的编译器太bug了。报错原文如下:
error: #error Your compiler is too buggy
   在网上查阅相关信息得知这个问题是4.8.0到4.8.2版本的编译器有bug造成的,而我从launchpad网站下载的编译器最新的是2013.10版本,该版本还是是4.8.2的,所以没法解决这个问题。(忍不住吐槽下,网站更新这么不及时)。所以当时为了急于看到结果,就用了一个之前下载的用过没问题的4.7.3版本的编译器。
 
   使用4.7.3版本编译出来的内核,运行DS5中4.8.3编译的应用程序,之前写的程序一切都好,只是今天因为需要,所以有一个计算,是根据采样率计算每个栅格代表的刻度。其计算公式为:
gird_time = x/sample_rate = 1*10^11 / sample_rate;
    在没加这个计算公式之前,一切都还好,一旦加入这个计算,就开始报Floating Point Exception的错误了。
 
    所以,要解决这个问题,只能统一编译器版本。(原谅我小白,在Ubuntu中和DS5中各用了一个编译器,没有像专业人士一样完全在Ubuntu中开发)。那么具体用哪个呢,我还是想尽量用最新的版本,所以选择将Ubuntu中的编译器也更新到4.8.3。前面说了,launchpad网站上是没有4.8.3的版本的,最新的都是有bug的4.8.2。因此决定去linaro官网看看,结果也很不幸,官网上最旧的都是4.9-2016.02了。

 
    不敢贸然用这个版本,折腾出问题来了,耽误的是自己时间,所以就百度一下,然后就在CSDN上找到了对应的gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar,下载下来之后,解压到Ubuntu中,设置好环境变量并更新,然后编译内核,将编译得到的zImage文件更新到DE1-SOC开发板的SD卡中,再次启动,然后运行之前报错的程序,就正常工作了,再也没有报错。
    下面附一张做的示波器界面,目前仅仅是把大致界面和波形显示做出来了,测量功能还没做,下一步就是加入测量功能了。网上常见的开源示波器都是使用的软件方式完成各项参数的测量的,但是咱这是基于SOC FPGA架构的示波器,使用FPGA来完成频率,相位,峰值,幅值,时间的测量不仅更高效,也会更精准,所以下一步就是编写Verilog代码来完成上述参数的测量了。
 
    只是个玩具,高手勿喷,桌面太乱,凑合着看吧。
2018年5月27日星期日
武汉 光谷

广告

文章评论 4条评论)

登录后参与讨论

JackElvis 2018-9-17 20:02

我刚开始学FPGA ,我也有这个想法用de1的板子做一个示波器,可是我技术太low啊。
小梅哥以后可都跟着你混了。

wfengyin 2018-5-31 16:43

厉害了,小梅哥!我辈之学习榜样

CHENXIU 2018-5-30 16:59

看了你的学习经历深感佩服,想想职业经历感到非常惭愧,大学毕业进入国企开始混日子,曾经也有电子梦,但是。。。。。还是让生活和岁月给磨灭了!!

qwqr3231 2018-5-28 11:20

谢谢分享
相关推荐阅读
小梅哥 2018-05-09 22:37
【博客大赛】【小梅哥FPGA】Cyclone V SoC 中为HPS添加SPI控制器并使用 ... ... ... ...
    关于如何在Cyclone V SoC FPGA系统中为HPS添加一个SPI外设,这个实验我已经进行了有相当长的一段时间了,但直到今日方才有所突破,顺利的完成了SPI控制器的...
小梅哥 2018-05-04 11:49
【博客大赛】【小梅哥FPGA】Altera SOC更改Qsys后重新生成hps_0.h文件 ...
在Altera SoC的开发中,Qsys系统和Linux应用程序之间通过一个名为hps_0.h的文件交互硬件信息,例如总线上添加了哪些外设,每个外设相对于HPS外部总线的偏移地址,每个外设所占的地址空...
小梅哥 2018-05-04 11:44
【博客大赛】【小梅哥FPGA】Quartus II中使用脚本转换sof到rbf文件 ... ...
        rbf文件作为Altera的FPGA一种常见的配置数据格式,常用于使用其他主控主动配置FPGA时使用,例如PS模式。在Cyclone V SoC...
小梅哥 2018-05-04 11:36
【博客大赛】【小梅哥FPGA】使用DS-5编写和调试SoC的Linux应用程序 ...
对于Intel Cyclone V SoC FPGA用户,如果仅仅开发应用程序,也可以在 Windows 环境下完成。Intel针对其自家的SoC FPGA芯片提供了定制的DS-5软件,该软件为A...
小梅哥 2018-05-03 22:11
【博客大赛】使用MATLAB一键制作mif文件
        这里讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理...
我要评论
4
5
广告