DMA engine implementation with support for unaligned addresses and arbitrary number of bytes to transfer. Developed for the DRAC project.
ARM University course