Hi there,
I am in the process of evaluating the DSP performance on DM8168. I have tried to build C6accel on latest ezsdk 5.03, but failed. without better choice, I moved back
to the older version (5.01.00.77) in which the C6accel seems to be working. I have been able to compile and run c6accel_dsplib_testapp without any problem.
But when I tried to write my own DSP code and hook it up with C6accel, I run into cmem errors below.
CMEMK Error: get_phys: Unable to find phys addr for 0x40229c3c CMEMK Error: get_phys: get_user_pages() failed: -14 CMEMK Error: GETPHYS: Failed to convert virtual 0x40229c3c to physical. CMEMK Error: get_phys: Unable to find phys addr for 0x40229c3a CMEMK Error: get_phys: get_user_pages() failed: -14 CMEMK Error: GETPHYS: Failed to convert virtual 0x40229c3a to physical. CMEM Error: getPhys: Failed to get physical address of 0x40229c3c CMEM Error: getPhys: Failed to get physical address of 0x40229c3a
I wrote an function -- image_diff( char * imgIn1, char *imgIn2, char * imgDiff, int pixelCnt) -- to be run in DSP to speed up things. I followed the doc below to create
all the thing necessary to make this happen.
http://processors.wiki.ti.com/index.php/C6Accel_Advanced_Users_Guide#Adding_a_new_kernel_to_C6Accel_and_integrating_with_codec_server
The shared memory driver is install as below
insmod cmemk.ko phys_start=0x94000000 phys_end=0x95400000 pools=20x4096 Another thing I don't quite understand is when using INBUF0 and INBUF1, I always got the cmem error. When I use INBUF3 and INBUF4 instead, the cmem
error go away, but DSP function call still returned error.
In c2accelw.c inBufDesc.numBufs = 2; outBufDesc.numBufs = 1; fp0->imgIn1_InArrID1 = INBUF0; //3; fp0->imgIn2_InArrID2 = INBUF1; //4; fp0->imgDiff_OutArrID1 = OUTBUF0;
Any info or advice will be highly appreciated.
-Perry