This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好,
我仍然对C28xxx FastRTS-Library有问题。
我已将源文件(如sin_F32.asm cos_F32.asm sqrt_F32.asm)直接复制到我的项目src目录。
我这样做是为了能够在程序启动后将这些功能复制到RAM中。
所有这些asemmbler文件都被转换 为目标文件,但与sin和cos函数仍有冲突。
通过CCS6编译,我收到了如下错误消息:
#1.0056万重新定义符号"_cos":首先在"<Whole程序>"中定义;在"./src/cos_F32.obj"中重新定义
#1.0056万符号"_sin"重新定义:首先在"<整个程序>"中定义;在"./src/sin_F32.obj"中重新定义
但目前所有其他文件/功能都正常工作(例如sqrt_F32.asm)
这可能是什么原因? 我尝试了几个编译器开关,但没有成功。
或者,如何用sin_F32.asm和cos_F32.asm中的快速替换函数替换库函数?
BR Ralf
这个线索...
Ralf Koester 说:第一个定义于"<whole程序>"
...意味着您可以使用--program_level_compile或--opt_level=4。 我认为使用这两个选项都不会导致此问题。 但它可能会。 因此,作为实验,要么删除--program_level_compile,要么更改为--opt_level=3。
如果这不起作用,请提交CCS项目以供进一步分析。
谢谢,此致,
-George
您好,George,
我尝试了几种选择,
首先使用原始优化级别-O4和-opt_of_speed=5,请参见附加的映射文件
其次,使用优化级别-O3和-opt_for speed=3,请参见附加的映射文件
编译器使用rts2800_fpu32.lib函数sin,cos和sqrt or,这很奇怪
sin_F32.asm,cos_F32.asm和sqrt_F32.asm的函数!
但在这两种情况下,我都得到了错误:
我尝试了此设置的变体,但没有成功:
此设置是否应将RTS库sin,cos和sqrt替换为来自ASM文件的库?
拉尔夫
我仍然无法解释发生了什么。 确保RTS库是链接程序看到的最后一个输入。 这通常意味着最后的生成命令以"-llibc.a"结尾。 如果这不能解决问题,请 提交整个CCS项目。 这是推进这一问题的唯一途径。
Ralf Koester 说:此设置是否应使用来自ASM文件的RTS功能替换RTS功能?[/QUOT]
否。 请关闭库函数假设设置。
谢谢,此致,
-George
您好,George,
我更进一步了。
我从RTS_2800_CPU_FAST_supplement目录中删除了所有*.asm文件(sin_F32,cos_F32,... tan...,atan2...,sqrt...,div...),并实现了完整库的路径,如文档中描述的那样。
(请参阅电源)。
当然,我也删除了像“#pragma code_section (sin,"ramfuncs");”这样的pragma,并且接受了,现在我不能将函数复制到快速RAM中。
我还遵循了您的建议,删除了库设置的挂钩(请参阅附件)。
现在,错误被简化为sqrt函数,sin,cos,atan和atan2以及sqrt和div从RTS_2800_CPU_FAST_supplement lib中获取,我可以在生成输出中看到(参见att)。
使用sqrt保留错误->目前为止没有更多的想法。 我将按照您的建议,在第二个答案中附上整个项目。
BR Ralf
Ralf Koester 说:我已将sin_f32.asm cos_F32.asm sqrt_F32.asm等源文件复制到我的项目src目录。[/quot]
您发送的项目没有这些文件。 因此,我不能再提出这个问题。
谢谢,此致,
-George
您好,George,
您提到了我从1月3日起的帖子。
正如我在1月5日所写的那样,我试图采用标准的方式,删除了这些文件,并植入了如文档中所述的RTS_2800_CPU_FAST_supplement库。
您能看到此帖子吗? 我附加了Simplem的设置。库
原因sin,cos出现错误消息,但srqt错误仍然存在,这是实际情况。
如果您认为,在我可以执行此操作之前返回步骤是很有帮助的。
拉尔夫
您好,George,
由于我没有听到更多的消息,所以我返回到直接包含的ASM文件。
sin_F32.asm,cos_F32.asm,tan_F32.asm,atan2_F32.asm,sqrt_F32.asm和div_F32.asm!
我在我的设置中删除了RTS_2800_CPU_FAST_supplement库和查找该库的路径。
结果是截至1月3日的结果:
****为项目092-K2生成配置闪存****
"C:\\ti\\ccsv6\\utils\\bin\\gmake "-k all
'建立目标:092-k2.out '
'调用:C2000连接器'
c:/ti/ccssv6/tools/compiler/c2000_ts_less.3.lts/bin/cl2000"<xmt-block0>2000 15.12 -v28 -ml -mt --float_support=fpu32 -o4 --opt_of_speed=5 --fp_mode=lurse-advance_model=less--gu_guide_guide_les=-gb_l=-gb_lip_l=-rk2_lip_lip_lip_l=-rs/sp_lip_lip_lip_l=-rkkkk_l=-f-rs/-rs/-rkkkkkk/-rm_lip_lip_lip_lip_lip_lip_l=-f-rs/-rm=-f-rs/-rk/-rk/-rm=-rk/-rk/-rs/-rkkk/-rm=-rm=-rk/-rkk/-f-f-f_lip_ 15.12 15.12 rm_model -o "092-k2.out ""./src/ADS8329.obj""./src/Angle.obj""./src/Control.obj""./src/Correction.obj""./src/crmode.src/21 ".spob./spob.""./src/" "./src/sin_F32.obj""./src/sqlt_F32.obj""./src/src.obj""./src/version.obj""./DSP2833x_Headers_nonBIOS.cmd""./F2.8335万_flash_VV.obj""./srbs/fastl/ps/psvl/ps:psv/psv/psv_lib_fastl/v/ip_l/ip_32_l/ip_l/ip_crs/ip_crs/ip_lib_crs/ip_crs/ip_crs/ip_32_l/crs/lib_l/crs/ 15.12
链接>
错误#1.0056万:重新定义符号"_cos":首先在"<Whole程序>"中定义;在"./src/cos_F32.obj"中重新定义
错误#1.0056万:重新定义符号"_sin":首先在"<整个程序>"中定义;在"./src/sin_F32.obj"中重新定义
错误#1.0056万:重新定义符号"_sqrt":首先在"<whole程序>"中定义;在"./src/sqrt_F32.obj"中重新定义
错误#1.001万:链接时出错;“092-k2.out”未构建
>>编译失败
Makefile:195:目标'092-K2.out '的配方失败
gmake:***[092-k2.OUT ]错误1
gmake:由于错误,目标'all'没有重制。
****构建已完成****
我不知道为什么我在atan,atan2,div上没有错误,我在我的项目中也使用了它。
所以我按照你的愿望附上了这个项目。 (我在名称中添加了一个"ASM",以便与包含RTS_2800_CPU_FAST_PRO补 遗的发布项目有所不同。
BR Ralf
我对拖延表示歉意。
感谢您发送详细的测试案例。 我可以重现相同的问题。 我在 SDOWP系统中提交了CodeGen-2009以解决此问题。 欢迎您使用我签名中下面的SDOWP链接进行关注。
谢谢,此致,
-George
您好,George,
这是不是“SDOWP系统中的CodeGen-2009”意味着有人正在寻找解决方案?
BR Ralf