Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
tcrx.c
См. документацию.
1 
29 #include "chip_5023BC016.h"
30 #include "system.h"
31 #include "tcrx.h"
32 
33 
34 /*****************************************************************************
35  * Частные функции
36  ****************************************************************************/
37 
38 /*****************************************************************************
39  * Общие функции
40  ****************************************************************************/
41 
43 void TCRX_OpenDescriptor(uint32_t index, uint32_t pointer, uint32_t size)
44 {
45  TCRX->DSCR_TBL[index].DSCR_PTR = pointer;
46  TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE = TCRX_DSC_DSCR_FLAG_SIZE_READY |
47  TCRX_DSC_DSCR_FLAG_SIZE_SIZE( ((size == TCRX_DSCR_MAX_SIZE) ? 0 : size) );
48 }
49 
55 FlagStatus TCRX_Dscr_Ready(uint32_t index)
56 {
57  return (TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE & TCRX_DSC_DSCR_FLAG_SIZE_READY) ? SET : RESET;
58 }
59 
65 uint32_t TCRX_Get_Data_Size(uint32_t index)
66 {
67  uint32_t data_size = TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE & 0x3FF;
68  if (data_size == 0)
69  {
70  return TCRX_DSCR_MAX_SIZE;
71  }
72  else
73  {
74  return data_size;
75  }
76 }
77 
83 FlagStatus TCRX_SOF_Flag(uint32_t index)
84 {
85  return (TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE & TCRX_DSC_DSCR_FLAG_SIZE_SOF) ? SET : RESET;
86 }
87 
93 FlagStatus TCRX_EOF_Flag(uint32_t index)
94 {
95  return (TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE & TCRX_DSC_DSCR_FLAG_SIZE_EOF) ? SET : RESET;
96 }
97 
104 {
105  return (TCRX->DSCR_TBL[index].DSCR_FLAG_SIZE & TCRX_DSC_DSCR_FLAG_SIZE_ERROR) ? SET : RESET;
106 }
107 
112 void TCRX_Set_Current_Descriptor(uint32_t index)
113 {
114  TCRX->DSCR_CURRENT = index;
115 }
116 
122 {
123  return TCRX->DSCR_CURRENT & 0xF;
124 }
125 
126 
131 {
132  TCRX->GLOBAL_ENABLE = TCRX_GLOBAL_ENABLE_EN;
133 }
134 
139 {
140  TCRX->GLOBAL_ENABLE &= ~TCRX_GLOBAL_ENABLE_EN;
141 }
142 
156 void TCRX_Set_Decoder(uint32_t randomizer, uint32_t bch, uint32_t viterbi)
157 {
158  TCRX->CODER_SEL = randomizer | bch | viterbi;
159 }
160 
166 {
167  return (TCRX->PHY_FIFO_OVERFLOW & TCRX_PHY_FIFO_OVERFLOW)? SET : RESET;
168 }
169 
177 void TCRX_Set_Start_Sequence(uint32_t start_seq, uint32_t allow_1_err)
178 {
179  TCRX->START_SEQ = start_seq | allow_1_err;
180 }
181 
187 void TCRX_Set_Tail_Sequence(uint32_t tail_first, uint32_t tail_second)
188 {
189  TCRX->TAIL_SEQ1 = tail_first;
190  TCRX->TAIL_SEQ2 = tail_second;
191 }
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем п...
void TCRX_Set_Start_Sequence(uint32_t start_seq, uint32_t allow_1_err)
Установка значения маркера начала фрейма и разрешения единичной ошибки в маркере
Definition: tcrx.c:177
FlagStatus TCRX_EOF_Flag(uint32_t index)
Возвращает значение флага EOF.
Definition: tcrx.c:93
FlagStatus TCRX_SOF_Flag(uint32_t index)
Возвращает значение флага SOF.
Definition: tcrx.c:83
Этот файл содержит описание адресного пространства микроконтроллера 5023ВС016.
#define TCRX_DSC_DSCR_FLAG_SIZE_READY
Definition: tcrx.h:74
#define TCRX_DSC_DSCR_FLAG_SIZE_EOF
Definition: tcrx.h:72
void TCRX_Enable()
Активация приёма данных
Definition: tcrx.c:130
void TCRX_Disable()
Отключение приёма данных
Definition: tcrx.c:138
FlagStatus
Тип для состояний флагов
Definition: types.h:64
uint32_t TCRX_Get_Data_Size(uint32_t index)
Возвращает количество данных, принятых дескриптором
Definition: tcrx.c:65
#define TCRX_DSC_DSCR_FLAG_SIZE_ERROR
Definition: tcrx.h:73
#define TCRX_PHY_FIFO_OVERFLOW
Макросы для PHY_FIFO_OVERFLOW.
Definition: tcrx.h:99
void TCRX_OpenDescriptor(uint32_t index, uint32_t pointer, uint32_t size)
Открытие дескриптора на приём
Definition: tcrx.c:43
#define TCRX_DSCR_MAX_SIZE
Макросы, относящиеся к логике работы контроллера
Definition: tcrx.h:115
void TCRX_Set_Tail_Sequence(uint32_t tail_first, uint32_t tail_second)
Установка значения маркера конца фрейма
Definition: tcrx.c:187
FlagStatus TCRX_Dscr_Ready(uint32_t index)
Возвращает значение флага DSCR_READY, показывающее, открыт ли дескриптор
Definition: tcrx.c:55
void TCRX_Set_Current_Descriptor(uint32_t index)
Выбор текущего дескриптора для приёма
Definition: tcrx.c:112
#define TCRX_DSC_DSCR_FLAG_SIZE_SIZE(x)
Макросы для DSCR_FLAG_SIZE дескриптора
Definition: tcrx.h:70
#define TCRX
Указатель на структуру TCRX.
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с регистрами общего на...
#define TCRX_GLOBAL_ENABLE_EN
Макросы для GLOBAL_ENABLE.
Definition: tcrx.h:85
FlagStatus TCRX_FIFO_Overflow()
Возвращает значение флага переполнения FIFO.
Definition: tcrx.c:165
#define TCRX_DSC_DSCR_FLAG_SIZE_SOF
Definition: tcrx.h:71
Definition: types.h:64
uint32_t TCRX_Get_Current_Descriptor()
Получение номера активного дескриптора
Definition: tcrx.c:121
FlagStatus TCRX_ERROR_Flag(uint32_t index)
Возвращает значение флага ERROR.
Definition: tcrx.c:103
void TCRX_Set_Decoder(uint32_t randomizer, uint32_t bch, uint32_t viterbi)
Настройка параметров декодера
Definition: tcrx.c:156
Definition: types.h:64