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

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

#include "chip_5023BC016.h"
#include "types.h"

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

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

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

Макросы

§ ALTFUNC_CTRL_BITMASK

#define ALTFUNC_CTRL_BITMASK   ((uint32_t)(0x1F << 0))

альтернативная функция маска

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

§ ALTFUNC_CTRL_EXTMEM_EDAC_CERR_EN

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

альтернативная функция MKPD4_TX/GPIOF[14]

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

§ ALTFUNC_CTRL_EXTMEM_EDAC_FERR_EN

#define ALTFUNC_CTRL_EXTMEM_EDAC_FERR_EN   ((uint32_t)(1 << 1))

альтернативная функция MKPD4_nTX/GPIOF[15]

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

§ ALTFUNC_CTRL_INTMEM_EDAC_CERR_2_EN

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

альтернативная функция SW_SOUT[1]/GPIOG[10]

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

§ ALTFUNC_CTRL_INTMEM_EDAC_CERR_EN

#define ALTFUNC_CTRL_INTMEM_EDAC_CERR_EN   ((uint32_t)(1 << 2))

альтернативная функция MKPD4_TXEN_A/GPIOG[0]

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

§ ALTFUNC_CTRL_INTMEM_EDAC_FERR_2_EN

#define ALTFUNC_CTRL_INTMEM_EDAC_FERR_2_EN   ((uint32_t)(1 << 4))

альтернативная функция SW_DOUT[1]/GPIOG[11]

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

§ BIT_FUNC

#define BIT_FUNC (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра ALT_FUNC_CONTROL.

период сканирования заданной области скраббером в тактах.0 - сканирует постоянно.

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

§ CACHE_CRC_ERR

#define CACHE_CRC_ERR (   x)    ((uint32_t)((x&0xF) << 18))

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

§ CACHE_ENABLE

#define CACHE_ENABLE (   x)    ((uint32_t)(x<< 0))

Макросы для регистра CACHE_MAIN.

1 - запрос на включение, инициализацию; 0 - выключен

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

§ CACHE_HIGH_ADDR

#define CACHE_HIGH_ADDR (   x)    ((uint32_t)((x&0x7FFFFF) << 2))

Макросы для регистра CACHE_HIGH_ADDR.

задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит

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

§ CACHE_HIGH_ADDR_CS2

#define CACHE_HIGH_ADDR_CS2 (   x)    ((uint32_t)((x&0x7FFFFF) << 2))

Макросы для регистра CACHE_HIGH_ADDR_CS2.

задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит

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

§ CACHE_HIGH_ADDR_CS3

#define CACHE_HIGH_ADDR_CS3 (   x)    ((uint32_t)((x&0x7FFFFF) << 2))

Макросы для регистра CACHE_HIGH_ADDR_CS3.

задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит

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

§ CACHE_HIGH_ADDR_CS4

#define CACHE_HIGH_ADDR_CS4 (   x)    ((uint32_t)((x&0x7FFFFF) << 3))

Макросы для регистра CACHE_HIGH_ADDR_CS4.

задает старший адрес в памяти, используемый блоком кэширования. Кэшироваться будут данные, расположенные по адресам между 0 и указанным значением не включительно. При увеличении значения этого поля, происходит переинициализация блока кэширования, при уменьшении значения поля переинициализация не происходит

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

§ CACHE_READY

#define CACHE_READY (   x)    ((uint32_t)(x<< 1))

1 - готов, включен; 0 - нет

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

§ CLK_FPU_PAUSE

#define CLK_FPU_PAUSE   for(int i=0; i<100; i++)

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

§ CLK_INIT_PAUSE

#define CLK_INIT_PAUSE   for(int i=0; i<100000; i++)

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

§ CLK_UART_PAUSE

#define CLK_UART_PAUSE   for(int i=0; i<10000; i++)

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

§ DMA_INTR_FLAGS

#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Флаги прерываний

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

§ EDAC_En_1

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

Макросы для регистра EDAC_CTRL.

Включение режима исправления единичных и обнаружения неисправимых ошибок во внутренней памяти блока 1.

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

§ EDAC_En_2

#define EDAC_En_2   ((uint32_t)(1 << 1))

Включение режима исправления единичных и обнаружения неисправимых ошибок во внутренней памяти блока 2

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

§ EDAC_WR_DIS_1

#define EDAC_WR_DIS_1   ((uint32_t)(1 << 2))

Отключение записи битов EDAC для блока памяти 1

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

§ EDAC_WR_DIS_2

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

Отключение записи битов EDAC для блока памяти 2

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

§ EXT_MEM_EDAC

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

Включение блока исправления ошибок внешней памяти по Chip Select 1. Значение 0 – блок исправления ошибок не используется, 1 – блок исправления ошибок включен. Имеет значение, только если бит EDAC_FORCE выставлен в 1

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

§ EXT_MEM_EDAC_2_4

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

для внешней памяти 0 - выключен; 1 — включен

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

§ EXT_MEM_EDAC_FORCE

#define EXT_MEM_EDAC_FORCE   ((uint32_t)(1 << 31))

Если поле имеет значение 1, использование блока исправления ошибок по Chip Select 1 определяется полем EDAC, иначе определяется значением внешнего вывода EXTMEM_EDAC_EN

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

§ EXT_MEM_READ_CYCLES

#define EXT_MEM_READ_CYCLES (   x)    ((uint32_t)(((x) & 0x7) << 0))

Макросы для регистра EXTMEM_CTRL.

количество системных тактов, за время которых происходит операция чтения из внешней памяти

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

§ EXT_MEM_READ_CYCLES_2_4

#define EXT_MEM_READ_CYCLES_2_4 (   x)    ((uint32_t)(((x) & 0x7) << 0))

Макросы для регистра EXTMEM_CTRL(Chip Select 2-4)

количество системных тактов, за время которых происходит операция чтения из внешней памяти. Значение 0 – 1 такт, значение 1 - 2 такта,... значение 7 - 8 тактов

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

§ EXT_MEM_SIZE

#define EXT_MEM_SIZE   ((uint32_t)(1 << 16))

Выбор режима разрядности внешней памяти по Chip Select 1. Значение 0 – 8-битная шина данных, значение 1 – 16-битная шина данных. Имеет значение, только если бит SIZE_FORCE выставлен в 1

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

§ EXT_MEM_SIZE_2_4

#define EXT_MEM_SIZE_2_4   ((uint32_t)(1 << 16))

0 - 8-битный режим; 1 - 16-битный режим

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

§ EXT_MEM_SIZE_FORCE

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

Если поле имеет значение 1, разрядность шины данных внешней памяти по Chip Select 1 определяется полем Size, иначе определяется значением внешнего вывода EXTMEM_CFGSIZE

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

§ EXT_MEM_TURN_CYCLES

#define EXT_MEM_TURN_CYCLES (   x)    ((uint32_t)(((x) & 0x7) << 6))

пауза в системных тактах, между операцией чтения и записи, и наоборот

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

§ EXT_MEM_TURN_CYCLES_2_4

#define EXT_MEM_TURN_CYCLES_2_4 (   x)    ((uint32_t)(((x) & 0x7) << 6))

Turn_cycles величина задержки Chip Select (сигнал CEN) в тактах системной частоты, которая приводит к паузе перед каждой операцией записи или чтения. Значение 0 – нет задержки, значение 1 - 1 такт задержки,... значение 7 - 7 тактов задержки

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

§ EXT_MEM_WRITE_CYCLES

#define EXT_MEM_WRITE_CYCLES (   x)    ((uint32_t)(((x) & 0x7) << 3))

количество системных тактов, за время которых происходит операция записи во внешнюю память

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

§ EXT_MEM_WRITE_CYCLES_2_4

#define EXT_MEM_WRITE_CYCLES_2_4 (   x)    ((uint32_t)(((x) & 0x7) << 3))

количество системных тактов, за время которых происходит операция записи во внешнюю память. Значение 0 – 1 такт, значение 1 - 2 такта,... значение 7 - 8 тактов

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

§ EXTMEM_ALIAS

#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).

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

§ EXTMEM_CERR

#define EXTMEM_CERR (   x)    ((uint32_t)((x&0xF) << 0))

Макросы для регистра EDAC_REACTION_CTRL.

Реакции на соответствующие события: 0 — нет реакции; 1 — прерывание; 2 — исключение; 3 — сброс всего, исключая дебаг; 4 — сброс всего, включая дебаг; 6-7 — нет реакции.

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

§ EXTMEM_CERR_CNT

#define EXTMEM_CERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра EXTMEM_CERR_CNT.

Счетчик исправленных единичных ошибок внешней памяти

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

§ EXTMEM_FERR

#define EXTMEM_FERR (   x)    ((uint32_t)((x&0xF) << 3))

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

§ EXTMEM_FERR_CNT

#define EXTMEM_FERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра EXTMEM_FERR_CNT.

Счетчик неисправимых ошибок внешней памяти

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

§ INTMEM2_FERR_CNT

#define INTMEM2_FERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM2_FERR_CNT.

Счетчик неисправимых ошибок внутренней памяти блока 2.

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

§ INTMEM2_SCR_PRD_SCAN

#define INTMEM2_SCR_PRD_SCAN (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM2_SCR_PRD_SCAN.

период сканирования заданной области скраббером в тактах.0 - сканирует постоянно.

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

§ INTMEM2_SCR_PRD_STOP

#define INTMEM2_SCR_PRD_STOP (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM2_SCR_PRD_STOP.

период прерывания скраббером контроллера памяти, если в контроллере нет пустых транзакций к соответствующему чипу памяти.0 - прерывает сразу.

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

§ INTMEM2_SCR_RNG_ADDR

#define INTMEM2_SCR_RNG_ADDR (   x)    ((uint32_t)((x&0x1FFF) << 3))

Макросы для регистра INTMEM2_SCR_RNG_ADDR.

задает верхнюю границу работы скраббера внутри блока памяти

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

§ INTMEM_ALIAS

#define INTMEM_ALIAS (   x)    ((uint32_t)((x&0x3) << 0))

Макросы для регистра ALIAS_CTRL.

алиасинг для внутренней памяти: 0 — нет алиасинга; 1 — алиасинг только блока 1 (0x2000_0000 — 0x2000_FFFF); 2 — алиасинг только блока 2 (0x2001_0000 — 0x2001_FFFF); 3 — алиасинг обоих блоков (0x2000_0000 — 0x2001_FFFF).

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

§ INTMEM_CERR

#define INTMEM_CERR (   x)    ((uint32_t)((x&0xF) << 6))

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

§ INTMEM_CERR_CNT

#define INTMEM_CERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM_CERR_CNT.

Счетчик исправленных единичных ошибок внутренней памяти блока 1.

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

§ INTMEM_FERR

#define INTMEM_FERR (   x)    ((uint32_t)((x&0xF) << 9))

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

§ INTMEM_FERR_CNT

#define INTMEM_FERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM_FERR_CNT.

Счетчик неисправимых ошибок внутренней памяти блока 1.

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

§ INTMEM_SCR_CERR

#define INTMEM_SCR_CERR (   x)    ((uint32_t)((x&0xF) << 12))

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

§ INTMEM_SCR_FERR

#define INTMEM_SCR_FERR (   x)    ((uint32_t)((x&0xF) << 15))

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

§ INTMEM_SCR_PRD_SCAN

#define INTMEM_SCR_PRD_SCAN (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM_SCR_PRD_SCAN.

период сканирования заданной области скраббером в тактах.0 - сканирует постоянно.

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

§ INTMEM_SCR_PRD_STOP

#define INTMEM_SCR_PRD_STOP (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM_SCR_PRD_STOP.

период прерывания скраббером контроллера памяти, если в контроллере нет пустых транзакций к соответствующему чипу памяти.0 - прерывает сразу.

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

§ INTMEM_SCR_RNG_ADDR

#define INTMEM_SCR_RNG_ADDR (   x)    ((uint32_t)((x&0x1FFF) << 3))

Макросы для регистра INTMEM_SCR_RNG_ADDR.

задает верхнюю границу работы скраббера внутри блока памяти

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

§ INTR_SRC_ENABLE

#define INTR_SRC_ENABLE   ((uint32_t)(1<<31))

Макросы для INTR_MUX_CTRL.

1 – включение источника прерывания

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

§ MKPD_CLK_CTRL_RX

#define MKPD_CLK_CTRL_RX (   x)    ((uint32_t)((x) & 0xFF) << 8)

коэффициента деления тактовой системной частоты, для приемников всех блоков МКПД

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

§ MKPD_CLK_CTRL_TX

#define MKPD_CLK_CTRL_TX (   x)    ((uint32_t)((x) & 0xFF) << 0)

Макросы для регистра MKPD_CLK_CTRL.

коэффициента деления тактовой системной частоты для передатчиков всех блоков МКПД

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

§ MKPD_CLK_SPW_CLK_EN

#define MKPD_CLK_SPW_CLK_EN   ((uint32_t)(1 << 16))

альтернативная функция SW_DOUT[1]/GPIOG[11]

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

§ NTMEM2_CERR_CNT

#define NTMEM2_CERR_CNT (   x)    ((uint32_t)((x&0xFFFFFFFF) << 0))

Макросы для регистра INTMEM2_CERR_CNT.

Счетчик исправленных единичных ошибок внутренней памяти блока 2

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

§ NUM_INTR_VECTOR

#define NUM_INTR_VECTOR (   x)    ((uint32_t)((x&0x1F)<<0))

номер вектора прерываний от 0 до 31, на который направляется соответствующий источник прерываний

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

§ NVIC_Dis_IRQ

#define NVIC_Dis_IRQ (   X)    *((volatile unsigned int *)(0xE000E180 + (X>>5)*4)) = (1<<(X%32));

X - вектор прерывания

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

§ NVIC_En_IRQ

#define NVIC_En_IRQ (   X)    *((volatile unsigned int *)(0xE000E100 + (X>>5)*4)) = (1<<(X%32));

X - вектор прерывания

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

§ PORT_A_ALTFUNC

#define PORT_A_ALTFUNC   0

Макросы для регистра ALTFUNC_CTRL.

альтернативная функция PORT_A

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

§ PORT_B_ALTFUNC

#define PORT_B_ALTFUNC   1

альтернативная функция PORT_B

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

§ PORT_C_ALTFUNC

#define PORT_C_ALTFUNC   2

альтернативная функция PORT_C

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

§ PORT_D_ALTFUNC

#define PORT_D_ALTFUNC   3

альтернативная функция PORT_D

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

§ PORT_E_ALTFUNC

#define PORT_E_ALTFUNC   4

альтернативная функция PORT_E

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

§ PORT_F_ALTFUNC

#define PORT_F_ALTFUNC   5

альтернативная функция PORT_F

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

§ PORT_G_ALTFUNC

#define PORT_G_ALTFUNC   6

альтернативная функция PORT_G

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

§ PORT_H_ALTFUNC

#define PORT_H_ALTFUNC   7

альтернативная функция PORT_H

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

§ PORT_I_ALTFUNC

#define PORT_I_ALTFUNC   8

альтернативная функция PORT_I

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

§ PWR_CTRL_CLK

#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 – вкл).

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

§ PWR_CTRL_RST

#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 – вкл)

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

§ SCB_AIRCR_ENDIANESS

#define SCB_AIRCR_ENDIANESS   ((uint32_t)(1 << 15))

маска для получения эндианности

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

§ SCB_AIRCR_SYSRESETREQ

#define SCB_AIRCR_SYSRESETREQ   ((uint32_t)(1 << 2))

запрос перезагрузки системы

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

§ SCB_AIRCR_VECTCLRACTIVE

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

установить в ноль для запсиси

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

§ SCB_AIRCR_VECTKEY

#define SCB_AIRCR_VECTKEY   ((uint32_t)((0x05FA) << 16))

Макросы для регистра SCB AIRCR.

ключ регистра, необходимо установить для записи

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

§ SCB_CPUID_CONST

#define SCB_CPUID_CONST (   x)    ((uint32_t)(((x) >> 16) & 0xF))

код архитектуры

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

§ SCB_CPUID_IMP

#define SCB_CPUID_IMP (   x)    ((uint32_t)(((x) >> 0) & 0xF))

Макросы для регистра SCB CPUID.

код производителя

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

§ SCB_CPUID_PRTN

#define SCB_CPUID_PRTN (   x)    ((uint32_t)(((x) >> 20) & 0xF))

номер процессора

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

§ SCB_CPUID_REV

#define SCB_CPUID_REV (   x)    ((uint32_t)(((x) >> 24) & 0xFF))

номер ревизии (p) в идентификаторе версии продукта rnpn

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

§ SCB_CPUID_VAR

#define SCB_CPUID_VAR (   x)    ((uint32_t)(((x) >> 4) & 0xFFF))

номер варианта (r) в идентификаторе версии продукта rnpn

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

§ SCB_ICSR_ISRPENDING

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

маска для получения состояния ожидакющего исключения

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

§ SCB_ICSR_NMIPENDSET

#define SCB_ICSR_NMIPENDSET   ((uint32_t)(1 << 31))

установка прерывания NMI

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

§ SCB_ICSR_PENDSTCLR

#define SCB_ICSR_PENDSTCLR   ((uint32_t)(1 << 25))

сброс прерывания от SYSTICK

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

§ SCB_ICSR_PENDSTSET

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

установка прерывания от SYSTICK

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

§ SCB_ICSR_PENDSVCLR

#define SCB_ICSR_PENDSVCLR   ((uint32_t)(1 << 27))

сброс прерывания PendSV

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

§ SCB_ICSR_PENDSVSET

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

установка прерывания PendSV

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

§ SCB_ICSR_VECTACTIVE

#define SCB_ICSR_VECTACTIVE (   x)    ((uint32_t)(((x) >> 0) & x1F))

Макросы для регистра SCB ICSR.

номер активного исключения

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

§ SCB_ICSR_VECTPENDING

#define SCB_ICSR_VECTPENDING (   x)    ((uint32_t)(((x) >> 12) & 0x1F))

номер ожидакющего исключения с самым высоким приоритетом

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

§ SCB_SCR_SEVONPEND

#define SCB_SCR_SEVONPEND   ((uint32_t)(1 << 4))

Макросы для регистра SCB SCR.

выход из режима сна по прерываниям и разрешенным событиям

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

§ SCB_SCR_SLEEPDEEP

#define SCB_SCR_SLEEPDEEP   ((uint32_t)(1 << 2))

установка глубокого сна в качестве режима сна

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

§ SCB_SCR_SLEEPONEXIT

#define SCB_SCR_SLEEPONEXIT   ((uint32_t)(1 << 1))

переход в режим сна после выхода из обработчика прерываний

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

§ SCB_SHPR2_PRI_11

#define SCB_SHPR2_PRI_11 (   x)    ((uint32_t)(((x) & 0x3) << 30))

Макросы для регистра SCB SHPR2.

установка приоритета обработчика SVCall

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

§ SCB_SHPR3_PRI_14

#define SCB_SHPR3_PRI_14 (   x)    ((uint32_t)(((x) & 0x3) << 22))

Макросы для регистра SCB SHPR3.

установка приоритета обработчика PendSV

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

§ SCB_SHPR3_PRI_15

#define SCB_SHPR3_PRI_15 (   x)    ((uint32_t)(((x) & 0x3) << 30))

установка приоритета обработчика SysTick

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

§ SCRUB_BLK1_CS_READY

#define SCRUB_BLK1_CS_READY (   x)    ((uint32_t)((x&0xF) << 4))

отдельные биты готовности скрабберов по каждому Chip Select (четные и нечетные)

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

§ SCRUB_BLK1_EN

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

Макросы для регистра INTMEMS_SCR_MAIN.

RW

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

§ SCRUB_BLK1_READY

#define SCRUB_BLK1_READY   ((uint32_t)((1<< 2))

1 - сообщает о готовности всех скрабберов для соответствующего блока памяти

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

§ SCRUB_BLK2_CS_READY

#define SCRUB_BLK2_CS_READY (   x)    ((uint32_t)((x&0xF) << 8))

отдельные биты готовности скрабберов по каждому Chip Select (четные и нечетные)

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

§ SCRUB_BLK2_EN

#define SCRUB_BLK2_EN   ((uint32_t)((1<< 1))

1 - включает скраббер для соответствуещего блока памяти

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

§ SCRUB_BLK2_READY

#define SCRUB_BLK2_READY   ((uint32_t)((1<< 2))

1 - сообщает о готовности всех скрабберов для соответствующего блока памяти

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

§ SET_ALTFUNC

#define SET_ALTFUNC (   PORT,
  BIT,
  FUNC 
)    CMN_REG->ALT_FUNCTION_CTRL[PORT] = (CMN_REG->ALT_FUNCTION_CTRL[PORT] & (~(3 << (2 * BIT)))) | (FUNC << (2 * BIT))

установить альтернативную функцию

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

§ SPACEWIRE_CLK_CTRL

#define SPACEWIRE_CLK_CTRL (   x)    ((uint32_t)(x << 16))

Макросы для регистра SPACEWIRE_CLK_CTRL.

выбор тактовой частоты физического уровня блоков Spacewire. 0 – тактирование осуществляется с внешнего вывода SW_CLK (PORTH[4]). 1 – тактирование осуществляется системной частотой

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

§ SYST_CALIB_NOREF

#define SYST_CALIB_NOREF   ((uint32_t)(1 << 31))

маска для получения значения бита, определяющего, есть ли у процессора референсный тактовый сигнал

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

§ SYST_CALIB_SKEW

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

маска для получения значения бита, определяющего, задано ли SYST_CALIB_TENMS

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

§ SYST_CALIB_TENMS

#define SYST_CALIB_TENMS (   x)    ((uint32_t)((x) & 0xFFFFFF))

Макросы для регистра SYSTICK VAL.

значение для 10мс (100Hz), с учетом погрешностей системного клока

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

§ SYST_CTRL_CLKSRC_CPU

#define SYST_CTRL_CLKSRC_CPU   ((uint32_t)(1 << 2))

использование процессорного тактового сигнала для таймера

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

§ SYST_CTRL_CLKSRC_REF

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

использование внешнего тактового сигнала для таймера

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

§ SYST_CTRL_COUNTFL

#define SYST_CTRL_COUNTFL   ((uint32_t)(1 << 16))

маска для получения состояния флага, который устанавливается в 1, если таймер достиг 0 с момента последнего чтения этого регистра

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

§ SYST_CTRL_EN

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

Макросы для регистра SYSTICK CTRL.

включение таймера

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

§ SYST_CTRL_INT_EN

#define SYST_CTRL_INT_EN   ((uint32_t)(1 << 1))

включение прерывания таймера

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

§ SYST_LOAD

#define SYST_LOAD (   x)    ((uint32_t)((x) & 0xFFFFFF))

Макросы для регистра SYSTICK LOAD.

значения для загрузки в VAL, если таймер включен и достиг 0

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

§ SYST_VAL

#define SYST_VAL (   x)    ((uint32_t)((x) & 0xFFFFFF))

Макросы для регистра SYSTICK VAL.

текущее значение таймера

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

Перечисления

§ CTRL_T

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 – не используются

Элементы перечислений
SPI_1_CTRL_NUM 

номер модуля таймера общего назначения

SPI_2_CTRL_NUM 

номер модуля сторожевого таймера

UART_1_CTRL_NUM 

номер модуля UART 1

UART_2_CTRL_NUM 

номер модуля UART 2

UART_3_CTRL_NUM 

номер модуля UART 3

UART_4_CTRL_NUM 

номер модуля UART 4

Spacewire_1_CTRL_NUM 

номер модуля SpaceWire 1

Spacewire_2_CTRL_NUM 

номер модуля SpaceWire 2

MKPD1_CTRL_NUM 

номер модуля Manhester 0

MKPD2_CTRL_NUM 

номер модуля Manhester 1

MKPD3_CTRL_NUM 

номер модуля Manhester 2

MKPD4_CTRL_NUM 

номер модуля Manhester 3

TMTX_CTRL_NUM 

номер модуля TMTX

TCRX_CTRL_NUM 

номер модуля TCRX

FPU_CTRL_NUM 

номер модуля FPU

RES_P1_CTRL_NUM 

Резерв

RES_P2_CTRL_NUM 

Резерв

RES_P3_CTRL_NUM 

Резерв

RES_P4_CTRL_NUM 

Резерв

RES_CTRL_NUM 

Резерв

CAN_1_CTRL_NUM 

номер модуля CAN1

CAN_2_CTRL_NUM 

номер модуля CAN2

UART_5_CTRL_NUM 

номер модуля UART 5

UART_6_CTRL_NUM 

номер модуля UART 6

I2C_CTRL_NUM 

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

§ IRQn_T

enum IRQn_T

Номера прерываний в регистрах NVIC.

Элементы перечислений
Watchdog 

номер прерывания Watchdog

Timer1 

номер прерывания Timer1

Timer2 

номер прерывания Timer2

Timer3 

номер прерывания Timer3

Timer4 

номер прерывания Timer4

GPIOA 

номер прерывания GPIO A

GPIOB 

номер прерывания GPIO B

GPIOC 

номер прерывания GPIO C

GPIOD 

номер прерывания GPIO D

GPIOE 

номер прерывания GPIO E

GPIOF 

номер прерывания GPIO F

GPIOG 

номер прерывания GPIO G

GPIOH 

номер прерывания GPIO H

GPIOI 

номер прерывания GPIO I

UART_1 

номер прерывания UART1

UART_2 

номер прерывания UART2

UART_3 

номер прерывания UART3

UART_4 

номер прерывания UART4

UART_5 

номер прерывания UART5

UART_6 

номер прерывания UART6

SPI_1 

номер прерывания SPI 1

SPI_2 

номер прерывания SPI 2

Spacewire1 

номер прерывания Spacewire1

Spacewire2 

номер прерывания Spacewire2

MKPD1_NUM 

номер прерывания MKPD1

MKPD2_NUM 

номер прерывания MKPD2

MKPD3_NUM 

номер прерывания MKPD3

MKPD4_NUM 

номер прерывания MKPD4

TMTX_NUM 

номер прерывания TMTX

TCRX_NUM 

номер прерывания TCRX

I2C_NUM 

номер прерывания I2C

CAN1_NUM 

номер прерывания CAN1

CAN2_NUM 

номер прерывания CAN2

EDAC 

номер прерывания EDAC

RES_Q_NUM 

Резерв

RESERVE_P1_NUM 

Резерв

RESERVE_P2_NUM 

Резерв

RESERVE_P3_NUM 

Резерв

RESERVE_P4_NUM 

Резерв

DMA_SPI_1_TX 

номер прерывания DMA_SPI_1_TX

DMA_SPI_1_RX 

номер прерывания DMA_SPI_1_TX

DMA_SPI_2_TX 

номер прерывания DMA_SPI_2_TX

DMA_SPI_2_RX 

номер прерывания DMA_SPI_2_RX

DMA_UART_1_TX 

номер прерывания DMA_UART_1_TX

DMA_UART_1_RX 

номер прерывания DMA_UART_1_RX

DMA_UART_2_TX 

номер прерывания DMA_UART_2_TX

DMA_UART_2_RX 

номер прерывания DMA_UART_2_RX

DMA_UART_3_TX 

номер прерывания DMA_UART_3_TX

DMA_UART_3_RX 

номер прерывания DMA_UART_3_RX

DMA_UART_4_TX 

номер прерывания DMA_UART_4_TX

DMA_UART_4_RX 

номер прерывания DMA_UART_4_RX

DMA_UART_5_TX 

номер прерывания DMA_UART_5_TX

DMA_UART_5_RX 

номер прерывания DMA_UART_5_RX

DMA_UART_6_TX 

номер прерывания DMA_UART_6_TX

DMA_UART_6_RX 

номер прерывания DMA_UART_6_RX

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

Функции

§ NVIC_DisableIRQ()

void NVIC_DisableIRQ ( uint32_t  vec)

Запрещение прерывания

Аргументы
vec: Номер вектора прерывания
IRQn: Номер прерывания

См. определение в файле system.c строка 347

§ NVIC_EnableIRQ()

void NVIC_EnableIRQ ( IRQn_T  IRQn,
uint32_t  vec 
)

Разрешение прерывания

Аргументы
IRQn: Номер прерывания

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

§ PWR_CLK_Disable()

void PWR_CLK_Disable ( CTRL_T  CTRLn)

Отключение тактового сигнала от модуля

Аргументы
CTRLn: Номер модуля

См. определение в файле system.c строка 328

§ PWR_CLK_Enable()

void PWR_CLK_Enable ( CTRL_T  CTRLn)

Подача тактового сигнала на модуль

Аргументы
CTRLn: Номер модуля

См. определение в файле system.c строка 337

§ PWR_RST_Disable()

void PWR_RST_Disable ( CTRL_T  CTRLn)

Вывод модуля из асинхронного сброса

Аргументы
CTRLn: Номер модуля

См. определение в файле system.c строка 318

§ PWR_RST_Enable()

void PWR_RST_Enable ( CTRL_T  CTRLn)

Ввод модуля в асинхронный сброс

Аргументы
CTRLn: Номер модуля

См. определение в файле system.c строка 309

§ SystemInit()

void SystemInit ( void  )

Инициализация микросхемы

См. определение в файле system.c строка 352

Переменные

§ spw_freq

const uint32_t spw_freq

См. определение в файле spacewire_test.c строка 34

§ sys_freq

const uint32_t sys_freq

Системная частота

См. определение в файле main.c строка 31