blob: 13fcd8296e1c51f6ca6d6ee4062fca02eb27f870 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
/*""FILE COMMENT""*******************************************************
* System Name : API for RX62Nxx
* File Name : r_pdl_common_defs_RX62Nxx.h
* Version : 1.02
* Contents : API common definitions
* Customer :
* Model :
* Order :
* CPU : RX
* Compiler : RXC
* OS : Nothing
* Programmer :
* Note :
************************************************************************
* Copyright, 2011. Renesas Electronics Corporation
* and Renesas Solutions Corporation
************************************************************************
* History : 2011.04.08
* : Ver 1.02
* : CS-5 release.
*""FILE COMMENT END""**************************************************/
#ifndef R_PDL_COMMON_DEFS_RX62Nxx_H
#define R_PDL_COMMON_DEFS_RX62Nxx_H
#include <stdint.h>
#include <stdbool.h>
#include <machine.h>
#include <stddef.h>
#include <iorx62n.h>
/* Callback function type */
typedef void (* VoidCallBackFunc)(void);
/* The supported MCU group */
#define PDL_MCU_GROUP RX62N
/* The highest interrupt priority level */
#define IPL_MAX 15
/* Use the I/O register area to indicate that a callback function pointer is not to be used */
#define PDL_NO_FUNC (VoidCallBackFunc)0x00080000ul
/* Use the ROM area to indicate that a data pointer is not to be used */
#define PDL_NO_PTR (void *)0xFFFFFFFCul
/* When no parameters options are required */
#define PDL_NO_DATA 0
/* Shared global variables */
extern volatile uint32_t rpdl_CGC_f_pclk;
extern volatile uint32_t rpdl_CGC_f_iclk;
extern volatile uint32_t rpdl_CGC_f_bclk;
extern volatile uint8_t rpdl_INTC_brk_command;
extern volatile uint8_t rpdl_INTC_brk_data8;
extern volatile uint32_t rpdl_INTC_saved_isp;
/* Shared functions */
uint8_t rpdl_DMAC_get_channel(const uint8_t);
/* Utility functions */
uint8_t rpdl_BCD8_to_dec(const uint8_t);
uint16_t rpdl_BCD16_to_dec(const uint16_t);
bool rpdl_common_BCD8_check(const uint8_t);
bool rpdl_common_BCD16_check(const uint16_t);
bool rpdl_common_BCD32_check(const uint32_t);
/* BRK handler command options */
typedef enum {
BRK_NO_COMMAND,
BRK_START_ADC_10,
BRK_START_ADC_10_AND_SLEEP,
BRK_SLEEP,
BRK_ALL_MODULE_CLOCK_STOP,
BRK_STANDBY,
BRK_DEEP_STANDBY,
BRK_LOAD_FINTV_REGISTER,
BRK_WRITE_IPL,
BRK_CMT_START,
BRK_CMT_STOP
} brk_commands;
/* Bit definitions */
#define BIT_0 0x00000001ul
#define BIT_1 0x00000002ul
#define BIT_2 0x00000004ul
#define BIT_3 0x00000008ul
#define BIT_4 0x00000010ul
#define BIT_5 0x00000020ul
#define BIT_6 0x00000040ul
#define BIT_7 0x00000080ul
#define BIT_8 0x00000100ul
#define BIT_9 0x00000200ul
#define BIT_10 0x00000400ul
#define BIT_11 0x00000800ul
#define BIT_12 0x00001000ul
#define BIT_13 0x00002000ul
#define BIT_14 0x00004000ul
#define BIT_15 0x00008000ul
#define BIT_16 0x00010000ul
#define BIT_17 0x00020000ul
#define BIT_18 0x00040000ul
#define BIT_19 0x00080000ul
#define BIT_20 0x00100000ul
#define BIT_21 0x00200000ul
#define BIT_22 0x00400000ul
#define BIT_23 0x00800000ul
#define BIT_24 0x01000000ul
#define BIT_25 0x02000000ul
#define BIT_26 0x04000000ul
#define BIT_27 0x08000000ul
#define BIT_28 0x10000000ul
#define BIT_29 0x20000000ul
#define BIT_30 0x40000000ul
#define BIT_31 0x80000000ul
#define INV_BIT_0 0xFFFFFFFEul
#define INV_BIT_1 0xFFFFFFFDul
#define INV_BIT_2 0xFFFFFFFBul
#define INV_BIT_3 0xFFFFFFF7ul
#define INV_BIT_4 0xFFFFFFEFul
#define INV_BIT_5 0xFFFFFFDFul
#define INV_BIT_6 0xFFFFFFBFul
#define INV_BIT_7 0xFFFFFF7Ful
#define INV_BIT_8 0xFFFFFEFFul
#define INV_BIT_9 0xFFFFFDFFul
#define INV_BIT_10 0xFFFFFBFFul
#define INV_BIT_11 0xFFFFF7FFul
#define INV_BIT_12 0xFFFFEFFFul
#define INV_BIT_13 0xFFFFDFFFul
#define INV_BIT_14 0xFFFFBFFFul
#define INV_BIT_15 0xFFFF7FFFul
#define INV_BIT_16 0xFFFEFFFFul
#define INV_BIT_17 0xFFFDFFFFul
#define INV_BIT_18 0xFFFBFFFFul
#define INV_BIT_19 0xFFF7FFFFul
#define INV_BIT_20 0xFFEFFFFFul
#define INV_BIT_21 0xFFDFFFFFul
#define INV_BIT_22 0xFFBFFFFFul
#define INV_BIT_23 0xFF7FFFFFul
#define INV_BIT_24 0xFEFFFFFFul
#define INV_BIT_25 0xFDFFFFFFul
#define INV_BIT_26 0xFBFFFFFFul
#define INV_BIT_27 0xF7FFFFFFul
#define INV_BIT_28 0xEFFFFFFFul
#define INV_BIT_29 0xDFFFFFFFul
#define INV_BIT_30 0xBFFFFFFFul
#define INV_BIT_31 0x7FFFFFFFul
/* Interrupt vector numbers */
#define PDL_INTC_VECTOR_BUSERR VECT_BSC_BUSERR
#define PDL_INTC_VECTOR_FIFERR VECT_FCU_FIFERR
#define PDL_INTC_VECTOR_FRDYI VECT_FCU_FRDYI
#define PDL_INTC_VECTOR_SWINT VECT_ICU_SWINT
#define PDL_INTC_VECTOR_CMT0 VECT_CMT0_CMI0
#define PDL_INTC_VECTOR_CMT1 VECT_CMT1_CMI1
#define PDL_INTC_VECTOR_CMT2 VECT_CMT2_CMI2
#define PDL_INTC_VECTOR_CMT3 VECT_CMT3_CMI3
#define PDL_INTC_VECTOR_EINT VECT_ETHER_EINT
#define PDL_INTC_VECTOR_D0FIFO0 VECT_USB0_D0FIFO0
#define PDL_INTC_VECTOR_D1FIFO0 VECT_USB0_D1FIFO0
#define PDL_INTC_VECTOR_USBI0 VECT_USB0_USBI0
#define PDL_INTC_VECTOR_USBR0 VECT_USB_USBR0
#define PDL_INTC_VECTOR_D0FIFO1 VECT_USB1_D0FIFO1
#define PDL_INTC_VECTOR_D1FIFO1 VECT_USB1_D1FIFO1
#define PDL_INTC_VECTOR_USBI1 VECT_USB1_USBI1
#define PDL_INTC_VECTOR_USBR1 VECT_USB_USBR1
#define PDL_INTC_VECTOR_SPEI0 VECT_RSPI0_SPEI0
#define PDL_INTC_VECTOR_SPRI0 VECT_RSPI0_SPRI0
#define PDL_INTC_VECTOR_SPTI0 VECT_RSPI0_SPTI0
#define PDL_INTC_VECTOR_SPII0 VECT_RSPI0_SPII0
#define PDL_INTC_VECTOR_SPEI1 VECT_RSPI1_SPEI1
#define PDL_INTC_VECTOR_SPRI1 VECT_RSPI1_SPRI1
#define PDL_INTC_VECTOR_SPTI1 VECT_RSPI1_SPTI1
#define PDL_INTC_VECTOR_SPII1 VECT_RSPI1_SPII1
#define PDL_INTC_VECTOR_ERS0 VECT_CAN0_ERS0
#define PDL_INTC_VECTOR_RXF0 VECT_CAN0_RXF0
#define PDL_INTC_VECTOR_TXF0 VECT_CAN0_TXF0
#define PDL_INTC_VECTOR_RXM0 VECT_CAN0_RXM0
#define PDL_INTC_VECTOR_TXM0 VECT_CAN0_TXM0
#define PDL_INTC_VECTOR_PRD VECT_RTC_PRD
#define PDL_INTC_VECTOR_CUP VECT_RTC_CUP
#define PDL_INTC_VECTOR_ALM VECT_RTC_ALM
#define PDL_INTC_VECTOR_IRQ0 VECT_ICU_IRQ0
#define PDL_INTC_VECTOR_IRQ1 VECT_ICU_IRQ1
#define PDL_INTC_VECTOR_IRQ2 VECT_ICU_IRQ2
#define PDL_INTC_VECTOR_IRQ3 VECT_ICU_IRQ3
#define PDL_INTC_VECTOR_IRQ4 VECT_ICU_IRQ4
#define PDL_INTC_VECTOR_IRQ5 VECT_ICU_IRQ5
#define PDL_INTC_VECTOR_IRQ6 VECT_ICU_IRQ6
#define PDL_INTC_VECTOR_IRQ7 VECT_ICU_IRQ7
#define PDL_INTC_VECTOR_IRQ8 VECT_ICU_IRQ8
#define PDL_INTC_VECTOR_IRQ9 VECT_ICU_IRQ9
#define PDL_INTC_VECTOR_IRQ10 VECT_ICU_IRQ10
#define PDL_INTC_VECTOR_IRQ11 VECT_ICU_IRQ11
#define PDL_INTC_VECTOR_IRQ12 VECT_ICU_IRQ12
#define PDL_INTC_VECTOR_IRQ13 VECT_ICU_IRQ13
#define PDL_INTC_VECTOR_IRQ14 VECT_ICU_IRQ14
#define PDL_INTC_VECTOR_IRQ15 VECT_ICU_IRQ15
#define PDL_INTC_VECTOR_WOVI VECT_WDT_WOVI
#define PDL_INTC_VECTOR_ADI0 VECT_AD0_ADI0
#define PDL_INTC_VECTOR_ADI1 VECT_AD1_ADI1
#define PDL_INTC_VECTOR_ADI12_0 VECT_S12AD_ADI
#define PDL_INTC_VECTOR_TGIA0 VECT_MTU0_TGIA0
#define PDL_INTC_VECTOR_TGIB0 VECT_MTU0_TGIB0
#define PDL_INTC_VECTOR_TGIC0 VECT_MTU0_TGIC0
#define PDL_INTC_VECTOR_TGID0 VECT_MTU0_TGID0
#define PDL_INTC_VECTOR_TCIV0 VECT_MTU0_TCIV0
#define PDL_INTC_VECTOR_TGIE0 VECT_MTU0_TGIE0
#define PDL_INTC_VECTOR_TGIF0 VECT_MTU0_TGIF0
#define PDL_INTC_VECTOR_TGIA1 VECT_MTU1_TGIA1
#define PDL_INTC_VECTOR_TGIB1 VECT_MTU1_TGIB1
#define PDL_INTC_VECTOR_TCIV1 VECT_MTU1_TCIV1
#define PDL_INTC_VECTOR_TCIU1 VECT_MTU1_TCIU1
#define PDL_INTC_VECTOR_TGIA2 VECT_MTU2_TGIA2
#define PDL_INTC_VECTOR_TGIB2 VECT_MTU2_TGIB2
#define PDL_INTC_VECTOR_TCIV2 VECT_MTU2_TCIV2
#define PDL_INTC_VECTOR_TCIU2 VECT_MTU2_TCIU2
#define PDL_INTC_VECTOR_TGIA3 VECT_MTU3_TGIA3
#define PDL_INTC_VECTOR_TGIB3 VECT_MTU3_TGIB3
#define PDL_INTC_VECTOR_TGIC3 VECT_MTU3_TGIC3
#define PDL_INTC_VECTOR_TGID3 VECT_MTU3_TGID3
#define PDL_INTC_VECTOR_TCIV3 VECT_MTU3_TCIV3
#define PDL_INTC_VECTOR_TGIA4 VECT_MTU4_TGIA4
#define PDL_INTC_VECTOR_TGIB4 VECT_MTU4_TGIB4
#define PDL_INTC_VECTOR_TGIC4 VECT_MTU4_TGIC4
#define PDL_INTC_VECTOR_TGID4 VECT_MTU4_TGID4
#define PDL_INTC_VECTOR_TCIV4 VECT_MTU4_TCIV4
#define PDL_INTC_VECTOR_TGIU5 VECT_MTU5_TGIU5
#define PDL_INTC_VECTOR_TGIV5 VECT_MTU5_TGIV5
#define PDL_INTC_VECTOR_TGIW5 VECT_MTU5_TGIW5
#define PDL_INTC_VECTOR_TGIA6 VECT_MTU6_TGIA6
#define PDL_INTC_VECTOR_TGIB6 VECT_MTU6_TGIB6
#define PDL_INTC_VECTOR_TGIC6 VECT_MTU6_TGIC6
#define PDL_INTC_VECTOR_TGID6 VECT_MTU6_TGID6
#define PDL_INTC_VECTOR_TCIV6 VECT_MTU6_TCIV6
#define PDL_INTC_VECTOR_TGIE6 VECT_MTU6_TGIE6
#define PDL_INTC_VECTOR_TGIF6 VECT_MTU6_TGIF6
#define PDL_INTC_VECTOR_TGIA7 VECT_MTU7_TGIA7
#define PDL_INTC_VECTOR_TGIB7 VECT_MTU7_TGIB7
#define PDL_INTC_VECTOR_TCIV7 VECT_MTU7_TCIV7
#define PDL_INTC_VECTOR_TCIU7 VECT_MTU7_TCIU7
#define PDL_INTC_VECTOR_TGIA8 VECT_MTU8_TGIA8
#define PDL_INTC_VECTOR_TGIB8 VECT_MTU8_TGIB8
#define PDL_INTC_VECTOR_TCIV8 VECT_MTU8_TCIV8
#define PDL_INTC_VECTOR_TCIU8 VECT_MTU8_TCIU8
#define PDL_INTC_VECTOR_TGIA9 VECT_MTU9_TGIA9
#define PDL_INTC_VECTOR_TGIB9 VECT_MTU9_TGIB9
#define PDL_INTC_VECTOR_TGIC9 VECT_MTU9_TGIC9
#define PDL_INTC_VECTOR_TGID9 VECT_MTU9_TGID9
#define PDL_INTC_VECTOR_TCIV9 VECT_MTU9_TCIV9
#define PDL_INTC_VECTOR_TGIA10 VECT_MTU10_TGIA10
#define PDL_INTC_VECTOR_TGIB10 VECT_MTU10_TGIB10
#define PDL_INTC_VECTOR_TGIC10 VECT_MTU10_TGIC10
#define PDL_INTC_VECTOR_TGID10 VECT_MTU10_TGID10
#define PDL_INTC_VECTOR_TCIV10 VECT_MTU10_TCIV10
#define PDL_INTC_VECTOR_TGIU11 VECT_MTU11_TGIU11
#define PDL_INTC_VECTOR_TGIV11 VECT_MTU11_TGIV11
#define PDL_INTC_VECTOR_TGIW11 VECT_MTU11_TGIW11
#define PDL_INTC_VECTOR_OEI1 VECT_POE_OEI1
#define PDL_INTC_VECTOR_OEI2 VECT_POE_OEI2
#define PDL_INTC_VECTOR_OEI3 VECT_POE_OEI3
#define PDL_INTC_VECTOR_OEI4 VECT_POE_OEI4
#define PDL_INTC_VECTOR_CMIA0 VECT_TMR0_CMIA0
#define PDL_INTC_VECTOR_CMIB0 VECT_TMR0_CMIB0
#define PDL_INTC_VECTOR_OVI0 VECT_TMR0_OVI0
#define PDL_INTC_VECTOR_CMIA1 VECT_TMR1_CMIA1
#define PDL_INTC_VECTOR_CMIB1 VECT_TMR1_CMIB1
#define PDL_INTC_VECTOR_OVI1 VECT_TMR1_OVI1
#define PDL_INTC_VECTOR_CMIA2 VECT_TMR2_CMIA2
#define PDL_INTC_VECTOR_CMIB2 VECT_TMR2_CMIB2
#define PDL_INTC_VECTOR_OVI2 VECT_TMR2_OVI2
#define PDL_INTC_VECTOR_CMIA3 VECT_TMR3_CMIA3
#define PDL_INTC_VECTOR_CMIB3 VECT_TMR3_CMIB3
#define PDL_INTC_VECTOR_OVI3 VECT_TMR3_OVI3
#define PDL_INTC_VECTOR_DMAC0I VECT_DMAC_DMAC0I
#define PDL_INTC_VECTOR_DMAC1I VECT_DMAC_DMAC1I
#define PDL_INTC_VECTOR_DMAC2I VECT_DMAC_DMAC2I
#define PDL_INTC_VECTOR_DMAC3I VECT_DMAC_DMAC3I
#define PDL_INTC_VECTOR_EXDMAC0I VECT_EXDMAC_EXDMAC0I
#define PDL_INTC_VECTOR_EXDMAC1I VECT_EXDMAC_EXDMAC1I
#define PDL_INTC_VECTOR_ERI0 VECT_SCI0_ERI0
#define PDL_INTC_VECTOR_RXI0 VECT_SCI0_RXI0
#define PDL_INTC_VECTOR_TXI0 VECT_SCI0_TXI0
#define PDL_INTC_VECTOR_TEI0 VECT_SCI0_TEI0
#define PDL_INTC_VECTOR_ERI1 VECT_SCI1_ERI1
#define PDL_INTC_VECTOR_RXI1 VECT_SCI1_RXI1
#define PDL_INTC_VECTOR_TXI1 VECT_SCI1_TXI1
#define PDL_INTC_VECTOR_TEI1 VECT_SCI1_TEI1
#define PDL_INTC_VECTOR_ERI2 VECT_SCI2_ERI2
#define PDL_INTC_VECTOR_RXI2 VECT_SCI2_RXI2
#define PDL_INTC_VECTOR_TXI2 VECT_SCI2_TXI2
#define PDL_INTC_VECTOR_TEI2 VECT_SCI2_TEI2
#define PDL_INTC_VECTOR_ERI3 VECT_SCI3_ERI3
#define PDL_INTC_VECTOR_RXI3 VECT_SCI3_RXI3
#define PDL_INTC_VECTOR_TXI3 VECT_SCI3_TXI3
#define PDL_INTC_VECTOR_TEI3 VECT_SCI3_TEI3
#define PDL_INTC_VECTOR_ERI5 VECT_SCI5_ERI5
#define PDL_INTC_VECTOR_RXI5 VECT_SCI5_RXI5
#define PDL_INTC_VECTOR_TXI5 VECT_SCI5_TXI5
#define PDL_INTC_VECTOR_TEI5 VECT_SCI5_TEI5
#define PDL_INTC_VECTOR_ERI6 VECT_SCI6_ERI6
#define PDL_INTC_VECTOR_RXI6 VECT_SCI6_RXI6
#define PDL_INTC_VECTOR_TXI6 VECT_SCI6_TXI6
#define PDL_INTC_VECTOR_TEI6 VECT_SCI6_TEI6
#define PDL_INTC_VECTOR_ICEEI0 VECT_RIIC0_ICEEI0
#define PDL_INTC_VECTOR_ICRXI0 VECT_RIIC0_ICRXI0
#define PDL_INTC_VECTOR_ICTXI0 VECT_RIIC0_ICTXI0
#define PDL_INTC_VECTOR_ICTEI0 VECT_RIIC0_ICTEI0
#define PDL_INTC_VECTOR_ICEEI1 VECT_RIIC1_ICEEI1
#define PDL_INTC_VECTOR_ICRXI1 VECT_RIIC1_ICRXI1
#define PDL_INTC_VECTOR_ICTXI1 VECT_RIIC1_ICTXI1
#define PDL_INTC_VECTOR_ICTEI1 VECT_RIIC1_ICTEI1
#endif
/* End of file */
|