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.

[参考译文] 编译器/TMS320C6678:通过C使用循环寻址

Guru**** 2613765 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/642593/compiler-tms320c6678-using-circular-addressing-through-c

部件号:TMS320C6678

工具/软件:TI C/C++编译器

大家好

我正在尝试寻找一种通过C代码对 C6678使用循环寻址的方法。 如果我能直接理解的话

编译器中不支持此功能。 所以我想了另一种方式。 我知道如何更新AMR

注册并修复可以使用循环寻址的8个寄存器中的一个。

但是我需要一种方法来使用该寄存器,所以我想将一个参数传递给例程

在该特定寄存器上完成,然后将其用作 循环工作的指针。 我的问题是

如何使此寄存器不被编译器用于其他目的,并让其继续使用

只是为了我的目的??? 也许可以宣布它不稳定??? 这是否会使寄存器仅成为我想要的指针?

无论谁知道编译器是否支持通过C操作循环寻址,我都很乐意听到。

谢谢。

已过时

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

    我已通知SW团队详细说明我们是否可以就此分享一些信息。

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

    [报价用户="Oded shahua"]

    我的问题是

    如何使此寄存器不被编译器用于其他目的,并让其继续使用

    只是为了我的目的???

    [/引述]

    遗憾的是,C6000编译器不提供任何这样的功能。   

    我建议您编写在线性装配体中执行圆形寻址的函数,然后从C调用它   

    谢谢,此致,

    -George

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

    感谢George的回答

    您可能是对的,尽管对循环 寻址等信号处理中的主要功能非常失望

    C不支持。我想知道在C语言的AMR寄存器中放入值的可能性有多大

    如果我实际上不能使用该功能,则会提供。

    已过时

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

    [quote user="Oded shahua">我想知道在C语言的AMR寄存器中放入值的可能性有多大使用 __cregister关键字 可以从C语言访问AMR寄存器。 但是,由于编译器假定所有启用循环寻址的寄存器都设置为线性寻址,如果在C语言中更改AMR寄存器以启用循环寻址,则C编译器生成的寻址操作将不再有效。

    因此,正如George所说,执行循环寻址的唯一选择是编写汇编程序。

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

    您好,切斯特,再次感谢您的回复

    是的,我知道如何更改AMR寄存器,并且我知道,如果我通过该方式更改寄存器,将其设置为循环寻址

    然后,我需要在例程结束时或在例程中不需要的任何地方将寄存器返回到线性寻址

    循环寻址。 更重要的是,我知道我需要在开始时保存AMR的价值

    在 使用此循环寻址并将AMR设置为线性寻址的例程期间可能出现的中断例程

    在中断结束时,还原AMR的值。但是我不知道如何修复循环缓冲

    仅注册我的目的。

    我有一个想法,我即将测试是否通过中的ASM声明来使用Assembler的.circ指令

    将为特定寄存器指定一个名称(如变量),然后按实际情况使用它的C语言。 我认为这样做将会

    确保编译器在此例程中不会将寄存器用于其他目的。 我会高兴的

    您可以确认或拒绝此可能性。

    谢谢

    已过时

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

    I had a sea that I am to test onate to use the .ccirc, of the Assembler through ASM Statement in the

    C语言,它将为特定寄存器指定一个名称(如变量),然后按实际情况使用它。。.circ指令用于处理线性装配体文件的装配体优化器工具。

    而C语言中的ASM语句将请求的指令插入汇编源文件中,该文件由汇编器工具处理。

    因此,不能在C语言ASM语句中使用.circ指令;汇编器工具报告.circ是非法助记符。

    请参见 图1-1 TMS320C6000软件开发流程 了解工具的交互方式。

    因此,要使用.circ,您必须在线性装配体文件中写入算法。

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

    谢谢切斯特