→ alongalone:kmalloc有大小限制,你提到花很多時間.我猜有可能爆掉 04/30 18:03
→ alongalone:有考慮試看看 vmalloc 嗎 04/30 18:04
→ mikebenq:我kmalloc一塊記憶體將資料複製進去是成功的 04/30 18:38
→ mikebenq:但是這麼做感覺很浪費時間 04/30 18:39
→ mikebenq:可以用原本的資料不用經過複製的程序嗎? 04/30 18:40
推 askacis:vmalloc的位置應該不能拿來用DMA? 我記得不保證連續 04/30 20:27
推 askacis:只是說為什麼你不一開始用就kmalloc來保存你的資料? 04/30 20:31
推 askacis:driver init時可以先kmalloc一塊記憶體出來 04/30 20:33
→ askacis:如果資料來自userspace,可以用mmap讓userspace可以直接 04/30 20:34
→ askacis:到kmalloc出來的buffer,不需要ioctl送資料進driver~ 04/30 20:34
推 mayasky:實作你的IOREMAP,在DRIVER中MAP一段實體連續的給APP 05/02 01:40
推 mayasky:說錯..實作mmap 05/02 01:41
→ mikebenq:感謝askacis跟mayasky的回覆,這幾天上網爬文已經實作出 05/02 12:05
→ mikebenq:mmap,不過他的感覺是在kernel映射一塊記憶體給user用 05/02 12:06
→ mikebenq:所以我想運算的資料一定要寫在mmap回傳的address 05/02 12:07
→ mikebenq:可是我想算的資料是一張圖用opencv的函式cvLoadImage以及 05/02 12:10
→ mikebenq:webcam傳入,所以我無法指定要算資料的起始address 05/02 12:15
→ mikebenq:請問各位高手這種問題要如何解決?小弟是第一次寫driver 05/02 12:17
推 alongalone:把輸入的資料複製到mmap回傳的記憶體位置勒? 05/02 21:21
→ mikebenq:是用memcpy()嗎? 我現在就是使用這種方法,想請問一下還 05/02 21:30
→ mikebenq:有更快的方法嗎?因為這樣感覺把記憶體複製感覺會慢很多 05/02 21:31
→ mayasky:所以IMAGE的ADDRESS是LIBRARY決定的? 05/03 02:35
推 mayasky:如果OPENCV是OPEN SOURCE...我會改OPENCV的配置MEM方式 05/03 02:37