您好!
我尝试在 PRU 中访问 ARM 的外设、但收到错误。
使用的 SDK 版本 I 是 ti-processor-sdk-linux-rt-AM437X-EVM-02.00.02.11。
我使用的 PRU 是 PRUSS0。
我已经通过以下代码启用了 PRUSS1的 OCP 主器件、RPMsg 现在正在工作。
/*启用 PRUSS1的 OCP 主端口以读取外部存储器*/
PRUSS1_CFG_SYSCFG &=~(standy_init_bit);
PRU 中的访问代码为: PUT_UINT32 (*(volatile UINT32_t *)(0x481CC000));
我尝试访问 DMTIMER2、I2C、ePWM0~2。 只能访问 DMTIMER2。
错误消息如下所示:
[234.724970]------ [在此处剪切]-----
[234.728502]警告:CPU:0 PID:22 at drivers/bus/omap_l3_oc.c:147 l3_interrupt_handler+0x25c/0x36c ()
[234.737069] 440000.OCP:L3自定义错误:主 ICSS0目标 L4_PER_1 (读取):在功能访问期间以用户模式访问数据
[234.738798] Remotepproc0:踢 VQ 指数:0
[234.738804] remoteproc0:在 PRU0上踢 vqid 0
[234.738815] virtio_rpmsg_bus virtio0:rpmsg 主机处于联机状态
[234.738895] remoteproc0:registered virtio0 (类型7)
[234.738963] PRU-rproc 54474000.pru0:PRU rproc 节点/ocp/pruss@54440000/pru0@54474000探测成功
[234.766900]链接的模块:mod_pru_rproc (O) mod_pruss (O) mod_SRAM (O) mod_rtc (O) mod_powerfail (O) mod_iobus (O) mod_f耦 合器(O)
[234.777820] CPU:0 PID:22 Comm:IRQ/19-L3-APP-I 被污染:G O 4.1.20-rt23-Yocto-preempe-RT #51
[234.787646]硬件名称:通用 AM43 (平展器件树)
[234.792580][ ](展开回扫)从[ ](show_stack+0x20/0x24)
[234.800408][ ](show_stack)从[ ](dump_stack+0x24/0x28)
[234.806393][ ](dump_stack)从[ ](warn_slicpath_common+0x98/0xc4)
[234.813892][ ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x40/0x48)
[234.822640][ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x25c/0x36c)
[234.830669][ ](L3_interrupt_handler)、来自[ ](IRQ_Forced_thread_fn+0x30/0x64)
[234.839662][ ](IRQ_Forced_thread_fn)、来自[ ](IRQ_THREAD+0x11c/0x1fc)
[234.847051][ ](IRQ_THread)、来自[ ](kthread+0xd4/0xec)
[234.853043][ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x2C)
[234.860195]--[结束线迹0000000000000002 ]--
可以给我一些建议吗?
此致
Jerry