r_pdl_common_defs_rx62nxx.h 12 KB

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