STC32F中的硬件浮点库

STC32F 硬件浮点运算

01 件浮点库


一、前言

  在新版的STC32F系列的单片机中, 包含有很多新的特性。  其中一个就是内部具有硬件浮点运算器, 以及相应的三角函数相关的数学库。 `这些功能将会扩展它在电机控制等、 信号处理等领域的应用。   下面通过资质的测试电路板来对比一下它的硬件运行速度。

GM1687333612_1280_800.MPG|_-4

二、测试结果

  首先, 利用STC-ISP软件中的资料下载中, 将STC32F的单精度浮点库下载到当前工程目录下。  然后, 在source Group中通过增加存在文件, 将浮点库增加到当前工程文件中。  这是对比测试程序,  利用 P1.0 端口显示中间程序所执行需要的时间。  中间包括有浮点数的一些组合运算和常见到的三角函数的运算。  运算时间可以通过测量 P1.0 信号高电平来获得。

GM1687330916_1280_800.MPG|_-6
  首先看一下在没有加入浮点库的情况下, 程序执行时间。  使用示波器光标测量功能, 可以测量这一段运算时间大约为 229 微秒。  下面我们再加入硬件浮点运算库, 可以看到运算时间明显减小了。  为了精确测量时间, 将示波器的时间拉长, 再次利用光标测量脉冲时间,  可以看到此时运行时间只有 16.2微秒。 经过对比, 可以发现利用单精度浮点库程序运行速度提高了 14 倍。 上面时间测量是在 IRC 时钟频率 60MHz 情况下测量得到的结果。

GM1687332446_1280_800.MPG|_-8

  这里单独对比一下浮点数的运算速度,  这里为了避免 C 语言编译器将这里的运算给优化掉, 增加了一个循环变量 Count, 利用示波器光标测量, 可以看到在没有增加浮点库的情况下, 浮点数的除法和加法消耗了16.5微秒。  利用浮点库之后, 同样的运算消耗的时间为 2.85微秒, 速度提高了大约 6 倍。 由此可见, STC32F的浮点库对于三角函数的加速更加明显。

GM1687334247_1280_800.MPG|_-4

  论 ※


  文测试了 STC32F 单片机中的硬件浮点运算器和三角函数运算器的功能。 利用下载的浮点运算库, 可以直接将C251编译器中浮点运算进行提速。  通过对比可以看到整体的速度提高还是非常明显。

GM1687334422_1280_800.MPG|_-2


猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/131327772