TMS320F28035学习记录五

IQMath lib的使用

参考手册《IQmath_Quickstart.pdf》 版本V1.6.0

存放路径:C:\ti\controlSUITE\libs\math\IQmath\v160\doc

1.TMS320F28035是TI公司推出的32位定点DSP芯片,其硬件本身不支持浮点数运算,在用C语言编程时用到的浮点运算是在软件层面上完成的,并非TMS320F28035具备浮点运算能力。用C语言编程在软件上实现浮点数运算将增加代码量和程序运行时间。IQmath是一种采用定点运算,但具有浮点数据处理特性的计算方法,并且IQmath还具有丰富的函数库。

优点就是处理速度快,代码量低。缺点就是十进制浮点数转化为二进制时可能会存在误差。

4.IQ格式由整数部分(I),小数部分(Q)和一位符号位构成。所以I+Q=31位。当Q值确定后,所有参加运算的IQ数据精度是一致的,同时数据的动态范围也被确定了。具体的Q值对应的精度和数据范围可以查表。

5.IQmath应用的简单归纳:

1)Q值定标:根据要求的误差和数据范围,选择一个Q值。

2)浮点数转换为IQ数据格式。

3)将IQ数据转换为浮点数。

6.IQmath.lib用于定点芯片。IQmath_f32.lib用于浮点芯片。

7.CMD文件配置的一些建议:

输出段“IQmathTables”,含有的一些函数是已经被烧录到BOOTROM区域,所以必须被设置成“NOLOAD”类型,在 BOOTROM区域查表,而不需要载入其他区域。

输出段“IQmathTablesRam”含有的函数,需要时可以载入,某些芯片也将这些函数烧录到BOOTROM区域,看直接查表。

8.工程中配置IQmath.lib库文件

1).与加入c文件的方法类似,只要知道路径并且添加即可

2).需要在c文件中包含  #include "IQmathLib.h"

3).配置.CMD文件。

9.IQmath使用须知

1. 在IQmathLib.h里,根据需要修改Q格式,范围是 Q1 to Q30 (P30)

//        30 <= GLOBAL_Q <=  1

//

#ifndef   GLOBAL_Q

#define   GLOBAL_Q       24

#endif

IQmathLib.h里默认是Q24格式

Q格式的取值范围与精度在手册的10页有说明

10.使用IQmath的过程

1)所有参与运算的数据,必须转化为Q格式,比如

#define  PI  3.1415926535898

_iq  input  = _IQ(PI); //将PI转化为Q格式

2)转化为Q格式后,所有数据参与计算,必须使用IQ库函数计算

3)实现Q格式转换为浮点数

float _IQtoF( _iq A)

11.

时间: 2024-10-08 23:02:07

TMS320F28035学习记录五的相关文章

Linux 学习记录 五(软件的安装升级)

一.gcc gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接. gcc -c hello.c 编译产生目标文件hello.o gcc -O hello.c 编译产生目标文件,并进行优化 gcc -o hello hello.c 生成hello这个可执行的二进制文件 缺点:命令的冗余性,如果 C 语言程序中包含对其他函数或者程序的引用,那么其他程序也要编译成目标文件,然后一起编译成可执行文件,才能运行成功.一个大的程序引用是非常多的,所以用gcc来编译,显得很冗余. 二.mak

Ansible学习记录五:PlayBook学习

0.介绍 Playbooks 是 Ansible 管理配置.部署应用和编排的语言,可以使用 Playbooks 来描述你想在远程主机执行的策略或者执行的一组步骤过程等 类似于一组任务集,定义好像项目,组织结构,配置文件等信息,通过task将所要做的事情一步一步的组织在一起就是完整的Playbook 官方Demo资料:https://github.com/ansible/ansible-examples Playbooks是采用YMAL语言结构,基础语法请参考:http://docs.ansibl

产品需求文档的学习记录(五)

在产品和技术领域里都有UML的技能知识,而对于产品人员的UML则更多的是指用例图,也就是我所称呼的用户流程图.在讲PRD文档写作的第二篇文章里,我提到了用户流程图的制作,实际上用户流程图是我在产品规则的初期对用例图的一种结构化的表达方式,由于以结构化的方式描述用例太抽象,缺少逻辑性表达,并且那篇文章更偏向于功能性用户流程,还不是实际意义上的用例,因此今天我补文一篇,细讲一下UML用例图和用例文档. 用例文档是由多个用例组成的一份文档,主要用于技术开发与测试使用,他是PRD中的重要辅助文档,用于讲

TMS320F28035学习记录二

1.TI处理器命名规则 TMS代表合格产品:TMX代表实验产品:TMP代表模型产品. 320 代表DSP产品系列:430 代表单片机产品系列: 470 代表ARM产品系列. F 代表内部存储器为Flash:C 代表内部存储器为ROM. 28035 代表产品型号. 2.CCS5的标准C文件以及TI自己扩展的一些头文件在C:/ti/ccsv5/tools/compiler/c2000_6.1.0/include.C2x系列的DSP都要用到这个包含文件. 3.现在C2000系列的库的开发版本有V121

TMS320F28035学习记录三

1.调用TI的官方延时函数DELAY_US()的步骤,在DSP2803x_Examples.h头文件中. 使用TI定义的DELAY_US()函数步骤: 1). 工程添加 DSP2803x_usDelay.asm文件 2).声明extern Uint16 RamfuncsLoadSize,(RamfuncsRunStart RamfuncsLoadStart在DSP2803x_GlobalPrototypes.h已声明) 3). 使用 memcpy(&RamfuncsRunStart, &R

Oracle学习记录 五 Centos6.4 64bit下安装oracle

错误记录: Invalid source path '../stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles' specified for unzip. 这个错误应该是我只解压了第一个压缩包,没有解压第二个. 2. 还有一个问题就是按照开始安装的时候,说什么color的问题,这个我在网上看了些,不过,我直接把系统登出一次,重新用oracle登录就没事了. 3. [INS-32021] Insufficient disk space on thi

TMS320F28035学习记录六

1.TMS320F28035的引脚绝对不能输入5V的电压,当引脚内部上拉或下拉时,会产生100uA的电流,这个参数在低功耗设计中会很有用,说明上拉下拉设置是不好随便来的.所有具有输出功能的引脚,其输出缓冲器驱动能力的典型值是4mA,这样是比51或M3内核的控制器的引脚驱动能力弱很多的. 2.TMS320F28035工作电压分为两部分:3.3V的Flash电压和1.8V的内核电压. 3.在AD采样过程中,当AD采样端口悬空时,采集进来的值是随机值,所以没有用到的AD端口建议接地. 4.影响ADC采

loadrunner学习记录五

1.HTTP的GET请求 这里以访问百度为例,地址http://www.baidu.com/s?wd=mobile,表示在百度上搜索mobile.具体脚本如下(有注释) Lr script代码   Action() { int status; lr_start_transaction("send"); web_reg_find("Search=Body",//这里说明在Body的范围内查找 "SaveCount=ret_Count",//这里表示

Spring学习记录(五)---bean的作用域scope

作用域:singleton:单例,整个应用中只创建一个实例(默认) prototype:原型,每次注入时都新建一个实例 session:会话,每个会话创建一个实例 request:请求,每个请求创建一个实例 默认情况下,bean都是单例的,在下面这样时初始化,调用各个bean的构造函数 1 <bean id="person" class="com.guigu.spring.autowire.Person" 2 p:name="Tom" &g