DMA channel x memory address register (DMA_CMARx) (x = 1..7, where x = channel number)

Регистр адреса памяти канала x DMA (x - номер канала = 1..7 / 1..5)

Смещение (Address offset): 0x14 + 0x14 * (x-1)

Reset value: 0x0000'0000

3130292827262524
MA[31:24]
rwrwrwrwrwrwrwrw
00000000
2322212019181716
MA[23:16]
rwrwrwrwrwrwrwrw
00000000


15141312111098
MA[15:8]
rwrwrwrwrwrwrwrw
00000000
76543210
MA[8:0]
rwrwrwrwrwrwrwrw
00000000


Bits 31:0
MA[31:0]
Memory address
Базовый адрес памяти с которым будет производиться обмен данными по каналу в режиме DMA

Запись в этот регистр возможна только при отключенном канале.

Если размер данных со стороны памяти 16 бит (MSIZE[1:0] = 01), бит MA[0] игнорируется, доступ автоматически выравнивается по адресу полуслова.

Если размер данных со стороны памяти 32 бит (MSIZE[1:0] = 10), биты MA[1:0] игнорируются, доступ автоматически выравнивается по адресу слова.



/******************  Bit definition for DMA_CMAR1 register  *******************/
#define  DMA_CMAR1_MA                        ((uint32_t)0xFFFFFFFF)        /* Memory Address */

Для регистров остальных каналов (CMAR2...CMAR7 для DMA1, CMAR2...CMAR5 для DMA2) изменить цифру в имени соответствующего определения бита (..._CMARx_...)