DMA interrupt status register (DMA_ISR)

Регистр статуса прерываний от каналов DMA

Смещение (Address offset): 0x00

Reset value: 0x0000'0000

3130292827262524
Reserved TEIF7 HTIF7 TCIF7 GIF7
------------rrrr
00000000
2322212019181716
TEIF6 HTIF6 TCIF6 GIF6 TEIF5 HTIF5 TCIF5 GIF5
rrrrrrrr
00000000


15141312111098
TEIF4 HTIF4 TCIF4 GIF4 TEIF3 HTIF3 TCIF3 GIF3
rrrrrrrr
00000000
76543210
TEIF2 HTIF2 TCIF2 GIF2 TEIF1 HTIF1 TCIF1 GIF1
rrrrrrrr
00000000


Регистр позволяет отслеживать для каждого канала три отдельных события, генерирующих прерывания:

- TE - transfer error: ошибка передачи данных в канале DMA;

- HT - half transfer: передана половина из общего количества данных, назначенных к передаче в канале DMA;

- TC - transfer complete: передача данных в канале DMA завершена.

Отдельный бит (GIF - global interrupt flag) сигнализирует в общем, что произошло одно из трёх вышеперечисленных событий.

Назначение флагов в регистре идентично для всех каналов. Расшифровка приведена для 7 канала.

Регистр доступен только для чтения. Флаги устанавливаются аппаратно и могут быть сброшены записью соответствующего бита в регистре сброса флага статуса прерываний от каналов DMA (DMA_IFCR).

В контроллере DMA2 доступны только пять каналов: каналы 6 и 7 недоступны.

Bits 31:28
Reserved
Reserved, must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 27
TEIF7
Channel 7 transfer error flag
Флаг ошибки передачи в 7 канале DMA

 0 : нет ошибки.

 1 : зафиксирована ошибка передачи данных (TE - transfer error) в 7 канале.

Bit 26
HTIF7
Channel 7 half transfer flag
Флаг передачи половины данных в 7 канале DMA

 0 : нет события.

 1 : передана половина из общего количества данных, назначенных к передаче (HT - half transfer) в 7 канале.

Bit 25
TCIF7
Channel 7 transfer complete flag
Флаг окончания передачи данных в 7 канале DMA

 0 : нет события.

 1 : переданы все данные, назначенные к передаче (TC - transfer complete) в 7 канале. Передача окончена.

Bit 24
GIF7
Channel 7 global interrupt flag
Глобальный флаг событий (прерываний) в 7 канале DMA

 0 : нет событий.

 1 : произошло одно из трёх событий: TE, HT или TC в 7 канале.



/*******************  Bit definition for DMA_ISR register  ********************/
#define  DMA_ISR_GIF1                        ((uint32_t)0x00000001)        /* Channel 1 Global interrupt flag */
#define  DMA_ISR_TCIF1                       ((uint32_t)0x00000002)        /* Channel 1 Transfer Complete flag */
#define  DMA_ISR_HTIF1                       ((uint32_t)0x00000004)        /* Channel 1 Half Transfer flag */
#define  DMA_ISR_TEIF1                       ((uint32_t)0x00000008)        /* Channel 1 Transfer Error flag */
#define  DMA_ISR_GIF2                        ((uint32_t)0x00000010)        /* Channel 2 Global interrupt flag */
#define  DMA_ISR_TCIF2                       ((uint32_t)0x00000020)        /* Channel 2 Transfer Complete flag */
#define  DMA_ISR_HTIF2                       ((uint32_t)0x00000040)        /* Channel 2 Half Transfer flag */
#define  DMA_ISR_TEIF2                       ((uint32_t)0x00000080)        /* Channel 2 Transfer Error flag */
#define  DMA_ISR_GIF3                        ((uint32_t)0x00000100)        /* Channel 3 Global interrupt flag */
#define  DMA_ISR_TCIF3                       ((uint32_t)0x00000200)        /* Channel 3 Transfer Complete flag */
#define  DMA_ISR_HTIF3                       ((uint32_t)0x00000400)        /* Channel 3 Half Transfer flag */
#define  DMA_ISR_TEIF3                       ((uint32_t)0x00000800)        /* Channel 3 Transfer Error flag */
#define  DMA_ISR_GIF4                        ((uint32_t)0x00001000)        /* Channel 4 Global interrupt flag */
#define  DMA_ISR_TCIF4                       ((uint32_t)0x00002000)        /* Channel 4 Transfer Complete flag */
#define  DMA_ISR_HTIF4                       ((uint32_t)0x00004000)        /* Channel 4 Half Transfer flag */
#define  DMA_ISR_TEIF4                       ((uint32_t)0x00008000)        /* Channel 4 Transfer Error flag */
#define  DMA_ISR_GIF5                        ((uint32_t)0x00010000)        /* Channel 5 Global interrupt flag */
#define  DMA_ISR_TCIF5                       ((uint32_t)0x00020000)        /* Channel 5 Transfer Complete flag */
#define  DMA_ISR_HTIF5                       ((uint32_t)0x00040000)        /* Channel 5 Half Transfer flag */
#define  DMA_ISR_TEIF5                       ((uint32_t)0x00080000)        /* Channel 5 Transfer Error flag */
#define  DMA_ISR_GIF6                        ((uint32_t)0x00100000)        /* Channel 6 Global interrupt flag */
#define  DMA_ISR_TCIF6                       ((uint32_t)0x00200000)        /* Channel 6 Transfer Complete flag */
#define  DMA_ISR_HTIF6                       ((uint32_t)0x00400000)        /* Channel 6 Half Transfer flag */
#define  DMA_ISR_TEIF6                       ((uint32_t)0x00800000)        /* Channel 6 Transfer Error flag */
#define  DMA_ISR_GIF7                        ((uint32_t)0x01000000)        /* Channel 7 Global interrupt flag */
#define  DMA_ISR_TCIF7                       ((uint32_t)0x02000000)        /* Channel 7 Transfer Complete flag */
#define  DMA_ISR_HTIF7                       ((uint32_t)0x04000000)        /* Channel 7 Half Transfer flag */
#define  DMA_ISR_TEIF7                       ((uint32_t)0x08000000)        /* Channel 7 Transfer Error flag */