I have been working with the BLIP2 board in CCES, working my way through the FrameCapture_ClassDriver_ASX340 example, and I have encountered an issue when trying to write data to the sdram while the ASX340 sensor data stream is open. While attempting a memcpy of data from the captured frame buffer to another block of memory I have set aside in my sdram, I find that artifacts are appearing on the images in the new location. Attached is the example in which the image is memcpy-ed twice from the frame buffer, to a working buffer, then to a 2nd working buffer. In this particular example, the artifacts seem to only appear in the second data transfer, however in other instances I have tried, it has appeared in the first memcpy.
A few notes:
- The artifacts are somewhat inconsistent, they don't appear in every frame, however, they seem to appear in the same specific frames every time it's run.
- The artifacts appear when using other functions, such as the threshold function from the image processing toolbox.
- I tried writing an array of constants to one of the memory locations, the artifacts still appeared.
- There were no artifacts if I stopped the sensor data stream.
- Both the ASX340 and the OV7692 examples have this issue.
- No artifacts appear if the data is being copied/written to internal memory.
- I have taken out the file write operations out of the example to speed things up.
- Have attached both the .c and .h files I am using, plus the output images from the frame buffer, the first working buffer, and the second working buffer.
- Perhaps this could have something to do with timing misalignments in the DMA operations in the sensor driver?