请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM3358 工具/软件:TI C/C++编译器
您好!
我正在尝试创建一个程序、该程序直接从 PRU 直接输入寄存器(R30)写入 DDR 存储器。 最后200m 保留在臂侧、因此可以自由写入。
我们已经在 pasm 中提供了此功能的版本。 但是、我们希望使用 clpru 迁移到 c。
我对此有以下问题:
- 我是否需要在 AM335x_PRU.cmd 文件中定义所需的存储器部分?
- 我是否需要使用 mmap 或 c 代码中类似的内容来保留此存储器、或者我是否可以只定义指向所需地址的指针?
- 是否还有其他必要的东西能够从 clpru 写入 DDR?
目前、我调整了 AM335x_PRU.cmd 文件中的以下行:
DDR:org = 0x8000000 len = 0x20000000CREGISTER=31
这样、我就可以写入整个 DDR、然后从 ARM 端读取和验证存储的数据。 但是、如果我写入较大的器件、CPU 会崩溃。
目前、我用于写入的起始地址为0x92c00000、有效范围为大约310MB、因此它应该位于为 Linux 内核保留的器件后面。
在初始测试中、我对前400个字节写入了一个计数器、该计数器工作正常。 但是、当我尝试写入更多数据时、它会崩溃、尽管其余的存储 器(从0x12C00000到 DDR 的末尾)也应该不适用于 PRU
此致、
RENS