TI开源“iqmath”(Q格式库)移植
iqmath
本文介绍TI开源“iqmath”(Q格式库)移植。
前面文章介绍过Q格式数据,在没有FPU的MCU或DSP使用非常广泛。但使用起来不太方便,TI开源了其iqmath库,下面介绍将其移植到其它平台。
1.源代码获取
TI在其“MSPM0-SDK”中开源了其iqmath库,因此,需要先下载,安装其SDK,再从其安装目录获取其源代码。
下载地址:
MSPM0-SDK 支持软件 | 德州仪器 TI.com.cn
安装完成后,在安装目录“xxx\ti\mspm0_sdk_1_20_00_05\source\ti”(我下载的SDK是这个版本)下有一个“iqmath”的目录,这里就是我们需要的源代码。
这里剔除一些无用的文件。
1)删除其目录下lib目录及其下所有文件(这里的lib与所用的MCU相关)
2)删除其目录下hwa.h(这个文件与具体的MCU相关)
处理好的文件也可以直接从我的CSDN资源中下载,名称:TI iqmath的源码,网址:https://download.csdn.net/download/propor/88785671
2.参考文档
iqmath使用方法可查阅:
MSPM0 IQMath User’s Guide — IQMath Documentation 1.0 documentation
里面介绍的很详细。
3.移植
这里以移植到ST的cortex-m0平台为例,我这里使用的是ST官方开发环境“STM32CubeIDE",其他开发环境也大同小异。
1)将iqmath目录拷贝到工程目录下。
2)添加头文件路径。
a)"iqmath/include"
b)"iqmath/_IQNfunctions"
c)"/iqmath/support"
3)修改相应头文件
将"support.h"头文件中的“#include <ti/devices/msp/msp.h>”修改为“#include "stm32f1xx_hal.h”(或指定的MCU头文件路径)
4)开发环境配置(不同的开发环境可能有所不同)
右击"iqmath"文件夹,去掉"Exclude resource from build"选项。
4.测试
在"main.c"中添加头文件"#include "IQmathLib.h",在"main"函数中添加:
#include "IQmathLib.h"
int main(void)
{
_iq24 a = 0;
_iq24 b = 0;
_iq24 c = 0;
float d = 0;
a = _IQ24(3.5f);
b = _IQ24(4.2f);
c = _IQ24div(a, b);
d = _IQ24toF(c);
printf("%f\r\n", d);
return 0;
}
验证是否编译成功。
总结,本文介绍了TI开源“iqmath”(Q格式库)移植。
更多推荐
所有评论(0)