大家好、
1.我们正在 A72和 C7x-DSP 内核之间实现 IPC。
2.使用 RPMsg 进行报文传递并为数据传输分配单独的 DDR 内存。
3.我们能够分配512 MB 的 DDR 内存,其中 C7x-DSP 和 A72共享公共内存。
内存分配参考文档: developer_notes_memory_map.html
问题:
4.我们希望实施 Linux 用户空间应用、以通过 DDR 存储器将数据从 A72发送到 C7x-DSP 内核。
根据我们的理解、在用户空间 Linux 应用中可以使用两种方法来分配和取消分配 DDR 存储器。
1. mmap (通用)
2.使用 vision_app 的 DMA 堆缓存方法。 (建议的方法)
DMA 缓存堆方法:
参考:psdk_rtos_auto_j7_06_00_00_00/vision_apps/apps/basic_demos/app_linux_arm_mem/main_linux_arm.c
我们可以有如下序列:
appCommonInit() //此函数调用 appMemInit()并进行一些其他初始化
appMemAlloc()
appMemFree()
appCommonDeInit()
论坛链接:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/840627/tda4m-how-can-i-do-dynamic-memory-allocation-like-a-malloc-fuction-in-psdk
5.我们计划使用第二种方法(DMA 缓冲堆方法)。 如果使用相同的方法、您能否让我们来操作?如果是、如何移植 vision_app
迁移到 Linux。
6.我们举了几个例子,他们在7和7.1 SDK 上移植了 vision_app。 让我们知道、我们可以将该示例移植到9.1 SDK。
参考链接: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/909695/faq-tda4vm-makefile-based-project-which-shows-a72-c7x-r5f-setup-along-with-ipc-and-buffer-passing-between-linux-rtos
请 仔细阅读、并提供必要的内容。
谢谢。此致、
苏尼尔