工具/软件:
我使用的 beagle bone black 和我试图做一个中断服务例程的手臂侧。 我使用位于 /usr/lib/ti/pru-software-support-package/examples/am335x/PRU_RP1 的 PRU 示例工程 (PRU_RPMsg_echo_interrupt1) 在 Msg_Echo_Interrupt 端生成中断、但我无法在 ARM 端找到 ISR 的示例代码。 有人能给我指一下 ARM 上的 ISR 的代码 C++示例吗?
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.
工具/软件:
我使用的 beagle bone black 和我试图做一个中断服务例程的手臂侧。 我使用位于 /usr/lib/ti/pru-software-support-package/examples/am335x/PRU_RP1 的 PRU 示例工程 (PRU_RPMsg_echo_interrupt1) 在 Msg_Echo_Interrupt 端生成中断、但我无法在 ARM 端找到 ISR 的示例代码。 有人能给我指一下 ARM 上的 ISR 的代码 C++示例吗?
您好、Eric、
请为我确认您在 ARM 内核上运行的操作系统。
如果您使用 TI-RTOS 进行编程、请注意、根据、我们无法再为 AM335x 上的 RTOS 提供软件设计支持
关于 AM335x、AM437x、OMAP-L13x、C674x、K2G、 AMIC110、AMIC120 器件
此致、
Nick
您好、Eric、
明白。 我可以帮您解决 Linux 问题。
在接下来的几个月中、我想再创建一些关于在 Linux 和 PRU 内核之间进行不同类型处理器间通信 (IPC) 的示例代码和文档。 如果您在处理代码时愿意分享您的一些代码、也许我们可以就此共同努力。
我们来收集更多信息。 明天我将再次作出回应。
问题
1) Linux 4.19 是相当老的。 您是否计划为您的产品使用最新的内核?
2) 您是否刚刚编写一个在 PRU 内核的 RPMsg 上挂起的用户空间应用? 还是尝试执行其他操作、例如编写 Linux 内核驱动程序?
3) 您的 IPC 是否有特定要求? (例如,平均或最大延迟,数据吞吐量等)
更多信息
请记住、Linux 实际上并不会将中断暴露给用户空间。 因此、如果您想要真正的中断服务例程 (ISR)、需要将其编写在自定义内核驱动程序中。 然后、您可以编写将在内核 ISR 完成执行后安排运行的用户空间代码。
如果这只是一个没有超严格时序要求的 Linux 用户空间应用、那么不要使用自定义 Linux 驱动程序使事情变得过于复杂。 如需了解更多相关信息、请访问: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1248401/processor-sdk-am62x-question-of-ti-rpmsg-char-scripts-specifically-the-recv_msg-method/4731803#4731803
此致、
Nick