Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
尊敬的支持人员和用户。
我正在尝试使一些与 ARM 和 PRU 内核相关的示例应用协同工作
我正在使用:
-idkAM437 dev。 Borad
- PROCESSOR_SDK_RTOS_AM437X_4_00_00_04
最后一个想法是在第一个 PRU-ICSS 和第二个 PRU-ICSS 自定义固件上运行 HSR 或 PRP、以处理 McSPI 通信。
太棒了... 我认为首先需要了解:
- ARM 到 PRU 和 PRU 到 ARM 中断的工作原理
-如何在 ARM 和 PRU 之间交换数据(IPC 将非常庞大...只需找到一些内存即可使用中断锁存来交换数据)
我首先介绍 "PRU-software-support-package"、在其中找到了 PRU 示例。 我给出了一些中断 PRU0至 PRU1的示例。
问题1) PRU-ICSS 内核有代码:ARM-PRU 和 PRU-ARM 中断。 是否有用于 ARM 内核的代码来处理从 PRU 到 PRU 的中断或使 iterrupts 到 PRU?
问题2) 应如何实施数据交换? 有没有示例? 共享存储器、它似乎由 HSR/PRP PRU 代码使用。 是否可以直接在 PRU RAM (对于 ICSS0)中使用 ARM 进行访问? 最好使用 DDR 吗? 用于交换数据的对存储器的最快访问是什么?
我还在示例"Nimu_ICSS_BasicExample_idkAM437x_wSoCLib_armExampleProject"中检查如何完成"PRU 工作"。 然后、我尝试制作自己的示例。
问题3) 我不明白函数"PRUICSS_registerIrqHandler"的参数。
什么是:
-pruEvtoutNum (PRU 的此主机中断吗? 技术参考手册中的图30-24)
-intrNum??
-eventNum??
在哪里可以找到技术参考手册中的值?
AM437x 不存在 PRUSS 示例、但我检查"pdk_am437X_1_0_7\packages/ti_drv\pruss\test\src"中的 source main.c。
PRUICSS_registerIrqHandler2 它似乎与 PRUICSS_registerIrqHandler 函数类似、只是它采用了一系列设置。
我找不到这个神奇数字的来源-> intrCfg.intNum =134+32;, inCfg.pruEvtoutNum=2;
此外、我对 PRUICSS_IntcInitData_s 参数的理解也有问题。
您能告诉我这些信息吗?
问题4)
RET = PRUICSS_socGetInitCfg (&pruIcssCfg); if (ret!= PRUICSS_RETURE_SUCCESS) { while (1); } pruIcssHandle = PRUICSS_create ((PRUICSS_Config*) pruIcssCfg、PRUICCSS_instance_two);
由_kill(int)()函数执行的函数 do_AngelSWI()上的调试停止(位于第95行的 PRUICSS_create 内部->"object->pruicss_version = HWREG (temp_addr)& 0x7ffU;")。
然后、我强制将 PRU 地址(0x54400000)段设置为.cfg 文件中不可缓存的段、并且程序不会崩溃。 因此、似乎有些人需要知道如何设置 MMU ... 外设寄存器似乎不想被读取?? 。 我不熟悉使用 MMU... 您能向我解释一下具体的情况吗? 在哪里可以找到有关此问题的信息和指南?
谢谢!
此致
马里

