TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

该讨论已被锁定。
您不能再向该讨论中发布新回复。如果您有问题可以开始新讨论

[参考译文] CCS/TMS320F2.8335万:CCS/TMS320F2.8335万

Other Parts Discussed in Thread: ADS8329
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/564853/ccs-tms320f28335-ccs-tms320f28335

部件号:TMS320F2.8335万
主题中讨论的其他部件:controlSUITEADS8329

工具/软件: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文件的库?

      拉尔夫

      • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

        我忘记了maps.e2e.ti.com/.../092_2D00_K2-V1-o4-op5.123e2e.ti.com/.../092_2D00_K2-V2-o3-op3.123

        • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

          此设置是否应使用ASM文件中的RTS功能替换RTS功能?

          • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

            我仍然无法解释发生了什么。  确保RTS库是链接程序看到的最后一个输入。  这通常意味着最后的生成命令以"-llibc.a"结尾。  如果这不能解决问题,请 提交整个CCS项目。  这是推进这一问题的唯一途径。

            Ralf Koester 说:
            此设置是否应使用来自ASM文件的RTS功能替换RTS功能?[/QUOT]

            否。 请关闭库函数假设设置。

            谢谢,此致,

            -George

            • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

              您好,George,

              我将库函数假设删除为"关闭"!

              请参阅附加的输出文件builp.log! 在最后一个位置,我找到了-lrts2800_fpu32.lib而不是-libc.a!

              我从库文件搜索路径中删除了库名称,因为建议自动找到最佳匹配库。

              我还删除了libc.a,因为有人建议不要在all.e2e.ti.com/.../6082.Build.log上这样做

              • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

                您好,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

                e2e.ti.com/.../Build2.log


                 

                • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

                  这里是project....e2e.ti.com/.../092_2D00_0099.zip

                  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

                    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错误仍然存在,这是实际情况。

                      如果您认为,在我可以执行此操作之前返回步骤是很有帮助的。

                      拉尔夫