Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Структуры данных | Макросы
Файл dma.h

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с контроллером прямого доступа к памяти. Подробнее...

#include "types.h"

См. исходные тексты.

Структуры данных

struct  DMA_T
 Структура для доступа к регистрам контроллера DMA. Подробнее...
 
struct  DMA_CHNL_CTRL_T
 Структура управляющих данных Подробнее...
 
struct  DMA_CTRL_T
 Структура для доступа к управлющим данным всех каналов Подробнее...
 

Макросы

#define DMA_CCTRL_STOP   ((uint32_t)(0 << 0))
 Макросы и типы для управляющих данных каналов Подробнее...
 
#define DMA_CCTRL_BASIC   ((uint32_t)(1 << 0))
 
#define DMA_CCTRL_AUTOREQUEST   ((uint32_t)(2 << 0))
 
#define DMA_CCTRL_PINGPONG   ((uint32_t)(3 << 0))
 
#define DMA_CCTRL_MEMSG_PRIM   ((uint32_t)(4 << 0))
 
#define DMA_CCTRL_MEMSG_ALT   ((uint32_t)(5 << 0))
 
#define DMA_CCTRL_PERIPHSG_PRIM   ((uint32_t)(6 << 0))
 
#define DMA_CCTRL_PERIPHSG_ALT   ((uint32_t)(7 << 0))
 
#define DMA_NEXT_USEBURST_EN   ((uint32_t)(1 << 3))
 
#define DMA_NEXT_USEBURST_DIS   ((uint32_t)(0 << 3))
 
#define DMA_N_MINUS_1(n)   ((uint32_t)((n & 0x07FF) << 4))
 
#define DMA_R_POWER(n)   ((uint32_t)((n & 0x000F) << 14))
 
#define DMA_SRC_PROT_CACHE_EN   ((uint32_t)(1 << 18))
 
#define DMA_SRC_PROT_CACHE_DIS   ((uint32_t)(0 << 18))
 
#define DMA_SRC_PROT_BUFFER_EN   ((uint32_t)(1 << 19))
 
#define DMA_SRC_PROT_BUFFER_DIS   ((uint32_t)(0 << 19))
 
#define DMA_SRC_PROT_PRIVILEGE_EN   ((uint32_t)(1 << 20))
 
#define DMA_SRC_PROT_PRIVILEGE_DIS   ((uint32_t)(0 << 20))
 
#define DMA_DST_PROT_CACHE_EN   ((uint32_t)(1 << 21))
 
#define DMA_DST_PROT_CACHE_DIS   ((uint32_t)(0 << 21))
 
#define DMA_DST_PROT_BUFFER_EN   ((uint32_t)(1 << 22))
 
#define DMA_DST_PROT_BUFFER_DIS   ((uint32_t)(0 << 22))
 
#define DMA_DST_PROT_PRIVILEGE_EN   ((uint32_t)(1 << 23))
 
#define DMA_DST_PROT_PRIVILEGE_DIS   ((uint32_t)(0 << 23))
 
#define DMA_SRC_DATA_SIZE_BYTE   ((uint32_t)(0 << 24))
 
#define DMA_SRC_DATA_SIZE_HALFWORD   ((uint32_t)(1 << 24))
 
#define DMA_SRC_DATA_SIZE_WORD   ((uint32_t)(2 << 24))
 
#define DMA_SRC_ADDR_INC_BYTE   ((uint32_t)(0 << 26))
 
#define DMA_SRC_ADDR_INC_HALFWORD   ((uint32_t)(1 << 26))
 
#define DMA_SRC_ADDR_INC_WORD   ((uint32_t)(2 << 26))
 
#define DMA_SRC_ADDR_INC_NULL   ((uint32_t)(3 << 26))
 
#define DMA_DST_DATA_SIZE_BYTE   ((uint32_t)(0 << 28))
 
#define DMA_DST_DATA_SIZE_HALFWORD   ((uint32_t)(1 << 28))
 
#define DMA_DST_DATA_SIZE_WORD   ((uint32_t)(2 << 28))
 
#define DMA_DST_ADDR_INC_BYTE   ((uint32_t)(0 << 30))
 
#define DMA_DST_ADDR_INC_HALFWORD   ((uint32_t)(1 << 30))
 
#define DMA_DST_ADDR_INC_WORD   ((uint32_t)(2 << 30))
 
#define DMA_DST_ADDR_INC_NULL   ((uint32_t)(3 << 30))
 

Подробное описание

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с контроллером прямого доступа к памяти.

Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.

См. определение в файле dma.h

Макросы

§ DMA_CCTRL_AUTOREQUEST

#define DMA_CCTRL_AUTOREQUEST   ((uint32_t)(2 << 0))

Режим работы Авто-запрос. Контроллер автоматически осуществляет запрос на обработку по соответствующему каналу в течение процедуры арбитража

См. определение в файле dma.h строка 65

§ DMA_CCTRL_BASIC

#define DMA_CCTRL_BASIC   ((uint32_t)(1 << 0))

Основной режим работы. Контроллер должен получить новый запрос для окончания цикла DMA, перед этим он должен выполнить процедуру арбитража

См. определение в файле dma.h строка 64

§ DMA_CCTRL_MEMSG_ALT

#define DMA_CCTRL_MEMSG_ALT   ((uint32_t)(5 << 0))

Режим работы scatter-gather с памятью для альтернативной структуры управляющих данных

См. определение в файле dma.h строка 68

§ DMA_CCTRL_MEMSG_PRIM

#define DMA_CCTRL_MEMSG_PRIM   ((uint32_t)(4 << 0))

Режим работы scatter-gather с памятью для первичной структуры управляющих данных

См. определение в файле dma.h строка 67

§ DMA_CCTRL_PERIPHSG_ALT

#define DMA_CCTRL_PERIPHSG_ALT   ((uint32_t)(7 << 0))

Режим работы scatter-gather с периферией для альтернативной структуры управляющих данных

См. определение в файле dma.h строка 70

§ DMA_CCTRL_PERIPHSG_PRIM

#define DMA_CCTRL_PERIPHSG_PRIM   ((uint32_t)(6 << 0))

Режим работы scatter-gather с периферией для первичной структуры управляющих данных

См. определение в файле dma.h строка 69

§ DMA_CCTRL_PINGPONG

#define DMA_CCTRL_PINGPONG   ((uint32_t)(3 << 0))

Режим работы Пинг-понг. Контроллер выполняет цикл DMA используя поочередно две структуры

См. определение в файле dma.h строка 66

§ DMA_CCTRL_STOP

#define DMA_CCTRL_STOP   ((uint32_t)(0 << 0))

Макросы и типы для управляющих данных каналов

Стоп. Cтруктура управляющих данных является неправильной

См. определение в файле dma.h строка 63

§ DMA_DST_ADDR_INC_BYTE

#define DMA_DST_ADDR_INC_BYTE   ((uint32_t)(0 << 30))

Шаг инкремента адреса приемника 8 бит

См. определение в файле dma.h строка 110

§ DMA_DST_ADDR_INC_HALFWORD

#define DMA_DST_ADDR_INC_HALFWORD   ((uint32_t)(1 << 30))

Шаг инкремента адреса приемника 16 бит

См. определение в файле dma.h строка 111

§ DMA_DST_ADDR_INC_NULL

#define DMA_DST_ADDR_INC_NULL   ((uint32_t)(3 << 30))

Без инкремента адреса приемника

См. определение в файле dma.h строка 113

§ DMA_DST_ADDR_INC_WORD

#define DMA_DST_ADDR_INC_WORD   ((uint32_t)(2 << 30))

Шаг инкремента адреса приемника 32 бита

См. определение в файле dma.h строка 112

§ DMA_DST_DATA_SIZE_BYTE

#define DMA_DST_DATA_SIZE_BYTE   ((uint32_t)(0 << 28))

Размерность данных приемника 8 бит

См. определение в файле dma.h строка 106

§ DMA_DST_DATA_SIZE_HALFWORD

#define DMA_DST_DATA_SIZE_HALFWORD   ((uint32_t)(1 << 28))

Размерность данных приемника 16 бит

См. определение в файле dma.h строка 107

§ DMA_DST_DATA_SIZE_WORD

#define DMA_DST_DATA_SIZE_WORD   ((uint32_t)(2 << 28))

Размерность данных приемника 32 бита

См. определение в файле dma.h строка 108

§ DMA_DST_PROT_BUFFER_DIS

#define DMA_DST_PROT_BUFFER_DIS   ((uint32_t)(0 << 22))

Разрешение буферизации при записи в приемник

См. определение в файле dma.h строка 92

§ DMA_DST_PROT_BUFFER_EN

#define DMA_DST_PROT_BUFFER_EN   ((uint32_t)(1 << 22))

Разрешение буферизации при записи в приемник

См. определение в файле dma.h строка 91

§ DMA_DST_PROT_CACHE_DIS

#define DMA_DST_PROT_CACHE_DIS   ((uint32_t)(0 << 21))

Разрешение кеширования при записи в приемник

См. определение в файле dma.h строка 89

§ DMA_DST_PROT_CACHE_EN

#define DMA_DST_PROT_CACHE_EN   ((uint32_t)(1 << 21))

Разрешение кеширования при записи в приемник

См. определение в файле dma.h строка 88

§ DMA_DST_PROT_PRIVILEGE_DIS

#define DMA_DST_PROT_PRIVILEGE_DIS   ((uint32_t)(0 << 23))

Разрешение привелигированного доступа при записи в приемник

См. определение в файле dma.h строка 95

§ DMA_DST_PROT_PRIVILEGE_EN

#define DMA_DST_PROT_PRIVILEGE_EN   ((uint32_t)(1 << 23))

Разрешение привелигированного доступа при записи в приемник

См. определение в файле dma.h строка 94

§ DMA_N_MINUS_1

#define DMA_N_MINUS_1 (   n)    ((uint32_t)((n & 0x07FF) << 4))

Общее количество передач DMA (n+1), из которых состоит цикл DMA

См. определение в файле dma.h строка 76

§ DMA_NEXT_USEBURST_DIS

#define DMA_NEXT_USEBURST_DIS   ((uint32_t)(0 << 3))

Контроллер не изменяет значение chnl_useburst_set[C]

См. определение в файле dma.h строка 74

§ DMA_NEXT_USEBURST_EN

#define DMA_NEXT_USEBURST_EN   ((uint32_t)(1 << 3))

Контроллер изменяет значение chnl_useburst_set[C] в состояние «1»

См. определение в файле dma.h строка 73

§ DMA_R_POWER

#define DMA_R_POWER (   n)    ((uint32_t)((n & 0x000F) << 14))

Количество передач DMA (2^n) до выполнения контроллером процедуры арбитража

См. определение в файле dma.h строка 77

§ DMA_SRC_ADDR_INC_BYTE

#define DMA_SRC_ADDR_INC_BYTE   ((uint32_t)(0 << 26))

Шаг инкремента адреса источника 8 бит

См. определение в файле dma.h строка 101

§ DMA_SRC_ADDR_INC_HALFWORD

#define DMA_SRC_ADDR_INC_HALFWORD   ((uint32_t)(1 << 26))

Шаг инкремента адреса источника 16 бит

См. определение в файле dma.h строка 102

§ DMA_SRC_ADDR_INC_NULL

#define DMA_SRC_ADDR_INC_NULL   ((uint32_t)(3 << 26))

Без инкремента адреса источника

См. определение в файле dma.h строка 104

§ DMA_SRC_ADDR_INC_WORD

#define DMA_SRC_ADDR_INC_WORD   ((uint32_t)(2 << 26))

Шаг инкремента адреса источника 32 бита

См. определение в файле dma.h строка 103

§ DMA_SRC_DATA_SIZE_BYTE

#define DMA_SRC_DATA_SIZE_BYTE   ((uint32_t)(0 << 24))

Размерность данных источника 8 бит

См. определение в файле dma.h строка 97

§ DMA_SRC_DATA_SIZE_HALFWORD

#define DMA_SRC_DATA_SIZE_HALFWORD   ((uint32_t)(1 << 24))

Размерность данных источника 16 бит

См. определение в файле dma.h строка 98

§ DMA_SRC_DATA_SIZE_WORD

#define DMA_SRC_DATA_SIZE_WORD   ((uint32_t)(2 << 24))

Размерность данных источника 32 бита

См. определение в файле dma.h строка 99

§ DMA_SRC_PROT_BUFFER_DIS

#define DMA_SRC_PROT_BUFFER_DIS   ((uint32_t)(0 << 19))

Разрешение буферизации при считывании из источника

См. определение в файле dma.h строка 83

§ DMA_SRC_PROT_BUFFER_EN

#define DMA_SRC_PROT_BUFFER_EN   ((uint32_t)(1 << 19))

Разрешение буферизации при считывании из источника

См. определение в файле dma.h строка 82

§ DMA_SRC_PROT_CACHE_DIS

#define DMA_SRC_PROT_CACHE_DIS   ((uint32_t)(0 << 18))

Разрешение кеширования при считывании из источника

См. определение в файле dma.h строка 80

§ DMA_SRC_PROT_CACHE_EN

#define DMA_SRC_PROT_CACHE_EN   ((uint32_t)(1 << 18))

Разрешение кеширования при считывании из источника

См. определение в файле dma.h строка 79

§ DMA_SRC_PROT_PRIVILEGE_DIS

#define DMA_SRC_PROT_PRIVILEGE_DIS   ((uint32_t)(0 << 20))

Разрешение привелигированного доступа при считывании из источника

См. определение в файле dma.h строка 86

§ DMA_SRC_PROT_PRIVILEGE_EN

#define DMA_SRC_PROT_PRIVILEGE_EN   ((uint32_t)(1 << 20))

Разрешение привелигированного доступа при считывании из источника

См. определение в файле dma.h строка 85