Hi everyone,
I don't understand the head, body, tail ADMA handling in the driver either. Maybe someone could give us some hints?
I am working with MQX 4.1.2 on the Vybrid M4. I also see problems with with SD-card driver (_esdhc_read) in combination with active caches and cached memory. (but I think in my case it has nothing to do with DDR3 or interrupts)
I think it is problem regarding the cache handling in the driver and the cache controller.
In my case I found a workaround in my application to have data consistency after a read access:
flush the data after buffer_read re-init -> then start the read access
(open file in filesystem, loop: write access, CRC handling, etc.)
...
memset(buffer_read, 0, accessSize );
//workaround to to fix problem in case of application uses cached memory
_DCACHE_FLUSH_MBYTES(buffer_read, accessSize );
returnSize = read(fd, buffer_read, accessSize );
...
Could anyone try or approve this?
BR Tobi