求教,rts96没有零序数据rts2800

4122人阅读
rts2800_ml.lib和rts2800.lib对应,rts2800_ml.lib用的是大存储模式,在需要烧写FLASH时必须用这个库.
rts2800.lib:C/C++运行支持库;
rts2800_ml.lib C/C++大内存模式运行支持库.
rts2800_ml.lib中有大量浮点运算处理的函数而rts2800.lib没有
在指针的访问空间上有区别
rts2800.lib中库函数的指针为near,故不能访问3Fxxxx
rts2800_ml.lib可以访问
For C28x these libraries can be built:
&&&&& · rts2800.lib (C/C++ run-time object library)
&&&&& · rts2800_ml.lib (C/C++ large memory model run-time object library)
&&&&& · rts2800_eh.lib (C/C++ run-time object library with exception handling support)
&&&&& · rts2800_ml_eh.lib (C/C++ large memory model run-time object library with exception handling support)
&&&&& · rts2800_fpu32.lib (C/C++ run-time object library for FPU targets)
&&&&& · rts2800_fpu32_eh.lib (C/C++ run-time object library for FPU targets with exception handling support)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21244次
排名:千里之外
原创:16篇
(10)(1)(2)(1)(1)(6)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'DSP芯片的定点运算;最近在对前做的一个DSP项目进行改版,正好借此机;针对TI的TMS320F2812而言,编译器为C;第1章DSP芯片的定点运算;1.数据的溢出:;1&溢出分类:;上溢(overflow):;下溢(underflow);2&溢出的结果:;例:signedint:32767+1=-327;unsignedchar:255+1=0
DSP芯片的定点运算
最近在对前做的一个DSP项目进行改版,正好借此机会把学习的东西总结一番,此总结
针对TI的TMS320F2812而言,编译器为CCS3.1。希望对自己或大家有所帮助。
DSP芯片的定点运算
数据的溢出:
溢出分类:
上溢(overflow):
下溢(underflow)
2&溢出的结果:
例:signed int :32767+1=-32768; -767
unsigned char:255+1=0;
3&为了避免溢出的发生,一般在DSP中可以设置溢出保护功能。当发生溢出时,自动将结果设置为最大值或最小值。
定点处理器对浮点数的处理:
定义变量为浮点型(float,double),用C语言抹平定点处理器和浮点处理
器的区别,但是程序的代码庞大,运算速度也慢。
放大若干倍表示小数。比如要表示精度为0.01的变量,放大100倍去运算,
运算完成后再转化。但是这个做法比较僵硬,如要将上面的变量重新定义成
0.001精度,又需要放大1000倍,且要重新编写整个程序,考虑溢出等问题。
定标法:Q格式:通过假定小数点位于哪一位的右侧,从而确定小数的精度。
Q0:小数点在第0位的后面,即我们一般采用的方法
Q15 小数点在第15位的后面,0~14位都是小数位。
转化公式:Q=(int)(F×pow(2,q))
F=(float)(Q×pow(2,-q))
Q格式的运算
定点加减法:须转换成相同的Q格式才能加减
定点乘法:不同Q格式的数据相乘,相当于Q值相加
定点除法:不同Q格式的数据相除,相当于Q值相减
定点左移:左移相当于Q值增加
定点右移:右移相当于Q减少
Q格式的应用格式
实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。所以要选择
一个适当的定标格式才能更好的处理运算。一般用如下两种方法:
使用时使用适中的定标,既可以表示一定的整数复位也可以表示小数复位,
如对于2812的32位系统,使用Q15格式,可表示-535.
区间内的数据。
全部采用小数,这样因为小数之间相乘永远是小数,永远不会溢出。取一个
极限最大值(最好使用2的n次幂),转换成x/Max的小数(如果Max是取
的2的n次幂,就可以使用移位代替除法)。
Ti的qmath.lib库说明:
见TI的文档C28x IQMath Library (SPRC087a).zip的详细说明。
TI公司给出了一个Q格式的数学库qmath.lib
注意Q格式函数使用的时序和空间要求,尽量避重就轻。
CMD文件的编写
通用目标文件格式(Common Object File Format)是一种流行的二进制可执
行文件格式,二进制可执行文件包括库文件(lib),目标文件(obj)最终可
执行文件(out)。,现今PC机上的Windows95和NT4.0以后的操作系统的
二进制文件格式(PE)就是在COFF格式基础上的进一步扩充。
COFF格式:详细的COFF文件格式包括段头,可执行代码和初始化数据,
可重定位信息,行号入口,符号表,字符串表等,这些属于编写操作系统和编
译器人员关心范畴。而对于C只需要了解定义段和给段分配空间就可以了。
采用COFF更有利于模块化编程,程序员可以自由决定愿意把哪些代码归属
到哪些段,然后加以不同的处理。
Section目标文件中最小单位称为块。一个块就是最终在存储器映象中占据连续空
间的一段代码或数据。
COFF目标文件包含三个默认的块:
.text可执行代码
.data已初始化数据
.bss为未初始化数据保留的空间
汇编器对块的处理
未初始化块
.bss 变量存放空间
.usect 用户自定义的未初始化段
.text 汇编指令代码
.data 常数数据(比如对变量的初始化数据)
.sect 用户自定义的已初始化段
.asect 通.sect,多了绝对地址定位功能,一般不用
3&C语言的段
未初始化块(data)
.bss 存放全局和静态变量
.ebss 长调用的.bss(超过了64K地址限制)
.stack 存放C语言的栈
.sysmem 存放C语言的堆
.esysmem 长调用的.sysmem(超过了64K地址限制)
.text 可执行代码和常数(program)
.switch switch语句产生的常数表格(program/低64K数据空间)
.pinit Tables for global constructors (C++)(program)
.cinit 用来存放对全局和静态变量的初始化常数值(program)
.const 全局和静态的const变量初始化值和字符串常数,(data)
.econst 长.const(可定位到任何地方)(data)
自定义段(C语言)
#pragma DATA_SECTION(函数名或全局变量名,&用户自定义在数据空间的段
#pragma CODE_SECTION(函数名或全局变量名,&用户自定义在程序空间的段
不能在函数体内声明。
必须在定义和使用前声明
#pragma可以阻止对未调用的函数的优化
连接命令文件(CMD)
MEMORY指定存储空间
name 0 [attr]
: origin = constant, length = constant
name n [attr]
: origin = constant, length = constant
PAGE n:标示存储空间,n&255;PAGE 0为程序存储空间;PAGE 1为程序
name:存储空间名称
attr:存储空间属性:只读R,只写W,可包含可执行代码X,可以被初始化I。
orgin:用来定义存储空间的起始地址
Lenth:用来定义存储空间的长度
SECTI******分配段
SECTI******
: [property,property,……]
name:输出段的名称
property:输出段的属性:
load=allocation(强制地址或存储空间名称)同&allocation:定义输出段将
会被装载到哪里。
run= allocation(强制地址或存储空间名称)同&allocation:定义输出段将
会在哪里运行。
注:CMD文件中只出现一个关键字load或run时,表示两者的地址时表示两
者的地址时重合的。
PAGE = n,段位于那个存储页面空间。
例:ramfuncs
: LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
直接写编译命令
-l rts2800_ml.lib 连接系统文件rts2800_ml.lib
-o filename.out
最终生成的二进制文件命名为filename.out
-m filename.map 生成映射文件filename.map
-stack 0x200
堆栈为512字
4. .const段:
由关键字const限定的全局变量(const限定的局部变量不产生)初始化值,和出现在表达式(做指针使用,而用来初始化字符串数组变量不产生)中的字符串常数,另外数组和结构体是局部变量时,其初始值会产生.const段,而全局时不产生。
1.C语言软件开发过程
软件开发过程涉及编译器(compiler),汇编器(assembler),连接器(linker),归档器(archiver),建库器(library-build utility),运行支持库(run time support library),HEX转换器(hex conversion utility),交叉引用列表器(cross reference lister),绝对列表器(absolute lister)等。其大都设置既可通过命令,也可通过ccs的project\build options设置。
1&.编译器:对C语言源代码进行编译,产生汇编语言源代码。
一步编译:cl2000 Cv28 [-options] filenames [object files] [-z [link_options]]
分布编译:文法分析: 生成file.if的中间文件
ac2000 file.c
代码优化: 生成file.opt的文件
opt2000 file.if
代码生成: 生成file.asm的汇编文件 cg2000 file.opt
生成file.obj目标文件 asm2000 file.asm
2&.汇编器:把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公用目标格式(COFF)。具体命令格式如下:
asm2000 Version [input file [object file [listing file]]] [options]
3&.连接器:把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及决定外部参考。连接器的输入是可重定位的目标文件和目标库文件.具体命令格式如下:
汇编语言:lnk2000 [options] filename1,filename2……[filenamen]
C语言:lnk2000 {-c|-cr} filenames [options] [-o name.out] [lnk.cmd] [-l libname,lib]
运行时自动初始化变量
载入程序时自动初始化变量
详见手册。
-o name.out
生成的输出文件名
连接的cmd文件名
-l libname.lib 连接的运行支持库名
例:lnk2000 Cc prog1 prog2 prog3 Co prog.out rts2800.lib 4&.归档器(Archiver)
归档器Archiver可以用来对文档(Archive)或者库(library)中的文件进行分离和合并。这些文档或库可以是源文件库,也可以时目标文件库。归档器可以对库进行新建,添加,删除,替换,提取等操作,具体命令格式如下:
ar2000 [-]command [options] libname [filename0,filename1,……filenamen]
此命令针对TMS320F2812而言,其他类DSP命令以及格式略有不同,可详查TI的文档。此命令所在目录在\CCS_v3.1\C2000\cgtools\bin
@ 使用CMD文件
a (add) 向指定文档中添加指定文件
d (delete) 删除指定文档中的指定文件
r (replace) 替换指定文档中的指定文件
t (table) 列出指定文档中的文件
x (extract) 提取指定文档中的指定文件
屏蔽状态信息
列出库中定义的全局符号(对命令a,r,d无效)
替换文件时同步更新修改日期
v(verbose)
提供详细的描叙
libname 指定的文档名
filename 文档中指定的文件名
5&.建库器(library-build utility): 建立满足你自己要求的运行支持库.CCS中提供有rts库文件(\CCS_v3.1\C2000\cgtools\lib),并提供了对应的源程序文件rts.src
(\CCS_v3.1\C2000\cgtools\lib)。如:rts2800.lib:C/C++运行支持库;rts2800_ml.lib C/C++大内存模式运行支持库;用户可以利用归档器和建库器对rts.src中的文件进行提取,修改等操作,并重新生成自己需要的库文件。
命令的具体格式如下:
mk2000 Cv28 [options] src_arch1 [-l objlib1] src_arch1 [-l objlib1]……
6&.运行支持库(run time support library): 它包括C编译器所支持的ANSI标准运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持的I/O函数. CCS中提供有rts库文件(\CCS_v3.1\C2000\cgtools\lib),并提供了对应的源程序文件rts.src
(\CCS_v3.1\C2000\cgtools\lib)。如:rts2800.lib:C/C++运行支持库;rts2800_ml.lib
C/C++大内存模式运行支持库.库文件包括标准的C/C++运行支持库函数,浮点运算程序,系统启动程序_c_int00.
7&.HEX转换器(hex conversion utility): 它把COFF目标文件转换成TI-Tagged、
ASCII-hex、 Intel、 Motorola-S、或 Tektronix 等目标格式,可以把转换好的文件下载到EPROM编程器中.
hex2000 [-options] filename
-a ASCII-HEX
-t Ti-Tagged
-m Motorola-S
-x Tektronix
8&.交叉引用列表器(cross reference lister): 它用连接的目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件.
xref2000 [options] [input filename [output filename]]
options: -lxx
每页显示xx行(十进制数)
-q(quiet) 不显示提示消息
input filename
output filename
生成的xrf文件
9&.绝对列表器(absolute lister): 它输入连接后的目标文件,输出.abs文件,通过汇编.abs文件可产生含有绝对地址的列表文件。如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。
abs2000 [-options] input file
options: -e
改变缺省的文件后缀名
-ea[.]asmext asm-&asmtxt
-ec[.]cext
-eh[.]hext
-ep[.]cppext cpp/cc/cxx -&ptxt
指定输出文件目录。如:Cfs C:\ABSDIR
不显示提示消息
input file
例如:abs2000 Cea s Cec csr Ceh hsr hello.out生成文件
hello.s(hello.asm),hello.csr(hello.c),hello.hsr(hello.h).
2.CCS概述
DSP芯片开发工具可分为两大类:
代码生成工具:
代码调试工具:C/汇编语言源码调试器,初学者工具DSK,软件模拟器(Simulator),评价模块EVM,软件开发系统SWDS,仿真器XDS.
3.C编译器的优化:
1&C编译器优化分为2类:
C语言通用优化:简化表达式,数据流优化,删除公共子表达式和冗余分配,优化跳转,简化控制流,优化与循环有关的变量,将循环体内计算值不变的表达式移至循环体前,运行支持库函数的行内扩展。
根据DSP芯片的特定优化:高效地使用寄存器,自动增量寄存器寻址方式,使用块重复,使用并行指令,使用延迟跳转。
2&CCS的优化选项:
4.GEL语言的使用:
GEL(General Extension Language通用扩展语言)是一种类似于C语言的一种解释性语言,它可以创建GEL函数,以扩展CCS用途。
GEL是C语言的一个子集,然而它不能声明主机变量,所有的变量必须在DSP程序中定义,存在于仿真/实际目标板中,唯一不在目标板上定义的标识符是GEL函数及其参数。
三亿文库包含各类专业文献、应用写作文书、高等教育、各类资格考试、专业论文、生活休闲娱乐、72DSP芯片的定点运算等内容。 
 许多DSP 芯片只支持整数运算,如果现在这些芯片上进行小数运算的话,定点小数 运算应该是最佳选择了,此外即使芯片支持浮点数,定点小数运算也是最佳的速度选 择。 在 ...  第3章 DSP芯片的定点运算 章 芯片的定点运算 3.1 数的定标 在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型 芯片中,采用定点数...  DSP的Q定标_信息与通信_工程科技_专业资料。在定点DSP芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。这其中的关键就是由程序员来确定一个数的...  表 1 是基于上述某些参数对一些 DSP 芯片所作的比较。 Second ),例如 TMS320C6XXX 乘加速度达 (2)运算精度:一般情况下,浮点 DSP 芯片的运算精度要高于定点 ...  DSP公司各主流芯片比较_信息与通信_工程科技_专业资料。介绍了TI 、ADI等公司一些主流芯片的性能、价格的比较DSP 芯片介绍及其选型 引言 DSP 芯片也称数字信号处理器...  而 按照CMOS的发展趋势,DSP的运算速度提高到1000MIPS是完全有可能的。TI公司 将...TMS320VC54X 是为实现低功耗、高性能而设计的定点 DSP 芯片,主要应用在 通信...  数的定标:在定点 DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整 数的定标 型数来表示。一个整型数的最大表示范围取决于 DSP 芯片所给定的字长,一般为...  运用TMS320C54x汇编语言编写定点数运算、浮点数运算程序_计算机软件及应用_IT/计算机_专业资料。一、 定点数的运算在定点DSP芯片中,采用定点数进行数值运算,其操作...  在定点 DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。一个整型数的最大表示范围取决于 DSP 芯片所给定 的字长,一般为 16 位或 24 位。...求 rts2800_fl040830.lib - 【TI C2000】 - 电子工程世界-论坛
后使用快捷导航没有帐号?
请完成以下验证码
查看: 1975|回复: 4
求 rts2800_fl040830.lib
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
不知到版面上各位大侠从哪里得到的
rts2800_fl040830.lib
小弟现在急用
在TI官网上没搜到啊
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
救命啊,谁有发个上来啊
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
我找到了一个,跟大家分享下
TI官网没有这个库??这个库是哪里来的呢?
rts2800_fl040830.lib :
http://bbs./file/Y/yindashuipdi/rts2800_fl040830.lib
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
(167.52 KB)
01:01, 下载次数: 34
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
谢谢,和我的那个一样的
EEWORLD 官方微信
EE福利 唾手可得
Powered byDSP常见编译错误
1.DSP编程技巧到底有什么好资料?话说专门深入讲解这个的资料并不是太多,因为大部分DSP书籍都是讲解算法或者寄存器是怎么使用的,那尽量罗列一下(如有遗漏请在评论区补充),有:(1)《DSPC2000程序员高手进阶》这本书是当年笔者学习DSP的时候看了好几遍的,讲的非常深入、透彻,可惜早就卖光了并且没有再版。需要的网友可以考虑去图书馆看看,图书馆里最不缺少的就是老版本的书籍了。。。(2)EEPW牛人业话我们EEPW首页的牛人业话里,已经有大量这方面的总结了,链接太多就不一一列举了,请到http:.cnnewsaticlelisttype39中阅读。(3)官方资料最权威的当然还是官方资料,特别是《TMS320C28xOptimizingCC++CompileUse’sGuide》和《TMS320C28xAssemlyLanguageToolsUse’sGuide》。不足之处就在于,它们都像教科书,严谨有余,活泼不足,特别是初入门的人看起来会比较累。(4)参加一些培训好的培训一般都是要付费的,这个要根据自己的实际情况进行取舍了。2.答疑解惑哪家强?经验的积累,除了自己努力的自学之外,有时候一些难关还是得有别人的帮助才行,可能你花3天搞不定的问题,他一看就想起来是什么原因了。如果是企业客户,那直接联系官方技术支持,很容易就搞定了。或者也可以去官方论坛提问,然后等待解答。对于广大网友来说,直接获得技术支持可能有一定的难度。我们EEPW的论坛的人气充足,对问题的响应速度也是迅雷不及掩耳的,所以有关DSP的问题尽可以到http:fo.cnfoum291下提问。前面这两个无关具体技术,但是能起到―源头‖的作用。接下来就是具体的技术问题了,有几十个,我们慢慢来看吧。3.作为入门者,创建一个最基本的工程需要做哪些事情?最简单的入门方法是从现有的例子上入手,比如购买开发板的话,一般都会附送十几到几十个上手用的例子工程,把它们研究一遍,基本上入门这关就过了。对于C2000DSP的学习来说,先到TI网站上搜索ContolSUITE软件下载安装,里面的入门视频、工程例子和所有的文档资料都是一应俱全的。如果你买书籍来入门的话,和教编程的书籍一样,大部分都还是以―Hellowold‖作为第一个程序入手,然后运行程序显示在调试窗口中的。4.一个定点的C28x起始工程最少需要哪些文件和选项?
& 果果文库所有资源均来源于互联网,仅供网友学习交流,若侵犯了您的权益,请联系我们予以删除。
2844&&人浏览
172&&人浏览
511&&人浏览
17026&&人浏览
6286&&人浏览
18127&&人浏览
8446&&人浏览
4948&&人浏览
10842&&人浏览
1129&&人浏览
16194&&人浏览
15451&&人浏览
4656&&人浏览
2752&&人浏览
8995&&人浏览
本文标题:DSP常见编译错误 链接地址:
2013- Inc. All Rights Reserved 果果文库 版权所有 联系站长: ; 经营许可证编号:浙ICP备号21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 9494|回复: 3
rts2800_fpu32.lib在哪里呢?
&&已结帖(0)
主题帖子积分
高级技术员, 积分 775, 距离下一级还需 225 积分
高级技术员, 积分 775, 距离下一级还需 225 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 775, 距离下一级还需 225 积分
高级技术员, 积分 775, 距离下一级还需 225 积分
我用的F28335,这种芯片支持硬件浮点,可是需要连接浮点库文件rts2800_fpu32.lib,可就是这个文件在ccs3.3里怎么也找不到,难不成要另外下载?
主题帖子积分
初级工程师, 积分 2778, 距离下一级还需 222 积分
初级工程师, 积分 2778, 距离下一级还需 222 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级工程师, 积分 2778, 距离下一级还需 222 积分
初级工程师, 积分 2778, 距离下一级还需 222 积分
Re:需要升级
只要您到CCS中进行升级最新的Code&Generation&Tool&就可以,升级完成后,就会有rts2800_fpu32_eh.lib和rts2800_fpu32.lib二个文件了。
主题帖子积分
主题帖子积分
专家等级:结帖率:59%打赏:0.00受赏:12.00
主题帖子积分
我最近也遇到这问题。请问如何升级?
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
技术奇才奖章
人才类勋章
奔腾之江水
发帖类勋章
无冕之王奖章
等级类勋章
时间类勋章
技术新星奖章
人才类勋章

我要回帖

更多关于 绝地求生有没有教程 的文章

 

随机推荐