InES Hardware Abstraction Layer
reg_ctboard.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * -- _____ ______ _____ -
3  * -- |_ _| | ____|/ ____| -
4  * -- | | _ __ | |__ | (___ Institute of Embedded Systems -
5  * -- | | | '_ \| __| \___ \ Zurich University of -
6  * -- _| |_| | | | |____ ____) | Applied Sciences -
7  * -- |_____|_| |_|______|_____/ 8401 Winterthur, Switzerland -
8  * ------------------------------------------------------------------------- */
15 #ifndef _REG_CTBOARD_H
16 #define _REG_CTBOARD_H
17 
18 #include <stdint.h>
19 
20 
21 /* LED register
22  * ------------------------------------------------------------------------- */
23 
28 typedef union {
29  struct {
30  volatile uint8_t LED7_0;
31  volatile uint8_t LED15_8;
32  volatile uint8_t LED23_16;
33  volatile uint8_t LED31_24;
34  } BYTE;
35  struct {
36  volatile uint16_t LED15_0;
37  volatile uint16_t LED31_16;
38  } HWORD;
39  volatile uint32_t WORD;
40 } reg_ct_led_t;
41 
42 #ifdef TESTING
43  extern reg_ct_led_t led_testing;
44  #define CT_LED ( (reg_ct_led_t *) &led_testing )
45 #else
46  #define CT_LED ( (reg_ct_led_t *) 0x60000100 )
47 #endif
48 
49 
50 /* 7 segment display register
51  * ------------------------------------------------------------------------- */
52 
57 typedef union {
58  struct {
59  volatile uint8_t DS0;
60  volatile uint8_t DS1;
61  volatile uint8_t DS2;
62  volatile uint8_t DS3;
63  } BYTE;
64  struct {
65  volatile uint16_t DS1_0;
66  volatile uint16_t DS3_2;
67  } HWORD;
68  volatile uint32_t WORD;
70 
71 
76 typedef union {
77  struct {
78  volatile uint8_t DS1_0;
79  volatile uint8_t DS3_2;
80  } BYTE;
81  volatile uint16_t HWORD;
83 
84 
91 typedef struct {
95 
96 #ifdef TESTING
97  extern reg_ct_seg7_t seg7_testing;
98  #define CT_SEG7 ( (reg_ct_seg7_t *) &seg7_testing )
99 #else
100  #define CT_SEG7 ( (reg_ct_seg7_t *) 0x60000110 )
101 #endif
102 
103 /* DIP switch register
104  * ------------------------------------------------------------------------- */
105 
110 typedef union {
111  struct {
112  volatile uint8_t S7_0;
113  volatile uint8_t S15_8;
114  volatile uint8_t S23_16;
115  volatile uint8_t S31_24;
116  } BYTE;
117  struct {
118  volatile uint16_t S15_0;
119  volatile uint16_t S31_16;
120  } HWORD;
121  volatile uint32_t WORD;
123 
124 #ifdef TESTING
125  extern reg_ct_dipsw_t dipsw_testing;
126  #define CT_DIPSW ( (reg_ct_dipsw_t *) &dipsw_testing )
127 #else
128  #define CT_DIPSW ( (reg_ct_dipsw_t *) 0x60000200 )
129 #endif
130 
131 /* BUTTON register
132  * ------------------------------------------------------------------------- */
133 
134 #ifdef TESTING
135  extern uint8_t button_testing;
136  #define CT_BUTTON (* (uint8_t *) &button_testing )
137 #else
138  #define CT_BUTTON (* (uint8_t *) 0x60000210 )
139 #endif
140 
141 
142 /* HEX switch register
143  * ------------------------------------------------------------------------- */
144 
145 #ifdef TESTING
146  extern uint8_t hexsw_testing;
147  #define CT_HEXSW (* (uint8_t *) &hexsw_testing )
148 #else
149  #define CT_HEXSW (* (uint8_t *) 0x60000211 )
150 #endif
151 
152 /* LCD register
153  * ------------------------------------------------------------------------- */
154 
159 typedef struct {
160  volatile uint16_t RED;
161  volatile uint16_t GREEN;
162  volatile uint16_t BLUE;
164 
165 
170 typedef union {
171  struct {
172  volatile uint8_t B7_0;
173  volatile uint8_t B15_8;
174  volatile uint8_t B23_16;
175  volatile uint8_t B31_24;
176  volatile uint8_t B39_32;
177  volatile uint8_t B47_40;
178  volatile uint8_t B55_48;
179  volatile uint8_t B63_56;
180  volatile uint8_t B71_64;
181  volatile uint8_t B79_72;
182  volatile uint8_t B87_80;
183  volatile uint8_t B95_88;
184  volatile uint8_t B103_96;
185  volatile uint8_t B111_104;
186  volatile uint8_t B119_112;
187  volatile uint8_t B127_120;
188  } BYTE;
189  struct {
190  volatile uint16_t B15_0;
191  volatile uint16_t B31_16;
192  volatile uint16_t B47_32;
193  volatile uint16_t B63_48;
194  volatile uint16_t B79_64;
195  volatile uint16_t B95_80;
196  volatile uint16_t B111_96;
197  volatile uint16_t B127_112;
198  } HWORD;
199  struct {
200  volatile uint32_t B31_0;
201  volatile uint32_t B63_32;
202  volatile uint32_t B95_64;
203  volatile uint32_t B127_96;
204  } WORD;
205  struct {
206  volatile uint64_t B63_0;
207  volatile uint64_t B127_64;
208  } DWORD;
210 
211 
218 typedef struct {
219  volatile uint8_t ASCII[40];
220  uint8_t RESERVED[8];
223 } reg_ct_lcd_t;
224 
225 
226 #ifdef TESTING
227  extern reg_ct_lcd_t lcd_testing;
228  #define CT_LCD ( (reg_ct_lcd_t *) &lcd_testing )
229 #else
230  #define CT_LCD ( (reg_ct_lcd_t *) 0x60000300 )
231 #endif
232 
233 
234 /* GPIO register
235  * ------------------------------------------------------------------------- */
236 
241 typedef union {
242  struct {
243  volatile uint8_t P1;
244  volatile uint8_t P2;
245  volatile uint8_t P3;
246  volatile uint8_t P4;
247  } BYTE;
248  struct {
249  volatile uint16_t P2_1;
250  volatile uint16_t P4_3;
251  } HWORD;
252  volatile uint32_t WORD;
254 
255 
262 typedef struct {
264  uint8_t RESERVED[12];
266 } reg_ct_gpio_t;
267 
268 
269 #ifdef TESTING
270  extern reg_ct_gpio_t gpio_testing;
271  #define CT_GPIO ( (reg_ct_gpio_t *) &gpio_testing )
272 #else
273  #define CT_GPIO ( (reg_ct_gpio_t *) 0x60000400 )
274 #endif
275 
276 #endif
volatile uint8_t B63_56
Definition: reg_ctboard.h:179
Definition: hal_common.h:48
reg_ct_seg7_bin_t BIN
Definition: reg_ctboard.h:93
volatile uint8_t B23_16
Definition: reg_ctboard.h:174
reg_ct_gpio_port_t OUT
Definition: reg_ctboard.h:263
volatile uint32_t B31_0
Definition: reg_ctboard.h:200
reg_ct_gpio_port_t IN
Definition: reg_ctboard.h:265
volatile uint8_t B55_48
Definition: reg_ctboard.h:178
volatile uint16_t DS1_0
Definition: reg_ctboard.h:65
volatile uint8_t P3
Definition: reg_ctboard.h:245
volatile uint8_t LED15_8
Definition: reg_ctboard.h:31
Representation of GPIO register.
Definition: reg_ctboard.h:262
volatile uint16_t B15_0
Definition: reg_ctboard.h:190
volatile uint8_t S15_8
Definition: reg_ctboard.h:113
volatile uint8_t LED7_0
Definition: reg_ctboard.h:30
volatile uint8_t P1
Definition: reg_ctboard.h:243
volatile uint64_t B127_64
Definition: reg_ctboard.h:207
volatile uint8_t B71_64
Definition: reg_ctboard.h:180
Definition: hal_common.h:49
volatile uint8_t B87_80
Definition: reg_ctboard.h:182
volatile uint16_t S15_0
Definition: reg_ctboard.h:118
volatile uint16_t S31_16
Definition: reg_ctboard.h:119
volatile uint8_t S31_24
Definition: reg_ctboard.h:115
volatile uint16_t B127_112
Definition: reg_ctboard.h:197
Representation of 7 segment display BINary interface.
Definition: reg_ctboard.h:76
volatile uint8_t DS3
Definition: reg_ctboard.h:62
volatile uint32_t WORD
Definition: reg_ctboard.h:68
volatile uint8_t B95_88
Definition: reg_ctboard.h:183
volatile uint16_t P2_1
Definition: reg_ctboard.h:249
volatile uint16_t B95_80
Definition: reg_ctboard.h:195
volatile uint8_t DS1
Definition: reg_ctboard.h:60
volatile uint8_t B111_104
Definition: reg_ctboard.h:185
volatile uint8_t P2
Definition: reg_ctboard.h:244
volatile uint32_t WORD
Definition: reg_ctboard.h:252
volatile uint8_t DS3_2
Definition: reg_ctboard.h:79
volatile uint8_t B127_120
Definition: reg_ctboard.h:187
volatile uint8_t B7_0
Definition: reg_ctboard.h:172
volatile uint8_t B39_32
Definition: reg_ctboard.h:176
volatile uint16_t P4_3
Definition: reg_ctboard.h:250
reg_ct_seg7_raw_t RAW
Definition: reg_ctboard.h:92
volatile uint8_t B15_8
Definition: reg_ctboard.h:173
volatile uint16_t HWORD
Definition: reg_ctboard.h:81
volatile uint8_t S7_0
Definition: reg_ctboard.h:112
Definition: hal_common.h:50
Representation of LCD BINary interface.
Definition: reg_ctboard.h:170
volatile uint8_t B31_24
Definition: reg_ctboard.h:175
volatile uint16_t BLUE
Definition: reg_ctboard.h:162
Representation of LCD background interface.
Definition: reg_ctboard.h:159
volatile uint32_t WORD
Definition: reg_ctboard.h:39
volatile uint8_t LED23_16
Definition: reg_ctboard.h:32
volatile uint8_t DS0
Definition: reg_ctboard.h:59
Representation of GPIO register.
Definition: reg_ctboard.h:218
volatile uint16_t DS3_2
Definition: reg_ctboard.h:66
Representation of 7 segment display RAW interface.
Definition: reg_ctboard.h:57
Representation of 7 segment display register.
Definition: reg_ctboard.h:91
volatile uint8_t B47_40
Definition: reg_ctboard.h:177
volatile uint32_t B127_96
Definition: reg_ctboard.h:203
volatile uint8_t DS1_0
Definition: reg_ctboard.h:78
volatile uint32_t B95_64
Definition: reg_ctboard.h:202
volatile uint8_t S23_16
Definition: reg_ctboard.h:114
volatile uint16_t B47_32
Definition: reg_ctboard.h:192
volatile uint32_t WORD
Definition: reg_ctboard.h:121
volatile uint8_t B103_96
Definition: reg_ctboard.h:184
Representation of GPIO port.
Definition: reg_ctboard.h:241
reg_ct_lcd_bg_t BG
Definition: reg_ctboard.h:222
volatile uint32_t B63_32
Definition: reg_ctboard.h:201
Representation of LED interface.
Definition: reg_ctboard.h:28
volatile uint16_t LED15_0
Definition: reg_ctboard.h:36
volatile uint8_t B119_112
Definition: reg_ctboard.h:186
Definition: hal_common.h:47
volatile uint16_t B63_48
Definition: reg_ctboard.h:193
volatile uint8_t LED31_24
Definition: reg_ctboard.h:33
volatile uint16_t GREEN
Definition: reg_ctboard.h:161
volatile uint16_t B79_64
Definition: reg_ctboard.h:194
Representation of DIP switch interface.
Definition: reg_ctboard.h:110
reg_ct_lcd_bin_t BIN
Definition: reg_ctboard.h:221
volatile uint16_t B111_96
Definition: reg_ctboard.h:196
volatile uint8_t DS2
Definition: reg_ctboard.h:61
volatile uint16_t B31_16
Definition: reg_ctboard.h:191
volatile uint8_t B79_72
Definition: reg_ctboard.h:181
volatile uint16_t LED31_16
Definition: reg_ctboard.h:37
volatile uint64_t B63_0
Definition: reg_ctboard.h:206
volatile uint8_t P4
Definition: reg_ctboard.h:246