TMS320F28377D库函数操作(FPU移植与简单使用)

1.前言

CLA,IQMath我们都已经移植过了,一些复杂函数如FFT也都测试成功了,下面我们就移植FPU库了。

2.移植

我们需要的文件也都在官方SDK下,路径是这个:

C2000Ware_5_01_00_00\libraries\dsp\FPU\c28

TMS320F28377D库函数操作(FPU移植与简单使用)_第1张图片

我们需要的文件是lib与include这两个文件夹

lib文件夹如下

TMS320F28377D库函数操作(FPU移植与简单使用)_第2张图片

include文件夹如下

TMS320F28377D库函数操作(FPU移植与简单使用)_第3张图片

这里注意一下,28377是不支持64位fpu的所以我们要移植的是32位的

TMS320F28377D库函数操作(FPU移植与简单使用)_第4张图片

 32位文件夹如下图所示

TMS320F28377D库函数操作(FPU移植与简单使用)_第5张图片

我们需要将所有文件都拷贝到工程里,最后结果如下图所示

TMS320F28377D库函数操作(FPU移植与简单使用)_第6张图片

关于lib文件的问题和IQMath一样,因为我的输出文件是eabi文件,所以选择eabi,大家启用合适的文件即可。

同样的cmd文件我们也需要修改,没有限制,只是内存即可。

3.使用

在使用前我们需要先确定用哪些函数,因为头文件众多,功能也多,建议大家结合官方例程看看自己需要的文件在哪个头文件下,这里我们测试向量计算方面的函数,就加入vector文件,前面我正在测试fpu的fft所以还加入了cfft文件,大家可以自行添加。

下面我介绍使用fpu计算复数点乘法。

首先是定义,这里不是c语言中常见类型,是由TI自己定义的类型complex_float

x,y是输入z是输出,这是一个结构体类型。一个结构体包含两个float类型,TI对其进行了打包,我们申请的1,2,3其实是几个结构体,比如这里我是申请了一个结构体因此是1,如果大家需要可以一次申请多个。

下面是计算,函数是:mpy_SP_CSxCS()。用起来和普通的乘法没啥区别两个输入,一个输出

TMS320F28377D库函数操作(FPU移植与简单使用)_第7张图片

我们来测试一下。

TMS320F28377D库函数操作(FPU移植与简单使用)_第8张图片

TMS320F28377D库函数操作(FPU移植与简单使用)_第9张图片

可以看到,结果误差很小,没问题。

4.结语

至此FPU,CLA,IQMath我们都已经移植好了,比较强悍的库都已经移植成功,我个人对FPU的使用依然在探索中,如有不足也请多多指教,美中不足的是28377没有CLB模块,相较于28379还是拓展性会稍微差一点。28377单核的内容基本使用完了,下面就是双核的使用了,后续我还会继续出教程的,敬请期待。

你可能感兴趣的:(TMS320F28377,dsp开发)