A method is provided for processing a virtual address for a program
requesting a DMA transfer. The program is designed to be run in user mode
on a system on a chip that includes a central processing unit, a memory
management unit, and a DMA controller. The virtual address is a source
virtual address or a destination virtual address and has a size of N
bits. According to the method, the virtual address is divided into at
least two fields of bits. For each of the fields, there is created an
N-bit address word comprising a prefix having a given value associated
with the field and having more than 1 bit, and the field. The DMA
controller is programmed using multiple store instructions that include
one store instruction relating to each of the address words created.