![]() |
Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
|
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с регистрами общего назначения. Подробнее...
Структуры данных | |
struct | CONTROL_MUX_REGISTER |
Регистр мультиплексора прерываний Подробнее... | |
struct | CMN_REG_T |
Структура для доступа к регистрам общего назначения Подробнее... | |
struct | NVIC_T |
Структура для доступа к регистрам управления прерываниями Подробнее... | |
struct | SYSTICK_T |
Структура для доступа к регистрам системного таймера Подробнее... | |
struct | SCB_T |
Структура для доступа к регистрам системного контроля Подробнее... | |
Макросы | |
#define | CLK_INIT_PAUSE for(int i=0; i<100000; i++) |
#define | CLK_FPU_PAUSE for(int i=0; i<100; i++) |
#define | CLK_UART_PAUSE for(int i=0; i<10000; i++) |
#define | INTR_SRC_ENABLE ((uint32_t)(1<<31)) |
Макросы для INTR_MUX_CTRL. Подробнее... | |
#define | NUM_INTR_VECTOR(x) ((uint32_t)((x&0x1F)<<0)) |
#define | EXT_MEM_READ_CYCLES(x) ((uint32_t)(((x) & 0x7) << 0)) |
Макросы для регистра EXTMEM_CTRL. Подробнее... | |
#define | EXT_MEM_WRITE_CYCLES(x) ((uint32_t)(((x) & 0x7) << 3)) |
#define | EXT_MEM_TURN_CYCLES(x) ((uint32_t)(((x) & 0x7) << 6)) |
#define | EXT_MEM_SIZE ((uint32_t)(1 << 16)) |
#define | EXT_MEM_EDAC ((uint32_t)(1 << 24)) |
#define | EXT_MEM_SIZE_FORCE ((uint32_t)(1 << 30)) |
#define | EXT_MEM_EDAC_FORCE ((uint32_t)(1 << 31)) |
#define | EDAC_En_1 ((uint32_t)(1 << 0)) |
Макросы для регистра EDAC_CTRL. Подробнее... | |
#define | EDAC_En_2 ((uint32_t)(1 << 1)) |
#define | EDAC_WR_DIS_1 ((uint32_t)(1 << 2)) |
#define | EDAC_WR_DIS_2 ((uint32_t)(1 << 3)) |
#define | INTMEM_CERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM_CERR_CNT. Подробнее... | |
#define | INTMEM_FERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM_FERR_CNT. Подробнее... | |
#define | EXTMEM_CERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра EXTMEM_CERR_CNT. Подробнее... | |
#define | EXTMEM_FERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра EXTMEM_FERR_CNT. Подробнее... | |
#define | SPACEWIRE_CLK_CTRL(x) ((uint32_t)(x << 16)) |
Макросы для регистра SPACEWIRE_CLK_CTRL. Подробнее... | |
#define | NTMEM2_CERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM2_CERR_CNT. Подробнее... | |
#define | INTMEM2_FERR_CNT(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM2_FERR_CNT. Подробнее... | |
#define | PWR_CTRL_CLK(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра PWR_CTRL_CLK Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются Подробнее... | |
#define | PWR_CTRL_RST(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра PWR_CTRL_RST Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются Подробнее... | |
#define | EXT_MEM_READ_CYCLES_2_4(x) ((uint32_t)(((x) & 0x7) << 0)) |
Макросы для регистра EXTMEM_CTRL(Chip Select 2-4) Подробнее... | |
#define | EXT_MEM_WRITE_CYCLES_2_4(x) ((uint32_t)(((x) & 0x7) << 3)) |
#define | EXT_MEM_TURN_CYCLES_2_4(x) ((uint32_t)(((x) & 0x7) << 6)) |
#define | EXT_MEM_SIZE_2_4 ((uint32_t)(1 << 16)) |
#define | EXT_MEM_EDAC_2_4 ((uint32_t)(1 << 24)) |
#define | CACHE_HIGH_ADDR(x) ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR. Подробнее... | |
#define | CACHE_HIGH_ADDR_CS2(x) ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR_CS2. Подробнее... | |
#define | CACHE_HIGH_ADDR_CS3(x) ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR_CS3. Подробнее... | |
#define | CACHE_HIGH_ADDR_CS4(x) ((uint32_t)((x&0x7FFFFF) << 3)) |
Макросы для регистра CACHE_HIGH_ADDR_CS4. Подробнее... | |
#define | INTMEM_SCR_RNG_ADDR(x) ((uint32_t)((x&0x1FFF) << 3)) |
Макросы для регистра INTMEM_SCR_RNG_ADDR. Подробнее... | |
#define | INTMEM2_SCR_RNG_ADDR(x) ((uint32_t)((x&0x1FFF) << 3)) |
Макросы для регистра INTMEM2_SCR_RNG_ADDR. Подробнее... | |
#define | INTMEM_SCR_PRD_SCAN(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM_SCR_PRD_SCAN. Подробнее... | |
#define | INTMEM2_SCR_PRD_SCAN(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM2_SCR_PRD_SCAN. Подробнее... | |
#define | INTMEM_SCR_PRD_STOP(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM_SCR_PRD_STOP. Подробнее... | |
#define | INTMEM2_SCR_PRD_STOP(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра INTMEM2_SCR_PRD_STOP. Подробнее... | |
#define | SCRUB_BLK1_EN ((uint32_t)((1<< 0)) |
Макросы для регистра INTMEMS_SCR_MAIN. Подробнее... | |
#define | SCRUB_BLK2_EN ((uint32_t)((1<< 1)) |
#define | SCRUB_BLK1_READY ((uint32_t)((1<< 2)) |
#define | SCRUB_BLK2_READY ((uint32_t)((1<< 2)) |
#define | SCRUB_BLK1_CS_READY(x) ((uint32_t)((x&0xF) << 4)) |
#define | SCRUB_BLK2_CS_READY(x) ((uint32_t)((x&0xF) << 8)) |
#define | DMA_INTR_FLAGS(x) ((uint32_t)(((x) & x&0xFF) << 0)) |
Макросы для регистра DMA_INTR_FLAGS. Подробнее... | |
#define | BIT_FUNC(x) ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра ALT_FUNC_CONTROL. Подробнее... | |
#define | INTMEM_ALIAS(x) ((uint32_t)((x&0x3) << 0)) |
Макросы для регистра ALIAS_CTRL. Подробнее... | |
#define | EXTMEM_ALIAS(x) ((uint32_t)((x&0x3) << 2)) |
#define | EXTMEM_CERR(x) ((uint32_t)((x&0xF) << 0)) |
Макросы для регистра EDAC_REACTION_CTRL. Подробнее... | |
#define | EXTMEM_FERR(x) ((uint32_t)((x&0xF) << 3)) |
#define | INTMEM_CERR(x) ((uint32_t)((x&0xF) << 6)) |
#define | INTMEM_FERR(x) ((uint32_t)((x&0xF) << 9)) |
#define | INTMEM_SCR_CERR(x) ((uint32_t)((x&0xF) << 12)) |
#define | INTMEM_SCR_FERR(x) ((uint32_t)((x&0xF) << 15)) |
#define | CACHE_CRC_ERR(x) ((uint32_t)((x&0xF) << 18)) |
#define | CACHE_ENABLE(x) ((uint32_t)(x<< 0)) |
Макросы для регистра CACHE_MAIN. Подробнее... | |
#define | CACHE_READY(x) ((uint32_t)(x<< 1)) |
#define | NVIC_En_IRQ(X) *((volatile unsigned int *)(0xE000E100 + (X>>5)*4)) = (1<<(X%32)); |
X - вектор прерывания Подробнее... | |
#define | NVIC_Dis_IRQ(X) *((volatile unsigned int *)(0xE000E180 + (X>>5)*4)) = (1<<(X%32)); |
X - вектор прерывания Подробнее... | |
#define | SYST_CTRL_EN ((uint32_t)(1 << 0)) |
Макросы для регистра SYSTICK CTRL. Подробнее... | |
#define | SYST_CTRL_INT_EN ((uint32_t)(1 << 1)) |
#define | SYST_CTRL_CLKSRC_REF ((uint32_t)(0 << 2)) |
#define | SYST_CTRL_CLKSRC_CPU ((uint32_t)(1 << 2)) |
#define | SYST_CTRL_COUNTFL ((uint32_t)(1 << 16)) |
#define | SYST_LOAD(x) ((uint32_t)((x) & 0xFFFFFF)) |
Макросы для регистра SYSTICK LOAD. Подробнее... | |
#define | SYST_VAL(x) ((uint32_t)((x) & 0xFFFFFF)) |
Макросы для регистра SYSTICK VAL. Подробнее... | |
#define | SYST_CALIB_TENMS(x) ((uint32_t)((x) & 0xFFFFFF)) |
Макросы для регистра SYSTICK VAL. Подробнее... | |
#define | SYST_CALIB_SKEW ((uint32_t)(1 << 30)) |
#define | SYST_CALIB_NOREF ((uint32_t)(1 << 31)) |
#define | SCB_CPUID_IMP(x) ((uint32_t)(((x) >> 0) & 0xF)) |
Макросы для регистра SCB CPUID. Подробнее... | |
#define | SCB_CPUID_VAR(x) ((uint32_t)(((x) >> 4) & 0xFFF)) |
#define | SCB_CPUID_CONST(x) ((uint32_t)(((x) >> 16) & 0xF)) |
#define | SCB_CPUID_PRTN(x) ((uint32_t)(((x) >> 20) & 0xF)) |
#define | SCB_CPUID_REV(x) ((uint32_t)(((x) >> 24) & 0xFF)) |
#define | SCB_ICSR_VECTACTIVE(x) ((uint32_t)(((x) >> 0) & x1F)) |
Макросы для регистра SCB ICSR. Подробнее... | |
#define | SCB_ICSR_VECTPENDING(x) ((uint32_t)(((x) >> 12) & 0x1F)) |
#define | SCB_ICSR_ISRPENDING ((uint32_t)(1 << 22)) |
#define | SCB_ICSR_PENDSTCLR ((uint32_t)(1 << 25)) |
#define | SCB_ICSR_PENDSTSET ((uint32_t)(1 << 26)) |
#define | SCB_ICSR_PENDSVCLR ((uint32_t)(1 << 27)) |
#define | SCB_ICSR_PENDSVSET ((uint32_t)(1 << 28)) |
#define | SCB_ICSR_NMIPENDSET ((uint32_t)(1 << 31)) |
#define | SCB_AIRCR_VECTKEY ((uint32_t)((0x05FA) << 16)) |
Макросы для регистра SCB AIRCR. Подробнее... | |
#define | SCB_AIRCR_ENDIANESS ((uint32_t)(1 << 15)) |
#define | SCB_AIRCR_SYSRESETREQ ((uint32_t)(1 << 2)) |
#define | SCB_AIRCR_VECTCLRACTIVE ((uint32_t)(0 << 1)) |
#define | SCB_SCR_SEVONPEND ((uint32_t)(1 << 4)) |
Макросы для регистра SCB SCR. Подробнее... | |
#define | SCB_SCR_SLEEPDEEP ((uint32_t)(1 << 2)) |
#define | SCB_SCR_SLEEPONEXIT ((uint32_t)(1 << 1)) |
#define | SCB_SHPR2_PRI_11(x) ((uint32_t)(((x) & 0x3) << 30)) |
Макросы для регистра SCB SHPR2. Подробнее... | |
#define | SCB_SHPR3_PRI_14(x) ((uint32_t)(((x) & 0x3) << 22)) |
Макросы для регистра SCB SHPR3. Подробнее... | |
#define | SCB_SHPR3_PRI_15(x) ((uint32_t)(((x) & 0x3) << 30)) |
#define | PORT_A_ALTFUNC 0 |
Макросы для регистра ALTFUNC_CTRL. Подробнее... | |
#define | PORT_B_ALTFUNC 1 |
#define | PORT_C_ALTFUNC 2 |
#define | PORT_D_ALTFUNC 3 |
#define | PORT_E_ALTFUNC 4 |
#define | PORT_F_ALTFUNC 5 |
#define | PORT_G_ALTFUNC 6 |
#define | PORT_H_ALTFUNC 7 |
#define | PORT_I_ALTFUNC 8 |
#define | ALTFUNC_CTRL_EXTMEM_EDAC_CERR_EN ((uint32_t)(1 << 0)) |
#define | ALTFUNC_CTRL_EXTMEM_EDAC_FERR_EN ((uint32_t)(1 << 1)) |
#define | ALTFUNC_CTRL_INTMEM_EDAC_CERR_EN ((uint32_t)(1 << 2)) |
#define | ALTFUNC_CTRL_INTMEM_EDAC_CERR_2_EN ((uint32_t)(1 << 3)) |
#define | ALTFUNC_CTRL_INTMEM_EDAC_FERR_2_EN ((uint32_t)(1 << 4)) |
#define | ALTFUNC_CTRL_BITMASK ((uint32_t)(0x1F << 0)) |
#define | SET_ALTFUNC(PORT, BIT, FUNC) CMN_REG->ALT_FUNCTION_CTRL[PORT] = (CMN_REG->ALT_FUNCTION_CTRL[PORT] & (~(3 << (2 * BIT)))) | (FUNC << (2 * BIT)) |
#define | MKPD_CLK_CTRL_TX(x) ((uint32_t)((x) & 0xFF) << 0) |
Макросы для регистра MKPD_CLK_CTRL. Подробнее... | |
#define | MKPD_CLK_CTRL_RX(x) ((uint32_t)((x) & 0xFF) << 8) |
#define | MKPD_CLK_SPW_CLK_EN ((uint32_t)(1 << 16)) |
Перечисления | |
enum | IRQn_T { Watchdog = 0, Timer1 = 1, Timer2 = 2, Timer3 = 3, Timer4 = 4, GPIOA = 8, GPIOB = 9, GPIOC = 10, GPIOD = 11, GPIOE = 12, GPIOF = 13, GPIOG = 14, GPIOH = 15, GPIOI = 16, UART_1 = 24, UART_2 = 25, UART_3 = 26, UART_4 = 27, UART_5 = 28, UART_6 = 29, SPI_1 = 32, SPI_2 = 33, Spacewire1 = 36, Spacewire2 = 37, MKPD1_NUM = 40, MKPD2_NUM = 41, MKPD3_NUM = 42, MKPD4_NUM = 43, TMTX_NUM = 48, TCRX_NUM = 49, I2C_NUM = 50, CAN1_NUM = 52, CAN2_NUM = 53, EDAC = 56, RES_Q_NUM = 60, RESERVE_P1_NUM = 64, RESERVE_P2_NUM = 65, RESERVE_P3_NUM = 66, RESERVE_P4_NUM = 67, DMA_SPI_1_TX = 96, DMA_SPI_1_RX = 97, DMA_SPI_2_TX = 98, DMA_SPI_2_RX = 99, DMA_UART_1_TX = 100, DMA_UART_1_RX = 101, DMA_UART_2_TX = 102, DMA_UART_2_RX = 103, DMA_UART_3_TX = 104, DMA_UART_3_RX = 105, DMA_UART_4_TX = 106, DMA_UART_4_RX = 107, DMA_UART_5_TX = 108, DMA_UART_5_RX = 109, DMA_UART_6_TX = 110, DMA_UART_6_RX = 111 } |
Номера прерываний в регистрах NVIC. Подробнее... | |
enum | CTRL_T { SPI_1_CTRL_NUM = 0, SPI_2_CTRL_NUM = 1, UART_1_CTRL_NUM = 2, UART_2_CTRL_NUM = 3, UART_3_CTRL_NUM = 4, UART_4_CTRL_NUM = 5, Spacewire_1_CTRL_NUM = 6, Spacewire_2_CTRL_NUM = 7, MKPD1_CTRL_NUM = 8, MKPD2_CTRL_NUM = 9, MKPD3_CTRL_NUM = 10, MKPD4_CTRL_NUM = 11, TMTX_CTRL_NUM = 12, TCRX_CTRL_NUM = 13, FPU_CTRL_NUM = 14, RES_P1_CTRL_NUM =15, RES_P2_CTRL_NUM =16, RES_P3_CTRL_NUM =17, RES_P4_CTRL_NUM =18, RES_CTRL_NUM =19, CAN_1_CTRL_NUM =20, CAN_2_CTRL_NUM =21, UART_5_CTRL_NUM = 22, UART_6_CTRL_NUM = 23, I2C_CTRL_NUM =24 } |
Номера модулей в регистрах PWR_CLK_CTRL и PWR_RST_CTRL Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются Подробнее... | |
Функции | |
void | NVIC_EnableIRQ (IRQn_T IRQn, uint32_t vec) |
Разрешение прерывания Подробнее... | |
void | NVIC_DisableIRQ (uint32_t vec) |
Запрещение прерывания Подробнее... | |
void | PWR_CLK_Enable (CTRL_T CTRLn) |
Подача тактового сигнала на модуль Подробнее... | |
void | PWR_CLK_Disable (CTRL_T CTRLn) |
Отключение тактового сигнала от модуля Подробнее... | |
void | PWR_RST_Disable (CTRL_T CTRLn) |
Вывод модуля из асинхронного сброса Подробнее... | |
void | PWR_RST_Enable (CTRL_T CTRLn) |
Ввод модуля в асинхронный сброс Подробнее... | |
void | SystemInit (void) |
Инициализация микросхемы Подробнее... | |
Переменные | |
const uint32_t | sys_freq |
Системная частота Подробнее... | |
const uint32_t | spw_freq |
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с регистрами общего назначения.
Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.
Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.
Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.
См. определение в файле system.h
#define ALTFUNC_CTRL_BITMASK ((uint32_t)(0x1F << 0)) |
#define ALTFUNC_CTRL_EXTMEM_EDAC_CERR_EN ((uint32_t)(1 << 0)) |
#define ALTFUNC_CTRL_EXTMEM_EDAC_FERR_EN ((uint32_t)(1 << 1)) |
#define ALTFUNC_CTRL_INTMEM_EDAC_CERR_2_EN ((uint32_t)(1 << 3)) |
#define ALTFUNC_CTRL_INTMEM_EDAC_CERR_EN ((uint32_t)(1 << 2)) |
#define ALTFUNC_CTRL_INTMEM_EDAC_FERR_2_EN ((uint32_t)(1 << 4)) |
#define BIT_FUNC | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define CACHE_ENABLE | ( | x | ) | ((uint32_t)(x<< 0)) |
#define CACHE_HIGH_ADDR | ( | x | ) | ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR.
задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит
#define CACHE_HIGH_ADDR_CS2 | ( | x | ) | ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR_CS2.
задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит
#define CACHE_HIGH_ADDR_CS3 | ( | x | ) | ((uint32_t)((x&0x7FFFFF) << 2)) |
Макросы для регистра CACHE_HIGH_ADDR_CS3.
задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит
#define CACHE_HIGH_ADDR_CS4 | ( | x | ) | ((uint32_t)((x&0x7FFFFF) << 3)) |
Макросы для регистра CACHE_HIGH_ADDR_CS4.
задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит
#define CACHE_READY | ( | x | ) | ((uint32_t)(x<< 1)) |
#define DMA_INTR_FLAGS | ( | x | ) | ((uint32_t)(((x) & x&0xFF) << 0)) |
Макросы для регистра DMA_INTR_FLAGS.
[15:0] флаги прерываний DMA, сбрасываются записью 1. [0] – SSP1 TX [1] – SSP1 RX [2] – SSP2 TX [3] – SSP2 RX [4] – UART1 TX [5] – UART1 RX [6] – UART2 TX [7] – UART2 RX [8] – UART3 TX [9] – UART3 RX [10] – UART4 TX [11] – UART4 RX [12] – UART5 TX [13] – UART5 RX [14] – UART6 TX [15] – UART6 RXФлаги прерываний
#define EDAC_En_1 ((uint32_t)(1 << 0)) |
#define EDAC_En_2 ((uint32_t)(1 << 1)) |
#define EDAC_WR_DIS_1 ((uint32_t)(1 << 2)) |
#define EDAC_WR_DIS_2 ((uint32_t)(1 << 3)) |
#define EXT_MEM_EDAC ((uint32_t)(1 << 24)) |
#define EXT_MEM_EDAC_2_4 ((uint32_t)(1 << 24)) |
#define EXT_MEM_EDAC_FORCE ((uint32_t)(1 << 31)) |
#define EXT_MEM_READ_CYCLES | ( | x | ) | ((uint32_t)(((x) & 0x7) << 0)) |
#define EXT_MEM_READ_CYCLES_2_4 | ( | x | ) | ((uint32_t)(((x) & 0x7) << 0)) |
#define EXT_MEM_SIZE ((uint32_t)(1 << 16)) |
#define EXT_MEM_SIZE_2_4 ((uint32_t)(1 << 16)) |
#define EXT_MEM_SIZE_FORCE ((uint32_t)(1 << 30)) |
#define EXT_MEM_TURN_CYCLES | ( | x | ) | ((uint32_t)(((x) & 0x7) << 6)) |
#define EXT_MEM_TURN_CYCLES_2_4 | ( | x | ) | ((uint32_t)(((x) & 0x7) << 6)) |
#define EXT_MEM_WRITE_CYCLES | ( | x | ) | ((uint32_t)(((x) & 0x7) << 3)) |
#define EXT_MEM_WRITE_CYCLES_2_4 | ( | x | ) | ((uint32_t)(((x) & 0x7) << 3)) |
#define EXTMEM_ALIAS | ( | x | ) | ((uint32_t)((x&0x3) << 2)) |
алиасинг для внешней памяти имеет значение только если INTMEM_ALIAS=0: 0 — алиасинг внешней памяти по Chip Select 1 (0x0800_0000 — 0x08FF_FFFF); 1 — алиасинг внешней памяти по Chip Select 2 (0x0900_0000 — 0x09FF_FFFF); 2 — алиасинг внешней памяти по Chip Select 3 (0x0A00_0000 — 0x0AFF_FFFF); 3 — алиасинг внешней памяти по Chip Select 4 (0x0B00_0000 — 0x0BFF_FFFF).
#define EXTMEM_CERR | ( | x | ) | ((uint32_t)((x&0xF) << 0)) |
#define EXTMEM_CERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define EXTMEM_FERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM2_FERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM2_SCR_PRD_SCAN | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM2_SCR_PRD_STOP | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM2_SCR_RNG_ADDR | ( | x | ) | ((uint32_t)((x&0x1FFF) << 3)) |
#define INTMEM_ALIAS | ( | x | ) | ((uint32_t)((x&0x3) << 0)) |
#define INTMEM_CERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM_FERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM_SCR_CERR | ( | x | ) | ((uint32_t)((x&0xF) << 12)) |
#define INTMEM_SCR_FERR | ( | x | ) | ((uint32_t)((x&0xF) << 15)) |
#define INTMEM_SCR_PRD_SCAN | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM_SCR_PRD_STOP | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define INTMEM_SCR_RNG_ADDR | ( | x | ) | ((uint32_t)((x&0x1FFF) << 3)) |
#define INTR_SRC_ENABLE ((uint32_t)(1<<31)) |
#define MKPD_CLK_CTRL_RX | ( | x | ) | ((uint32_t)((x) & 0xFF) << 8) |
#define MKPD_CLK_CTRL_TX | ( | x | ) | ((uint32_t)((x) & 0xFF) << 0) |
#define MKPD_CLK_SPW_CLK_EN ((uint32_t)(1 << 16)) |
#define NTMEM2_CERR_CNT | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
#define NUM_INTR_VECTOR | ( | x | ) | ((uint32_t)((x&0x1F)<<0)) |
#define NVIC_Dis_IRQ | ( | X | ) | *((volatile unsigned int *)(0xE000E180 + (X>>5)*4)) = (1<<(X%32)); |
#define NVIC_En_IRQ | ( | X | ) | *((volatile unsigned int *)(0xE000E100 + (X>>5)*4)) = (1<<(X%32)); |
#define PORT_A_ALTFUNC 0 |
#define PWR_CTRL_CLK | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра PWR_CTRL_CLK Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются
Включение тактовых частот для различных блоков. (1 – вкл).
#define PWR_CTRL_RST | ( | x | ) | ((uint32_t)((x&0xFFFFFFFF) << 0)) |
Макросы для регистра PWR_CTRL_RST Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются
Включение путем вывода из асинхронного сброса для различных блоков. (1 – вкл)
#define SCB_AIRCR_ENDIANESS ((uint32_t)(1 << 15)) |
#define SCB_AIRCR_SYSRESETREQ ((uint32_t)(1 << 2)) |
#define SCB_AIRCR_VECTCLRACTIVE ((uint32_t)(0 << 1)) |
#define SCB_AIRCR_VECTKEY ((uint32_t)((0x05FA) << 16)) |
#define SCB_CPUID_CONST | ( | x | ) | ((uint32_t)(((x) >> 16) & 0xF)) |
#define SCB_CPUID_IMP | ( | x | ) | ((uint32_t)(((x) >> 0) & 0xF)) |
#define SCB_CPUID_PRTN | ( | x | ) | ((uint32_t)(((x) >> 20) & 0xF)) |
#define SCB_CPUID_REV | ( | x | ) | ((uint32_t)(((x) >> 24) & 0xFF)) |
#define SCB_CPUID_VAR | ( | x | ) | ((uint32_t)(((x) >> 4) & 0xFFF)) |
#define SCB_ICSR_ISRPENDING ((uint32_t)(1 << 22)) |
#define SCB_ICSR_NMIPENDSET ((uint32_t)(1 << 31)) |
#define SCB_ICSR_PENDSTCLR ((uint32_t)(1 << 25)) |
#define SCB_ICSR_PENDSTSET ((uint32_t)(1 << 26)) |
#define SCB_ICSR_PENDSVCLR ((uint32_t)(1 << 27)) |
#define SCB_ICSR_PENDSVSET ((uint32_t)(1 << 28)) |
#define SCB_ICSR_VECTACTIVE | ( | x | ) | ((uint32_t)(((x) >> 0) & x1F)) |
#define SCB_ICSR_VECTPENDING | ( | x | ) | ((uint32_t)(((x) >> 12) & 0x1F)) |
#define SCB_SCR_SEVONPEND ((uint32_t)(1 << 4)) |
#define SCB_SCR_SLEEPDEEP ((uint32_t)(1 << 2)) |
#define SCB_SCR_SLEEPONEXIT ((uint32_t)(1 << 1)) |
#define SCB_SHPR2_PRI_11 | ( | x | ) | ((uint32_t)(((x) & 0x3) << 30)) |
#define SCB_SHPR3_PRI_14 | ( | x | ) | ((uint32_t)(((x) & 0x3) << 22)) |
#define SCB_SHPR3_PRI_15 | ( | x | ) | ((uint32_t)(((x) & 0x3) << 30)) |
#define SCRUB_BLK1_CS_READY | ( | x | ) | ((uint32_t)((x&0xF) << 4)) |
#define SCRUB_BLK1_EN ((uint32_t)((1<< 0)) |
#define SCRUB_BLK1_READY ((uint32_t)((1<< 2)) |
#define SCRUB_BLK2_CS_READY | ( | x | ) | ((uint32_t)((x&0xF) << 8)) |
#define SCRUB_BLK2_EN ((uint32_t)((1<< 1)) |
#define SCRUB_BLK2_READY ((uint32_t)((1<< 2)) |
#define SPACEWIRE_CLK_CTRL | ( | x | ) | ((uint32_t)(x << 16)) |
#define SYST_CALIB_NOREF ((uint32_t)(1 << 31)) |
#define SYST_CALIB_SKEW ((uint32_t)(1 << 30)) |
#define SYST_CALIB_TENMS | ( | x | ) | ((uint32_t)((x) & 0xFFFFFF)) |
#define SYST_CTRL_CLKSRC_CPU ((uint32_t)(1 << 2)) |
#define SYST_CTRL_CLKSRC_REF ((uint32_t)(0 << 2)) |
#define SYST_CTRL_COUNTFL ((uint32_t)(1 << 16)) |
#define SYST_CTRL_EN ((uint32_t)(1 << 0)) |
#define SYST_CTRL_INT_EN ((uint32_t)(1 << 1)) |
#define SYST_LOAD | ( | x | ) | ((uint32_t)((x) & 0xFFFFFF)) |
#define SYST_VAL | ( | x | ) | ((uint32_t)((x) & 0xFFFFFF)) |
enum CTRL_T |
Номера модулей в регистрах PWR_CLK_CTRL и PWR_RST_CTRL Расшифровка битовых полей для регистров PWR_CTRL_CLK и PWR_CTRL_RST, каждый бит соответствует включению одного модуля: 0 – SPI_1 13 – Telecommand Decoder (TCRX) 1 – SPI_2 14 – FPU 2 – UART_1 3 – UART_2 4 — UART_3 5 — UART_4 6 – Spacewire_1 7 – Spacewire_2 20 — CAN_1 8 – MKPD1 21 — CAN_2 9 – MKPD2 22 — UART_5 10 – MKPD3 23 — UART_6 11 – MKPD4 24 — I2C 12 – Telemetry Encoder (TMTX) 25-31 – не используются
enum IRQn_T |
Номера прерываний в регистрах NVIC.
void NVIC_DisableIRQ | ( | uint32_t | vec | ) |
void NVIC_EnableIRQ | ( | IRQn_T | IRQn, |
uint32_t | vec | ||
) |
void PWR_CLK_Disable | ( | CTRL_T | CTRLn | ) |
void PWR_CLK_Enable | ( | CTRL_T | CTRLn | ) |
void PWR_RST_Disable | ( | CTRL_T | CTRLn | ) |
void PWR_RST_Enable | ( | CTRL_T | CTRLn | ) |
const uint32_t spw_freq |
См. определение в файле spacewire_test.c строка 34