AnsweredAssumed Answered

I.MX6dl 如何采用Sdma进行用户空间进程中的内存间拷贝

Question asked by 厚逸 杨 on Mar 12, 2018
Latest reply on Mar 12, 2018 by Wigros Sun

hi,all

 

我司IMX6DL设计应用于红外机芯的采集编码,应用程序中常涉及到大量数据的memcpy()操作,cpu占用率高居不下。

 

通过了解SDMA,想经由SDMA来进行进程中buf间的memcpy操作,mxc_sdma_memcopy_test.c已能正常编译insmod,mxc_sdma_test.out只是测试内核空间申请的内存间拷贝功能。

 

我想通过SDMA对用户空间进程中的两块内存地址进行数据拷贝,但不清楚用户空间进程中的虚拟内存地址如何传递到内核空间的驱动里,通过write(fd, buf, size)将buf地址传递进去后,会导致dma_map_sg()映射崩溃。


附件为i.mx-test-5.7中的驱动源码和测试源码。


静待佳音,万分感激。

Attachments

Outcomes