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.

[参考译文] Compiler/AM3356:PRU with MII support

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/586407/compiler-am3356-pru-with-mii-support

部件号:AM3356

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

您好,

出于我们自己的目的,我们尝试为PRU获取C程序,以处理来自AM3356 SoC的PRU的MII链路。

通过阅读文档并经过几次测试,我有以下问题:  

-发出XFR命令以获取L2 Bank数据需要使用de __xin()函数(只是一个信息)

- R2->R9用于检索MII数据,但编译器使用R2作为堆栈指针。 除非我可以从编译器选项更改堆栈指针寄存器,否则我必须使用重新映射标志?

-使用__xin函数的重映射标志似乎不起作用。 首先,不能在任何CPU寄存器(R0->R29)中检索数据,其次,在C编译器生成的汇编代码中,我没有看到SBBO指令将结果存储在提供的缓冲区中。  

->如果不使用重映射标志, 则可以在R2寄存器中正确检索数据

->通过使用重映射标志,不会更新任何CPU寄存器,并且存储在提供的缓冲区中的数据来自堆栈...

那么,所有这些都是为了询问C编译器是否支持MII接口,如果支持,我错过了什么?

谢谢!

纪尧姆

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

    我对拖延表示歉意。

    您在编译器中遇到了一个已知问题。  ID为CodeGen-1718。  欢迎您使用我签名中下面的SDOWP链接进行查找。  它将在PRU编译器的下一个发行版中修复。  目前未安排该版本。

    谢谢,此致,

    -George

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

    好的,  

    有没有办法将堆栈指针寄存器(R2)/链路寄存器(R14)更改为另一个GP寄存器(R0->R29)。 我在文档中没有看到如何做,但也许有某种MacGyver技巧来做?

    另一个解决方案应该是获取编译器源代码并尝试更改它。 源代码是否在某处可用?

    感谢您的回复,

    此致,

    纪尧姆

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

    纪尧姆

    不能,很遗憾,无法更改SP寄存器或链接寄存器,我们目前不提供PRU C编译器的源代码。

    您的两个选项似乎是:

    1. 使用TRM.TRM.FIFO的章节4.4 .6.2 .3.1 .2.1 中所述的RX MII端口-> RX L1 FIFO-> PRU (R31)数据路径
    2. 程序中与MII端口交互的部分使用汇编代码,其它所有内容使用C代码
      1. 由于需要保存C编译器所需的任何寄存器(SP,链接寄存器等),然后在从汇编函数调用中退出之前恢复这些寄存器,因此该选项会变得复杂。

    Jason Reeder