我有一个beagleboard与TMS320C64x + DSP。我正在开发一个图像处理beagleboard应用程序。以下是它的工作方式:
我已经编写了步骤1,3,5的代码。执行步骤3 + 4(发送数据)的最简单方法是什么?欢迎使用代码示例。
答案 0 :(得分:3)
最简单的方法是使用共享内存:
使用CMEM内核模块在ARM上分配一块可以从ARM和DSP访问的内存块。然后使用DspBios NOTIFY组件将指针向下传递给DSP。
完成DSP处理后,您可以通过NOTIFY通知ARM。
这样就不需要将数据从ARM复制到DSP,反之亦然。您必须确保的是,数据来自CMEM组件。这可以确保内存是连续的(DSP不知道ARM内存管理器)。
答案 1 :(得分:2)
共享内存是正确的方法,但学习如何操作可能会很痛苦。 C6Run工具可以为您提供抽象的ARM / DSP通信,使其更容易。虽然NOTIFY确实是正确使用的API,但C6Run使用较旧的API来使用CMEM。
如果您想在BeagleBoard上尝试C6Run,最简单的方法是遵循instructions on the eLinux wiki for setting up C6Run for the ECE597 course given by Mark Yoder at Rose-Hulman。这些说明取决于运行Angstrom演示图像(2)。还记录了用于演示硬件功能的稳定版本(3)。
(2):www.angstrom-distribution.org/demo/beagleboard (3):code.google.com/p/beagleboard/wiki/BeagleBoardDiagnosticsNext