包含在引导ROM中的定点数学表与函数由被称为虚拟浮点引擎的TI C28x IQMath库使用。这个28x IQ-Math库是一个高度优化与高精密的数学函数集合,这些函数用于C/C++编程者将浮点算法无缝移植到TMS320C28x器件的定点代码。
这些程序通常用于具有大量高速高精度计算的实时应用系统。使用这些程序可以比用标准ANSIC语言实现更快的程序代码。另外,通过这些可以直接调用的高精度函数,TIIQ-math库可以大大缩短DSP软件的开发时间。
IQmath库通过IQmathTables和IQmathTablesRam链接器段访问表。这两类段都完全包含在引导ROM中。如果不希望将已经包含在ROM中的这些表格复制装入到器件,可以使用引导ROM存储器地址并将段标识为“NOLOAD”,如例14-1。这种方法有助于使用查询表格,而不需要实际将段装入目标地址。
例14-1 访问IQ表的链接器命令文件。
使用链接器命令文件的首选替代方法是使用IQmath引导ROM符号库。如果在IQmath库前该库被链接到项目,且使用链接器-priority选项,那么首先使用引导ROM的数学表与IQmath函数。
引导ROM包含如下IQ数学表格:
1)正余弦(Sine/Cosine)表。表长度为1282字,Q格式为Q30,内容为对5/4周期正弦函数的32位采样。它有助于精确正弦波形产生和32位FFT。只需跳过一个数值,也可以用于16位数学运算。
2)规格化的倒数表。表长度为528字,Q格式为Q29,内容为对32位规格化倒数的采样并有饱和限。该表用于牛顿-拉夫逊反算法的初始估计。使用一个更精确的估计收敛更快,从而加快转换速度。(www.daowen.com)
3)规格化的平方根表。表长度为274字,Q格式为Q30,内容为对32位规格化反平方根的采样并有饱和限制。该表用于牛顿-拉夫逊平方根算法的初始估计。使用一个更精确的估计收敛更快,从而加快转换速度。
4)规格化的反正切(Arctan)表。表长度为452字,Q格式为Q30,内容为最优直线拟合的32位二阶系数。该表用于牛顿-拉夫逊反正切迭代算法的初始估计。使用一个更精确的估计收敛更快,从而加快转换速度。
5)圆整与饱和表。表长度为360字,Q格式为Q30,内容为各种Q值的32位圆整与饱和限。
6)指数(Exp)最小值/最大值表。表长度为120字,Q格式为Q1~Q30,内容为每一个Q值的32位最小值/最大值。
7)指数系数表。表长度为20字,Q格式为Q31,内容为用泰勒级数计算exp(x)的32位系数。
8)反正弦/余弦表。表长度为85×16,Q格式为Q29,内容计算公式f(x)=c4∗x^4+c3∗x^3+c2∗x^2+c1∗x+c0的系数表。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。