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.

[参考译文] LP-AM243:PRU 共享存储器问题

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1514649/lp-am243-pru-shared-memory-issues

器件型号:LP-AM243

工具/软件:

我的工程使用两个 R5内核(0_0和1_0)、内核之间的 IPC 以及用于 LD1和 LD2的 GPIO。 我还扩展了 R5内核的共享存储器、允许通过 IPC 提供的指向共享存储器的指针实现两个内核之间更大的缓冲区传输。

我最近合并了一个同事的 PRU 工程、该工程在此工作区中可以正常工作、但在我的工作区中不能正常工作。 我相信我已经跟踪到 C28寄存器没有正确初始化为0x10000、或可能被覆盖为0的问题。 我相信后者是不可能的,因为我相信注册是只读的。


下面是 PRU0的 PRU 链接器文件(PRU1具有相同的初始化设置)、似乎是正确的。

比较工作版本和非工作版本的 LinkerInfo.XML 文件看起来是相同的

我也尝试过使用 PRUICSS_setConstantTblEntry (),没有成功,寄存器仍然是0x0。

   


问题:

1)关于问题可能导致 C28寄存器为0的想法?  

2)如何调试初始化以及对 C28寄存器的任何更改?  

提前感谢您的帮助。 这是我第一次处理 PRU。  

Brian

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

    C28默认配置为0。 但是、C28、C29、C30和 C31允许您将位[23-8]配置为应用程序/用户定义的值。 大多数 TI 软件正在从应用程序对其进行初始化、以将其重新用于访问 SMEM (共享存储器)