/avr/avr_lib/at90usb82/avr-at90usb82.ads

http://github.com/tkoskine/avr-ada · Ada · 3235 lines · 2477 code · 179 blank · 579 comment · 337 complexity · 45ce7b17d8820a3017c7cdc78c46bf12 MD5 · raw file

Large files are truncated click here to view the full file

  1. ---------------------------------------------------------------------------
  2. -- The AVR-Ada Library is free software; you can redistribute it and/or --
  3. -- modify it under terms of the GNU General Public License as published --
  4. -- by the Free Software Foundation; either version 2, or (at your --
  5. -- option) any later version. The AVR-Ada Library is distributed in the --
  6. -- hope that it will be useful, but WITHOUT ANY WARRANTY; without even --
  7. -- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR --
  8. -- PURPOSE. See the GNU General Public License for more details. --
  9. -- --
  10. -- As a special exception, if other files instantiate generics from this --
  11. -- unit, or you link this unit with other files to produce an --
  12. -- executable this unit does not by itself cause the resulting --
  13. -- executable to be covered by the GNU General Public License. This --
  14. -- exception does not however invalidate any other reasons why the --
  15. -- executable file might be covered by the GNU Public License. --
  16. ---------------------------------------------------------------------------
  17. with System; use System; -- make Address visible
  18. with Interfaces; use Interfaces;
  19. package AVR.AT90USB82 is
  20. pragma Preelaborate;
  21. CVS_Version : constant String := "$Id$";
  22. --
  23. -- memory sizes
  24. --
  25. Flash_Size : constant := 16#2000#;
  26. Flash_End : constant := 16#1fff#;
  27. EEprom_Size : constant := 16#0200#;
  28. E2end : constant := 16#01ff#;
  29. Int_SRAM_Start_Addr : constant := 16#100#;
  30. Int_SRAM_Size : constant := 16#200#;
  31. --
  32. -- interrupts
  33. --
  34. Number_Of_Interrupts : constant := 38;
  35. -- External Pin,Power-on Reset,Brown-out Reset,Watchdog Reset,and JTAG
  36. -- AVR Reset. See Datasheet.
  37. Sig_RESET : constant := 0;
  38. Sig_RESET_String : constant String := "__vector_0";
  39. -- External Interrupt Request 0
  40. Sig_INT0 : constant := 1;
  41. Sig_INT0_String : constant String := "__vector_1";
  42. -- External Interrupt Request 1
  43. Sig_INT1 : constant := 2;
  44. Sig_INT1_String : constant String := "__vector_2";
  45. -- External Interrupt Request 2
  46. Sig_INT2 : constant := 3;
  47. Sig_INT2_String : constant String := "__vector_3";
  48. -- External Interrupt Request 3
  49. Sig_INT3 : constant := 4;
  50. Sig_INT3_String : constant String := "__vector_4";
  51. -- External Interrupt Request 4
  52. Sig_INT4 : constant := 5;
  53. Sig_INT4_String : constant String := "__vector_5";
  54. -- External Interrupt Request 5
  55. Sig_INT5 : constant := 6;
  56. Sig_INT5_String : constant String := "__vector_6";
  57. -- External Interrupt Request 6
  58. Sig_INT6 : constant := 7;
  59. Sig_INT6_String : constant String := "__vector_7";
  60. -- External Interrupt Request 7
  61. Sig_INT7 : constant := 8;
  62. Sig_INT7_String : constant String := "__vector_8";
  63. -- Pin Change Interrupt Request 0
  64. Sig_PCINT0 : constant := 9;
  65. Sig_PCINT0_String : constant String := "__vector_9";
  66. -- Pin Change Interrupt Request 1
  67. Sig_PCINT1 : constant := 10;
  68. Sig_PCINT1_String : constant String := "__vector_10";
  69. -- USB General Interrupt Request
  70. Sig_USB_GEN : constant := 11;
  71. Sig_USB_GEN_String : constant String := "__vector_11";
  72. -- USB Endpoint/Pipe Interrupt Communication Request
  73. Sig_USB_COM : constant := 12;
  74. Sig_USB_COM_String : constant String := "__vector_12";
  75. -- Watchdog Time-out Interrupt
  76. Sig_WDT : constant := 13;
  77. Sig_WDT_String : constant String := "__vector_13";
  78. -- Timer/Counter2 Capture Event
  79. Sig_TIMER1_CAPT : constant := 14;
  80. Sig_TIMER1_CAPT_String : constant String := "__vector_14";
  81. -- Timer/Counter2 Compare Match B
  82. Sig_TIMER1_COMPA : constant := 15;
  83. Sig_TIMER1_COMPA_String : constant String := "__vector_15";
  84. -- Timer/Counter2 Compare Match B
  85. Sig_TIMER1_COMPB : constant := 16;
  86. Sig_TIMER1_COMPB_String : constant String := "__vector_16";
  87. -- Timer/Counter2 Compare Match C
  88. Sig_TIMER1_COMPC : constant := 17;
  89. Sig_TIMER1_COMPC_String : constant String := "__vector_17";
  90. -- Timer/Counter1 Overflow
  91. Sig_TIMER1_OVF : constant := 18;
  92. Sig_TIMER1_OVF_String : constant String := "__vector_18";
  93. -- Timer/Counter0 Compare Match A
  94. Sig_TIMER0_COMPA : constant := 19;
  95. Sig_TIMER0_COMPA_String : constant String := "__vector_19";
  96. -- Timer/Counter0 Compare Match B
  97. Sig_TIMER0_COMPB : constant := 20;
  98. Sig_TIMER0_COMPB_String : constant String := "__vector_20";
  99. -- Timer/Counter0 Overflow
  100. Sig_TIMER0_OVF : constant := 21;
  101. Sig_TIMER0_OVF_String : constant String := "__vector_21";
  102. -- SPI Serial Transfer Complete
  103. Sig_SPI_STC : constant := 22;
  104. Sig_SPI_STC_String : constant String := "__vector_22";
  105. -- USART1, Rx Complete
  106. Sig_USART1_RX : constant := 23;
  107. Sig_USART1_RX_String : constant String := "__vector_23";
  108. -- USART1 Data register Empty
  109. Sig_USART1_UDRE : constant := 24;
  110. Sig_USART1_UDRE_String : constant String := "__vector_24";
  111. -- USART1, Tx Complete
  112. Sig_USART1_TX : constant := 25;
  113. Sig_USART1_TX_String : constant String := "__vector_25";
  114. -- Analog Comparator
  115. Sig_ANALOG_COMP : constant := 26;
  116. Sig_ANALOG_COMP_String : constant String := "__vector_26";
  117. -- EEPROM Ready
  118. Sig_EE_READY : constant := 27;
  119. Sig_EE_READY_String : constant String := "__vector_27";
  120. -- Store Program Memory Read
  121. Sig_SPM_READY : constant := 28;
  122. Sig_SPM_READY_String : constant String := "__vector_28";
  123. --
  124. -- I/O registers
  125. --
  126. CLKSTA_Addr : constant Address := 16#d2#;
  127. CLKSTA : Unsigned_8 ;
  128. for CLKSTA'Address use CLKSTA_Addr;
  129. pragma Volatile (CLKSTA);
  130. CLKSTA_Bits : Bits_In_Byte;
  131. for CLKSTA_Bits'Address use CLKSTA_Addr;
  132. pragma Volatile (CLKSTA_Bits);
  133. EXTON_Bit : constant Bit_Number := 0;
  134. EXTON_Mask : constant Unsigned_8 := 16#01#;
  135. RCON_Bit : constant Bit_Number := 1;
  136. RCON_Mask : constant Unsigned_8 := 16#02#;
  137. CLKSEL1_Addr : constant Address := 16#d1#;
  138. CLKSEL1 : Unsigned_8 ;
  139. for CLKSEL1'Address use CLKSEL1_Addr;
  140. pragma Volatile (CLKSEL1);
  141. CLKSEL1_Bits : Bits_In_Byte;
  142. for CLKSEL1_Bits'Address use CLKSEL1_Addr;
  143. pragma Volatile (CLKSEL1_Bits);
  144. EXCKSEL0_Bit : constant Bit_Number := 0;
  145. EXCKSEL0_Mask : constant Unsigned_8 := 16#01#;
  146. EXCKSEL1_Bit : constant Bit_Number := 1;
  147. EXCKSEL1_Mask : constant Unsigned_8 := 16#02#;
  148. EXCKSEL2_Bit : constant Bit_Number := 2;
  149. EXCKSEL2_Mask : constant Unsigned_8 := 16#04#;
  150. EXCKSEL3_Bit : constant Bit_Number := 3;
  151. EXCKSEL3_Mask : constant Unsigned_8 := 16#08#;
  152. RCCKSEL0_Bit : constant Bit_Number := 4;
  153. RCCKSEL0_Mask : constant Unsigned_8 := 16#10#;
  154. RCCKSEL1_Bit : constant Bit_Number := 5;
  155. RCCKSEL1_Mask : constant Unsigned_8 := 16#20#;
  156. RCCKSEL2_Bit : constant Bit_Number := 6;
  157. RCCKSEL2_Mask : constant Unsigned_8 := 16#40#;
  158. RCCKSEL3_Bit : constant Bit_Number := 7;
  159. RCCKSEL3_Mask : constant Unsigned_8 := 16#80#;
  160. CLKSEL0_Addr : constant Address := 16#d0#;
  161. CLKSEL0 : Unsigned_8 ;
  162. for CLKSEL0'Address use CLKSEL0_Addr;
  163. pragma Volatile (CLKSEL0);
  164. CLKSEL0_Bits : Bits_In_Byte;
  165. for CLKSEL0_Bits'Address use CLKSEL0_Addr;
  166. pragma Volatile (CLKSEL0_Bits);
  167. CLKS_Bit : constant Bit_Number := 0;
  168. CLKS_Mask : constant Unsigned_8 := 16#01#;
  169. EXTE_Bit : constant Bit_Number := 2;
  170. EXTE_Mask : constant Unsigned_8 := 16#04#;
  171. RCE_Bit : constant Bit_Number := 3;
  172. RCE_Mask : constant Unsigned_8 := 16#08#;
  173. EXSUT0_Bit : constant Bit_Number := 4;
  174. EXSUT0_Mask : constant Unsigned_8 := 16#10#;
  175. EXSUT1_Bit : constant Bit_Number := 5;
  176. EXSUT1_Mask : constant Unsigned_8 := 16#20#;
  177. RCSUT0_Bit : constant Bit_Number := 6;
  178. RCSUT0_Mask : constant Unsigned_8 := 16#40#;
  179. RCSUT1_Bit : constant Bit_Number := 7;
  180. RCSUT1_Mask : constant Unsigned_8 := 16#80#;
  181. -- PLL Status and Control register
  182. PLLCSR_Addr : constant Address := 16#49#;
  183. PLLCSR : Unsigned_8 ;
  184. for PLLCSR'Address use PLLCSR_Addr;
  185. pragma Volatile (PLLCSR);
  186. PLLCSR_Bits : Bits_In_Byte;
  187. for PLLCSR_Bits'Address use PLLCSR_Addr;
  188. pragma Volatile (PLLCSR_Bits);
  189. -- PLL Lock Status Bit
  190. PLOCK_Bit : constant Bit_Number := 0;
  191. PLOCK_Mask : constant Unsigned_8 := 16#01#;
  192. -- PLL Enable Bit
  193. PLLE_Bit : constant Bit_Number := 1;
  194. PLLE_Mask : constant Unsigned_8 := 16#02#;
  195. -- PLL prescaler Bit 0
  196. PLLP0_Bit : constant Bit_Number := 2;
  197. PLLP0_Mask : constant Unsigned_8 := 16#04#;
  198. -- PLL prescaler Bit 1
  199. PLLP1_Bit : constant Bit_Number := 3;
  200. PLLP1_Mask : constant Unsigned_8 := 16#08#;
  201. -- PLL prescaler Bit 2
  202. PLLP2_Bit : constant Bit_Number := 4;
  203. PLLP2_Mask : constant Unsigned_8 := 16#10#;
  204. TESTPADSTATUS_Addr : constant Address := 16#fd#;
  205. TESTPADSTATUS : Unsigned_8 ;
  206. for TESTPADSTATUS'Address use TESTPADSTATUS_Addr;
  207. pragma Volatile (TESTPADSTATUS);
  208. TESTPADSTATUS_Bits : Bits_In_Byte;
  209. for TESTPADSTATUS_Bits'Address use TESTPADSTATUS_Addr;
  210. pragma Volatile (TESTPADSTATUS_Bits);
  211. TESTPADPULL_Addr : constant Address := 16#fe#;
  212. TESTPADPULL : Unsigned_8 ;
  213. for TESTPADPULL'Address use TESTPADPULL_Addr;
  214. pragma Volatile (TESTPADPULL);
  215. TESTPADPULL_Bits : Bits_In_Byte;
  216. for TESTPADPULL_Bits'Address use TESTPADPULL_Addr;
  217. pragma Volatile (TESTPADPULL_Bits);
  218. TESTPADCTRL_Addr : constant Address := 16#ff#;
  219. TESTPADCTRL : Unsigned_8 ;
  220. for TESTPADCTRL'Address use TESTPADCTRL_Addr;
  221. pragma Volatile (TESTPADCTRL);
  222. TESTPADCTRL_Bits : Bits_In_Byte;
  223. for TESTPADCTRL_Bits'Address use TESTPADCTRL_Addr;
  224. pragma Volatile (TESTPADCTRL_Bits);
  225. -- PS2 Pad Enable register
  226. PS2CON_Addr : constant Address := 16#fa#;
  227. PS2CON : Unsigned_8 ;
  228. for PS2CON'Address use PS2CON_Addr;
  229. pragma Volatile (PS2CON);
  230. PS2CON_Bits : Bits_In_Byte;
  231. for PS2CON_Bits'Address use PS2CON_Addr;
  232. pragma Volatile (PS2CON_Bits);
  233. -- Enable
  234. PS2EN_Bit : constant Bit_Number := 0;
  235. PS2EN_Mask : constant Unsigned_8 := 16#01#;
  236. UPOE_Addr : constant Address := 16#fb#;
  237. UPOE : Unsigned_8 ;
  238. for UPOE'Address use UPOE_Addr;
  239. pragma Volatile (UPOE);
  240. UPOE_Bits : Bits_In_Byte;
  241. for UPOE_Bits'Address use UPOE_Addr;
  242. pragma Volatile (UPOE_Bits);
  243. DMI_Bit : constant Bit_Number := 0;
  244. DMI_Mask : constant Unsigned_8 := 16#01#;
  245. DPI_Bit : constant Bit_Number := 1;
  246. DPI_Mask : constant Unsigned_8 := 16#02#;
  247. DATAI_Bit : constant Bit_Number := 2;
  248. DATAI_Mask : constant Unsigned_8 := 16#04#;
  249. SCKI_Bit : constant Bit_Number := 3;
  250. SCKI_Mask : constant Unsigned_8 := 16#08#;
  251. UPDRV0_Bit : constant Bit_Number := 4;
  252. UPDRV0_Mask : constant Unsigned_8 := 16#10#;
  253. UPDRV1_Bit : constant Bit_Number := 5;
  254. UPDRV1_Mask : constant Unsigned_8 := 16#20#;
  255. UPWE0_Bit : constant Bit_Number := 6;
  256. UPWE0_Mask : constant Unsigned_8 := 16#40#;
  257. UPWE1_Bit : constant Bit_Number := 7;
  258. UPWE1_Mask : constant Unsigned_8 := 16#80#;
  259. UEINT_Addr : constant Address := 16#f4#;
  260. UEINT : Unsigned_8 ;
  261. for UEINT'Address use UEINT_Addr;
  262. pragma Volatile (UEINT);
  263. UEINT_Bits : Bits_In_Byte;
  264. for UEINT_Bits'Address use UEINT_Addr;
  265. pragma Volatile (UEINT_Bits);
  266. EPINT0_Bit : constant Bit_Number := 0;
  267. EPINT0_Mask : constant Unsigned_8 := 16#01#;
  268. EPINT1_Bit : constant Bit_Number := 1;
  269. EPINT1_Mask : constant Unsigned_8 := 16#02#;
  270. EPINT2_Bit : constant Bit_Number := 2;
  271. EPINT2_Mask : constant Unsigned_8 := 16#04#;
  272. EPINT3_Bit : constant Bit_Number := 3;
  273. EPINT3_Mask : constant Unsigned_8 := 16#08#;
  274. EPINT4_Bit : constant Bit_Number := 4;
  275. EPINT4_Mask : constant Unsigned_8 := 16#10#;
  276. UPINT_Addr : constant Address := 16#f8#;
  277. UPINT : Unsigned_8 ;
  278. for UPINT'Address use UPINT_Addr;
  279. pragma Volatile (UPINT);
  280. UPINT_Bits : Bits_In_Byte;
  281. for UPINT_Bits'Address use UPINT_Addr;
  282. pragma Volatile (UPINT_Bits);
  283. UPBCHX_Addr : constant Address := 16#f7#;
  284. UPBCHX : Unsigned_8 ;
  285. for UPBCHX'Address use UPBCHX_Addr;
  286. pragma Volatile (UPBCHX);
  287. UPBCHX_Bits : Bits_In_Byte;
  288. for UPBCHX_Bits'Address use UPBCHX_Addr;
  289. pragma Volatile (UPBCHX_Bits);
  290. UEBCLX_Addr : constant Address := 16#f2#;
  291. UEBCLX : Unsigned_8 ;
  292. for UEBCLX'Address use UEBCLX_Addr;
  293. pragma Volatile (UEBCLX);
  294. UEBCLX_Bits : Bits_In_Byte;
  295. for UEBCLX_Bits'Address use UEBCLX_Addr;
  296. pragma Volatile (UEBCLX_Bits);
  297. BYCT0_Bit : constant Bit_Number := 0;
  298. BYCT0_Mask : constant Unsigned_8 := 16#01#;
  299. BYCT1_Bit : constant Bit_Number := 1;
  300. BYCT1_Mask : constant Unsigned_8 := 16#02#;
  301. BYCT2_Bit : constant Bit_Number := 2;
  302. BYCT2_Mask : constant Unsigned_8 := 16#04#;
  303. BYCT3_Bit : constant Bit_Number := 3;
  304. BYCT3_Mask : constant Unsigned_8 := 16#08#;
  305. BYCT4_Bit : constant Bit_Number := 4;
  306. BYCT4_Mask : constant Unsigned_8 := 16#10#;
  307. BYCT5_Bit : constant Bit_Number := 5;
  308. BYCT5_Mask : constant Unsigned_8 := 16#20#;
  309. BYCT6_Bit : constant Bit_Number := 6;
  310. BYCT6_Mask : constant Unsigned_8 := 16#40#;
  311. BYCT7_Bit : constant Bit_Number := 7;
  312. BYCT7_Mask : constant Unsigned_8 := 16#80#;
  313. UPBCLX_Addr : constant Address := 16#f6#;
  314. UPBCLX : Unsigned_8 ;
  315. for UPBCLX'Address use UPBCLX_Addr;
  316. pragma Volatile (UPBCLX);
  317. UPBCLX_Bits : Bits_In_Byte;
  318. for UPBCLX_Bits'Address use UPBCLX_Addr;
  319. pragma Volatile (UPBCLX_Bits);
  320. UEDATX_Addr : constant Address := 16#f1#;
  321. UEDATX : Unsigned_8 ;
  322. for UEDATX'Address use UEDATX_Addr;
  323. pragma Volatile (UEDATX);
  324. UEDATX_Bits : Bits_In_Byte;
  325. for UEDATX_Bits'Address use UEDATX_Addr;
  326. pragma Volatile (UEDATX_Bits);
  327. DAT0_Bit : constant Bit_Number := 0;
  328. DAT0_Mask : constant Unsigned_8 := 16#01#;
  329. DAT1_Bit : constant Bit_Number := 1;
  330. DAT1_Mask : constant Unsigned_8 := 16#02#;
  331. DAT2_Bit : constant Bit_Number := 2;
  332. DAT2_Mask : constant Unsigned_8 := 16#04#;
  333. DAT3_Bit : constant Bit_Number := 3;
  334. DAT3_Mask : constant Unsigned_8 := 16#08#;
  335. DAT4_Bit : constant Bit_Number := 4;
  336. DAT4_Mask : constant Unsigned_8 := 16#10#;
  337. DAT5_Bit : constant Bit_Number := 5;
  338. DAT5_Mask : constant Unsigned_8 := 16#20#;
  339. DAT6_Bit : constant Bit_Number := 6;
  340. DAT6_Mask : constant Unsigned_8 := 16#40#;
  341. DAT7_Bit : constant Bit_Number := 7;
  342. DAT7_Mask : constant Unsigned_8 := 16#80#;
  343. UPDATX_Addr : constant Address := 16#af#;
  344. UPDATX : Unsigned_8 ;
  345. for UPDATX'Address use UPDATX_Addr;
  346. pragma Volatile (UPDATX);
  347. UPDATX_Bits : Bits_In_Byte;
  348. for UPDATX_Bits'Address use UPDATX_Addr;
  349. pragma Volatile (UPDATX_Bits);
  350. UEIENX_Addr : constant Address := 16#f0#;
  351. UEIENX : Unsigned_8 ;
  352. for UEIENX'Address use UEIENX_Addr;
  353. pragma Volatile (UEIENX);
  354. UEIENX_Bits : Bits_In_Byte;
  355. for UEIENX_Bits'Address use UEIENX_Addr;
  356. pragma Volatile (UEIENX_Bits);
  357. TXINE_Bit : constant Bit_Number := 0;
  358. TXINE_Mask : constant Unsigned_8 := 16#01#;
  359. STALLEDE_Bit : constant Bit_Number := 1;
  360. STALLEDE_Mask : constant Unsigned_8 := 16#02#;
  361. RXOUTE_Bit : constant Bit_Number := 2;
  362. RXOUTE_Mask : constant Unsigned_8 := 16#04#;
  363. RXSTPE_Bit : constant Bit_Number := 3;
  364. RXSTPE_Mask : constant Unsigned_8 := 16#08#;
  365. NAKOUTE_Bit : constant Bit_Number := 4;
  366. NAKOUTE_Mask : constant Unsigned_8 := 16#10#;
  367. NAKINE_Bit : constant Bit_Number := 6;
  368. NAKINE_Mask : constant Unsigned_8 := 16#40#;
  369. FLERRE_Bit : constant Bit_Number := 7;
  370. FLERRE_Mask : constant Unsigned_8 := 16#80#;
  371. UPIENX_Addr : constant Address := 16#ae#;
  372. UPIENX : Unsigned_8 ;
  373. for UPIENX'Address use UPIENX_Addr;
  374. pragma Volatile (UPIENX);
  375. UPIENX_Bits : Bits_In_Byte;
  376. for UPIENX_Bits'Address use UPIENX_Addr;
  377. pragma Volatile (UPIENX_Bits);
  378. UESTA1X_Addr : constant Address := 16#ef#;
  379. UESTA1X : Unsigned_8 ;
  380. for UESTA1X'Address use UESTA1X_Addr;
  381. pragma Volatile (UESTA1X);
  382. UESTA1X_Bits : Bits_In_Byte;
  383. for UESTA1X_Bits'Address use UESTA1X_Addr;
  384. pragma Volatile (UESTA1X_Bits);
  385. CURRBK0_Bit : constant Bit_Number := 0;
  386. CURRBK0_Mask : constant Unsigned_8 := 16#01#;
  387. CURRBK1_Bit : constant Bit_Number := 1;
  388. CURRBK1_Mask : constant Unsigned_8 := 16#02#;
  389. CTRLDIR_Bit : constant Bit_Number := 2;
  390. CTRLDIR_Mask : constant Unsigned_8 := 16#04#;
  391. UPCFG2X_Addr : constant Address := 16#ad#;
  392. UPCFG2X : Unsigned_8 ;
  393. for UPCFG2X'Address use UPCFG2X_Addr;
  394. pragma Volatile (UPCFG2X);
  395. UPCFG2X_Bits : Bits_In_Byte;
  396. for UPCFG2X_Bits'Address use UPCFG2X_Addr;
  397. pragma Volatile (UPCFG2X_Bits);
  398. UESTA0X_Addr : constant Address := 16#ee#;
  399. UESTA0X : Unsigned_8 ;
  400. for UESTA0X'Address use UESTA0X_Addr;
  401. pragma Volatile (UESTA0X);
  402. UESTA0X_Bits : Bits_In_Byte;
  403. for UESTA0X_Bits'Address use UESTA0X_Addr;
  404. pragma Volatile (UESTA0X_Bits);
  405. NBUSYBK0_Bit : constant Bit_Number := 0;
  406. NBUSYBK0_Mask : constant Unsigned_8 := 16#01#;
  407. NBUSYBK1_Bit : constant Bit_Number := 1;
  408. NBUSYBK1_Mask : constant Unsigned_8 := 16#02#;
  409. DTSEQ0_Bit : constant Bit_Number := 2;
  410. DTSEQ0_Mask : constant Unsigned_8 := 16#04#;
  411. DTSEQ1_Bit : constant Bit_Number := 3;
  412. DTSEQ1_Mask : constant Unsigned_8 := 16#08#;
  413. UNDERFI_Bit : constant Bit_Number := 5;
  414. UNDERFI_Mask : constant Unsigned_8 := 16#20#;
  415. OVERFI_Bit : constant Bit_Number := 6;
  416. OVERFI_Mask : constant Unsigned_8 := 16#40#;
  417. CFGOK_Bit : constant Bit_Number := 7;
  418. CFGOK_Mask : constant Unsigned_8 := 16#80#;
  419. UPSTAX_Addr : constant Address := 16#ac#;
  420. UPSTAX : Unsigned_8 ;
  421. for UPSTAX'Address use UPSTAX_Addr;
  422. pragma Volatile (UPSTAX);
  423. UPSTAX_Bits : Bits_In_Byte;
  424. for UPSTAX_Bits'Address use UPSTAX_Addr;
  425. pragma Volatile (UPSTAX_Bits);
  426. UECFG1X_Addr : constant Address := 16#ed#;
  427. UECFG1X : Unsigned_8 ;
  428. for UECFG1X'Address use UECFG1X_Addr;
  429. pragma Volatile (UECFG1X);
  430. UECFG1X_Bits : Bits_In_Byte;
  431. for UECFG1X_Bits'Address use UECFG1X_Addr;
  432. pragma Volatile (UECFG1X_Bits);
  433. ALLOC_Bit : constant Bit_Number := 1;
  434. ALLOC_Mask : constant Unsigned_8 := 16#02#;
  435. EPBK0_Bit : constant Bit_Number := 2;
  436. EPBK0_Mask : constant Unsigned_8 := 16#04#;
  437. EPBK1_Bit : constant Bit_Number := 3;
  438. EPBK1_Mask : constant Unsigned_8 := 16#08#;
  439. EPSIZE0_Bit : constant Bit_Number := 4;
  440. EPSIZE0_Mask : constant Unsigned_8 := 16#10#;
  441. EPSIZE1_Bit : constant Bit_Number := 5;
  442. EPSIZE1_Mask : constant Unsigned_8 := 16#20#;
  443. EPSIZE2_Bit : constant Bit_Number := 6;
  444. EPSIZE2_Mask : constant Unsigned_8 := 16#40#;
  445. UPCFG1X_Addr : constant Address := 16#ab#;
  446. UPCFG1X : Unsigned_8 ;
  447. for UPCFG1X'Address use UPCFG1X_Addr;
  448. pragma Volatile (UPCFG1X);
  449. UPCFG1X_Bits : Bits_In_Byte;
  450. for UPCFG1X_Bits'Address use UPCFG1X_Addr;
  451. pragma Volatile (UPCFG1X_Bits);
  452. UECFG0X_Addr : constant Address := 16#ec#;
  453. UECFG0X : Unsigned_8 ;
  454. for UECFG0X'Address use UECFG0X_Addr;
  455. pragma Volatile (UECFG0X);
  456. UECFG0X_Bits : Bits_In_Byte;
  457. for UECFG0X_Bits'Address use UECFG0X_Addr;
  458. pragma Volatile (UECFG0X_Bits);
  459. EPDIR_Bit : constant Bit_Number := 0;
  460. EPDIR_Mask : constant Unsigned_8 := 16#01#;
  461. EPTYPE0_Bit : constant Bit_Number := 6;
  462. EPTYPE0_Mask : constant Unsigned_8 := 16#40#;
  463. EPTYPE1_Bit : constant Bit_Number := 7;
  464. EPTYPE1_Mask : constant Unsigned_8 := 16#80#;
  465. UPCFG0X_Addr : constant Address := 16#aa#;
  466. UPCFG0X : Unsigned_8 ;
  467. for UPCFG0X'Address use UPCFG0X_Addr;
  468. pragma Volatile (UPCFG0X);
  469. UPCFG0X_Bits : Bits_In_Byte;
  470. for UPCFG0X_Bits'Address use UPCFG0X_Addr;
  471. pragma Volatile (UPCFG0X_Bits);
  472. UECONX_Addr : constant Address := 16#eb#;
  473. UECONX : Unsigned_8 ;
  474. for UECONX'Address use UECONX_Addr;
  475. pragma Volatile (UECONX);
  476. UECONX_Bits : Bits_In_Byte;
  477. for UECONX_Bits'Address use UECONX_Addr;
  478. pragma Volatile (UECONX_Bits);
  479. EPEN_Bit : constant Bit_Number := 0;
  480. EPEN_Mask : constant Unsigned_8 := 16#01#;
  481. RSTDT_Bit : constant Bit_Number := 3;
  482. RSTDT_Mask : constant Unsigned_8 := 16#08#;
  483. STALLRQC_Bit : constant Bit_Number := 4;
  484. STALLRQC_Mask : constant Unsigned_8 := 16#10#;
  485. STALLRQ_Bit : constant Bit_Number := 5;
  486. STALLRQ_Mask : constant Unsigned_8 := 16#20#;
  487. UPCONX_Addr : constant Address := 16#a9#;
  488. UPCONX : Unsigned_8 ;
  489. for UPCONX'Address use UPCONX_Addr;
  490. pragma Volatile (UPCONX);
  491. UPCONX_Bits : Bits_In_Byte;
  492. for UPCONX_Bits'Address use UPCONX_Addr;
  493. pragma Volatile (UPCONX_Bits);
  494. UERST_Addr : constant Address := 16#ea#;
  495. UERST : Unsigned_8 ;
  496. for UERST'Address use UERST_Addr;
  497. pragma Volatile (UERST);
  498. UERST_Bits : Bits_In_Byte;
  499. for UERST_Bits'Address use UERST_Addr;
  500. pragma Volatile (UERST_Bits);
  501. EPRST0_Bit : constant Bit_Number := 0;
  502. EPRST0_Mask : constant Unsigned_8 := 16#01#;
  503. EPRST1_Bit : constant Bit_Number := 1;
  504. EPRST1_Mask : constant Unsigned_8 := 16#02#;
  505. EPRST2_Bit : constant Bit_Number := 2;
  506. EPRST2_Mask : constant Unsigned_8 := 16#04#;
  507. EPRST3_Bit : constant Bit_Number := 3;
  508. EPRST3_Mask : constant Unsigned_8 := 16#08#;
  509. EPRST4_Bit : constant Bit_Number := 4;
  510. EPRST4_Mask : constant Unsigned_8 := 16#10#;
  511. UPRST_Addr : constant Address := 16#a8#;
  512. UPRST : Unsigned_8 ;
  513. for UPRST'Address use UPRST_Addr;
  514. pragma Volatile (UPRST);
  515. UPRST_Bits : Bits_In_Byte;
  516. for UPRST_Bits'Address use UPRST_Addr;
  517. pragma Volatile (UPRST_Bits);
  518. UENUM_Addr : constant Address := 16#e9#;
  519. UENUM : Unsigned_8 ;
  520. for UENUM'Address use UENUM_Addr;
  521. pragma Volatile (UENUM);
  522. UENUM_Bits : Bits_In_Byte;
  523. for UENUM_Bits'Address use UENUM_Addr;
  524. pragma Volatile (UENUM_Bits);
  525. EPNUM0_Bit : constant Bit_Number := 0;
  526. EPNUM0_Mask : constant Unsigned_8 := 16#01#;
  527. EPNUM1_Bit : constant Bit_Number := 1;
  528. EPNUM1_Mask : constant Unsigned_8 := 16#02#;
  529. EPNUM2_Bit : constant Bit_Number := 2;
  530. EPNUM2_Mask : constant Unsigned_8 := 16#04#;
  531. UPNUM_Addr : constant Address := 16#a7#;
  532. UPNUM : Unsigned_8 ;
  533. for UPNUM'Address use UPNUM_Addr;
  534. pragma Volatile (UPNUM);
  535. UPNUM_Bits : Bits_In_Byte;
  536. for UPNUM_Bits'Address use UPNUM_Addr;
  537. pragma Volatile (UPNUM_Bits);
  538. UEINTX_Addr : constant Address := 16#e8#;
  539. UEINTX : Unsigned_8 ;
  540. for UEINTX'Address use UEINTX_Addr;
  541. pragma Volatile (UEINTX);
  542. UEINTX_Bits : Bits_In_Byte;
  543. for UEINTX_Bits'Address use UEINTX_Addr;
  544. pragma Volatile (UEINTX_Bits);
  545. TXINI_Bit : constant Bit_Number := 0;
  546. TXINI_Mask : constant Unsigned_8 := 16#01#;
  547. STALLEDI_Bit : constant Bit_Number := 1;
  548. STALLEDI_Mask : constant Unsigned_8 := 16#02#;
  549. RXOUTI_Bit : constant Bit_Number := 2;
  550. RXOUTI_Mask : constant Unsigned_8 := 16#04#;
  551. RXSTPI_Bit : constant Bit_Number := 3;
  552. RXSTPI_Mask : constant Unsigned_8 := 16#08#;
  553. NAKOUTI_Bit : constant Bit_Number := 4;
  554. NAKOUTI_Mask : constant Unsigned_8 := 16#10#;
  555. RWAL_Bit : constant Bit_Number := 5;
  556. RWAL_Mask : constant Unsigned_8 := 16#20#;
  557. NAKINI_Bit : constant Bit_Number := 6;
  558. NAKINI_Mask : constant Unsigned_8 := 16#40#;
  559. FIFOCON_Bit : constant Bit_Number := 7;
  560. FIFOCON_Mask : constant Unsigned_8 := 16#80#;
  561. UPINTX_Addr : constant Address := 16#a6#;
  562. UPINTX : Unsigned_8 ;
  563. for UPINTX'Address use UPINTX_Addr;
  564. pragma Volatile (UPINTX);
  565. UPINTX_Bits : Bits_In_Byte;
  566. for UPINTX_Bits'Address use UPINTX_Addr;
  567. pragma Volatile (UPINTX_Bits);
  568. UDTST_Addr : constant Address := 16#e7#;
  569. UDTST : Unsigned_8 ;
  570. for UDTST'Address use UDTST_Addr;
  571. pragma Volatile (UDTST);
  572. UDTST_Bits : Bits_In_Byte;
  573. for UDTST_Bits'Address use UDTST_Addr;
  574. pragma Volatile (UDTST_Bits);
  575. UPINRQX_Addr : constant Address := 16#a5#;
  576. UPINRQX : Unsigned_8 ;
  577. for UPINRQX'Address use UPINRQX_Addr;
  578. pragma Volatile (UPINRQX);
  579. UPINRQX_Bits : Bits_In_Byte;
  580. for UPINRQX_Bits'Address use UPINRQX_Addr;
  581. pragma Volatile (UPINRQX_Bits);
  582. UDMFN_Addr : constant Address := 16#e6#;
  583. UDMFN : Unsigned_8 ;
  584. for UDMFN'Address use UDMFN_Addr;
  585. pragma Volatile (UDMFN);
  586. UDMFN_Bits : Bits_In_Byte;
  587. for UDMFN_Bits'Address use UDMFN_Addr;
  588. pragma Volatile (UDMFN_Bits);
  589. FNCERR_Bit : constant Bit_Number := 4;
  590. FNCERR_Mask : constant Unsigned_8 := 16#10#;
  591. UHFLEN_Addr : constant Address := 16#a4#;
  592. UHFLEN : Unsigned_8 ;
  593. for UHFLEN'Address use UHFLEN_Addr;
  594. pragma Volatile (UHFLEN);
  595. UHFLEN_Bits : Bits_In_Byte;
  596. for UHFLEN_Bits'Address use UHFLEN_Addr;
  597. pragma Volatile (UHFLEN_Bits);
  598. UDFNUMH_Addr : constant Address := 16#e5#;
  599. UDFNUMH : Unsigned_8 ;
  600. for UDFNUMH'Address use UDFNUMH_Addr;
  601. pragma Volatile (UDFNUMH);
  602. UDFNUMH_Bits : Bits_In_Byte;
  603. for UDFNUMH_Bits'Address use UDFNUMH_Addr;
  604. pragma Volatile (UDFNUMH_Bits);
  605. FNUM8_Bit : constant Bit_Number := 0;
  606. FNUM8_Mask : constant Unsigned_8 := 16#01#;
  607. FNUM9_Bit : constant Bit_Number := 1;
  608. FNUM9_Mask : constant Unsigned_8 := 16#02#;
  609. FNUM10_Bit : constant Bit_Number := 2;
  610. FNUM10_Mask : constant Unsigned_8 := 16#04#;
  611. UHFNUMH_Addr : constant Address := 16#a3#;
  612. UHFNUMH : Unsigned_8 ;
  613. for UHFNUMH'Address use UHFNUMH_Addr;
  614. pragma Volatile (UHFNUMH);
  615. UHFNUMH_Bits : Bits_In_Byte;
  616. for UHFNUMH_Bits'Address use UHFNUMH_Addr;
  617. pragma Volatile (UHFNUMH_Bits);
  618. UDFNUML_Addr : constant Address := 16#e4#;
  619. UDFNUM : Unsigned_16;
  620. for UDFNUM'Address use UDFNUML_Addr;
  621. pragma Volatile (UDFNUM);
  622. UDFNUML : Unsigned_8 ;
  623. for UDFNUML'Address use UDFNUML_Addr;
  624. pragma Volatile (UDFNUML);
  625. UDFNUML_Bits : Bits_In_Byte;
  626. for UDFNUML_Bits'Address use UDFNUML_Addr;
  627. pragma Volatile (UDFNUML_Bits);
  628. FNUM0_Bit : constant Bit_Number := 0;
  629. FNUM0_Mask : constant Unsigned_8 := 16#01#;
  630. FNUM1_Bit : constant Bit_Number := 1;
  631. FNUM1_Mask : constant Unsigned_8 := 16#02#;
  632. FNUM2_Bit : constant Bit_Number := 2;
  633. FNUM2_Mask : constant Unsigned_8 := 16#04#;
  634. FNUM3_Bit : constant Bit_Number := 3;
  635. FNUM3_Mask : constant Unsigned_8 := 16#08#;
  636. FNUM4_Bit : constant Bit_Number := 4;
  637. FNUM4_Mask : constant Unsigned_8 := 16#10#;
  638. FNUM5_Bit : constant Bit_Number := 5;
  639. FNUM5_Mask : constant Unsigned_8 := 16#20#;
  640. FNUM6_Bit : constant Bit_Number := 6;
  641. FNUM6_Mask : constant Unsigned_8 := 16#40#;
  642. FNUM7_Bit : constant Bit_Number := 7;
  643. FNUM7_Mask : constant Unsigned_8 := 16#80#;
  644. UHFNUML_Addr : constant Address := 16#a2#;
  645. UHFNUML : Unsigned_8 ;
  646. for UHFNUML'Address use UHFNUML_Addr;
  647. pragma Volatile (UHFNUML);
  648. UHFNUML_Bits : Bits_In_Byte;
  649. for UHFNUML_Bits'Address use UHFNUML_Addr;
  650. pragma Volatile (UHFNUML_Bits);
  651. UDADDR_Addr : constant Address := 16#e3#;
  652. UDADDR : Unsigned_8 ;
  653. for UDADDR'Address use UDADDR_Addr;
  654. pragma Volatile (UDADDR);
  655. UDADDR_Bits : Bits_In_Byte;
  656. for UDADDR_Bits'Address use UDADDR_Addr;
  657. pragma Volatile (UDADDR_Bits);
  658. UADD0_Bit : constant Bit_Number := 0;
  659. UADD0_Mask : constant Unsigned_8 := 16#01#;
  660. UADD1_Bit : constant Bit_Number := 1;
  661. UADD1_Mask : constant Unsigned_8 := 16#02#;
  662. UADD2_Bit : constant Bit_Number := 2;
  663. UADD2_Mask : constant Unsigned_8 := 16#04#;
  664. UADD3_Bit : constant Bit_Number := 3;
  665. UADD3_Mask : constant Unsigned_8 := 16#08#;
  666. UADD4_Bit : constant Bit_Number := 4;
  667. UADD4_Mask : constant Unsigned_8 := 16#10#;
  668. UADD5_Bit : constant Bit_Number := 5;
  669. UADD5_Mask : constant Unsigned_8 := 16#20#;
  670. UADD6_Bit : constant Bit_Number := 6;
  671. UADD6_Mask : constant Unsigned_8 := 16#40#;
  672. ADDEN_Bit : constant Bit_Number := 7;
  673. ADDEN_Mask : constant Unsigned_8 := 16#80#;
  674. UHADDR_Addr : constant Address := 16#a1#;
  675. UHADDR : Unsigned_8 ;
  676. for UHADDR'Address use UHADDR_Addr;
  677. pragma Volatile (UHADDR);
  678. UHADDR_Bits : Bits_In_Byte;
  679. for UHADDR_Bits'Address use UHADDR_Addr;
  680. pragma Volatile (UHADDR_Bits);
  681. UDIEN_Addr : constant Address := 16#e2#;
  682. UDIEN : Unsigned_8 ;
  683. for UDIEN'Address use UDIEN_Addr;
  684. pragma Volatile (UDIEN);
  685. UDIEN_Bits : Bits_In_Byte;
  686. for UDIEN_Bits'Address use UDIEN_Addr;
  687. pragma Volatile (UDIEN_Bits);
  688. SUSPE_Bit : constant Bit_Number := 0;
  689. SUSPE_Mask : constant Unsigned_8 := 16#01#;
  690. SOFE_Bit : constant Bit_Number := 2;
  691. SOFE_Mask : constant Unsigned_8 := 16#04#;
  692. EORSTE_Bit : constant Bit_Number := 3;
  693. EORSTE_Mask : constant Unsigned_8 := 16#08#;
  694. WAKEUPE_Bit : constant Bit_Number := 4;
  695. WAKEUPE_Mask : constant Unsigned_8 := 16#10#;
  696. EORSME_Bit : constant Bit_Number := 5;
  697. EORSME_Mask : constant Unsigned_8 := 16#20#;
  698. UPRSME_Bit : constant Bit_Number := 6;
  699. UPRSME_Mask : constant Unsigned_8 := 16#40#;
  700. UHIEN_Addr : constant Address := 16#a0#;
  701. UHIEN : Unsigned_8 ;
  702. for UHIEN'Address use UHIEN_Addr;
  703. pragma Volatile (UHIEN);
  704. UHIEN_Bits : Bits_In_Byte;
  705. for UHIEN_Bits'Address use UHIEN_Addr;
  706. pragma Volatile (UHIEN_Bits);
  707. UDINT_Addr : constant Address := 16#e1#;
  708. UDINT : Unsigned_8 ;
  709. for UDINT'Address use UDINT_Addr;
  710. pragma Volatile (UDINT);
  711. UDINT_Bits : Bits_In_Byte;
  712. for UDINT_Bits'Address use UDINT_Addr;
  713. pragma Volatile (UDINT_Bits);
  714. SUSPI_Bit : constant Bit_Number := 0;
  715. SUSPI_Mask : constant Unsigned_8 := 16#01#;
  716. SOFI_Bit : constant Bit_Number := 2;
  717. SOFI_Mask : constant Unsigned_8 := 16#04#;
  718. EORSTI_Bit : constant Bit_Number := 3;
  719. EORSTI_Mask : constant Unsigned_8 := 16#08#;
  720. WAKEUPI_Bit : constant Bit_Number := 4;
  721. WAKEUPI_Mask : constant Unsigned_8 := 16#10#;
  722. EORSMI_Bit : constant Bit_Number := 5;
  723. EORSMI_Mask : constant Unsigned_8 := 16#20#;
  724. UPRSMI_Bit : constant Bit_Number := 6;
  725. UPRSMI_Mask : constant Unsigned_8 := 16#40#;
  726. UHINT_Addr : constant Address := 16#9f#;
  727. UHINT : Unsigned_8 ;
  728. for UHINT'Address use UHINT_Addr;
  729. pragma Volatile (UHINT);
  730. UHINT_Bits : Bits_In_Byte;
  731. for UHINT_Bits'Address use UHINT_Addr;
  732. pragma Volatile (UHINT_Bits);
  733. UDCON_Addr : constant Address := 16#e0#;
  734. UDCON : Unsigned_8 ;
  735. for UDCON'Address use UDCON_Addr;
  736. pragma Volatile (UDCON);
  737. UDCON_Bits : Bits_In_Byte;
  738. for UDCON_Bits'Address use UDCON_Addr;
  739. pragma Volatile (UDCON_Bits);
  740. DETACH_Bit : constant Bit_Number := 0;
  741. DETACH_Mask : constant Unsigned_8 := 16#01#;
  742. RMWKUP_Bit : constant Bit_Number := 1;
  743. RMWKUP_Mask : constant Unsigned_8 := 16#02#;
  744. RSTCPU_Bit : constant Bit_Number := 2;
  745. RSTCPU_Mask : constant Unsigned_8 := 16#04#;
  746. UHCON_Addr : constant Address := 16#9e#;
  747. UHCON : Unsigned_8 ;
  748. for UHCON'Address use UHCON_Addr;
  749. pragma Volatile (UHCON);
  750. UHCON_Bits : Bits_In_Byte;
  751. for UHCON_Bits'Address use UHCON_Addr;
  752. pragma Volatile (UHCON_Bits);
  753. USBINT_Addr : constant Address := 16#da#;
  754. USBINT : Unsigned_8 ;
  755. for USBINT'Address use USBINT_Addr;
  756. pragma Volatile (USBINT);
  757. USBINT_Bits : Bits_In_Byte;
  758. for USBINT_Bits'Address use USBINT_Addr;
  759. pragma Volatile (USBINT_Bits);
  760. -- USB General Control Register
  761. USBCON_Addr : constant Address := 16#d8#;
  762. USBCON : Unsigned_8 ;
  763. for USBCON'Address use USBCON_Addr;
  764. pragma Volatile (USBCON);
  765. USBCON_Bits : Bits_In_Byte;
  766. for USBCON_Bits'Address use USBCON_Addr;
  767. pragma Volatile (USBCON_Bits);
  768. FRZCLK_Bit : constant Bit_Number := 5;
  769. FRZCLK_Mask : constant Unsigned_8 := 16#20#;
  770. USBE_Bit : constant Bit_Number := 7;
  771. USBE_Mask : constant Unsigned_8 := 16#80#;
  772. -- Regulator Control Register
  773. REGCR_Addr : constant Address := 16#63#;
  774. REGCR : Unsigned_8 ;
  775. for REGCR'Address use REGCR_Addr;
  776. pragma Volatile (REGCR);
  777. REGCR_Bits : Bits_In_Byte;
  778. for REGCR_Bits'Address use REGCR_Addr;
  779. pragma Volatile (REGCR_Bits);
  780. REGDIS_Bit : constant Bit_Number := 0;
  781. REGDIS_Mask : constant Unsigned_8 := 16#01#;
  782. -- USART I/O Data Register
  783. UDR1_Addr : constant Address := 16#ce#;
  784. UDR1 : Unsigned_8 ;
  785. for UDR1'Address use UDR1_Addr;
  786. pragma Volatile (UDR1);
  787. UDR1_Bits : Bits_In_Byte;
  788. for UDR1_Bits'Address use UDR1_Addr;
  789. pragma Volatile (UDR1_Bits);
  790. -- USART I/O Data Register bit 0
  791. UDR1_0_Bit : constant Bit_Number := 0;
  792. UDR1_0_Mask : constant Unsigned_8 := 16#01#;
  793. -- USART I/O Data Register bit 1
  794. UDR1_1_Bit : constant Bit_Number := 1;
  795. UDR1_1_Mask : constant Unsigned_8 := 16#02#;
  796. -- USART I/O Data Register bit 2
  797. UDR1_2_Bit : constant Bit_Number := 2;
  798. UDR1_2_Mask : constant Unsigned_8 := 16#04#;
  799. -- USART I/O Data Register bit 3
  800. UDR1_3_Bit : constant Bit_Number := 3;
  801. UDR1_3_Mask : constant Unsigned_8 := 16#08#;
  802. -- USART I/O Data Register bit 4
  803. UDR1_4_Bit : constant Bit_Number := 4;
  804. UDR1_4_Mask : constant Unsigned_8 := 16#10#;
  805. -- USART I/O Data Register bit 5
  806. UDR1_5_Bit : constant Bit_Number := 5;
  807. UDR1_5_Mask : constant Unsigned_8 := 16#20#;
  808. -- USART I/O Data Register bit 6
  809. UDR1_6_Bit : constant Bit_Number := 6;
  810. UDR1_6_Mask : constant Unsigned_8 := 16#40#;
  811. -- USART I/O Data Register bit 7
  812. UDR1_7_Bit : constant Bit_Number := 7;
  813. UDR1_7_Mask : constant Unsigned_8 := 16#80#;
  814. -- USART Baud Rate Register High Byte
  815. UBRR1H_Addr : constant Address := 16#cd#;
  816. UBRR1H : Unsigned_8 ;
  817. for UBRR1H'Address use UBRR1H_Addr;
  818. pragma Volatile (UBRR1H);
  819. UBRR1H_Bits : Bits_In_Byte;
  820. for UBRR1H_Bits'Address use UBRR1H_Addr;
  821. pragma Volatile (UBRR1H_Bits);
  822. -- USART Baud Rate Register bit 8
  823. UBRR8_Bit : constant Bit_Number := 0;
  824. UBRR8_Mask : constant Unsigned_8 := 16#01#;
  825. -- USART Baud Rate Register bit 9
  826. UBRR9_Bit : constant Bit_Number := 1;
  827. UBRR9_Mask : constant Unsigned_8 := 16#02#;
  828. -- USART Baud Rate Register bit 10
  829. UBRR10_Bit : constant Bit_Number := 2;
  830. UBRR10_Mask : constant Unsigned_8 := 16#04#;
  831. -- USART Baud Rate Register bit 11
  832. UBRR11_Bit : constant Bit_Number := 3;
  833. UBRR11_Mask : constant Unsigned_8 := 16#08#;
  834. -- USART Baud Rate Register Low Byte
  835. UBRR1L_Addr : constant Address := 16#cc#;
  836. UBRR1 : Unsigned_16;
  837. for UBRR1'Address use UBRR1L_Addr;
  838. pragma Volatile (UBRR1);
  839. UBRR1L : Unsigned_8 ;
  840. for UBRR1L'Address use UBRR1L_Addr;
  841. pragma Volatile (UBRR1L);
  842. UBRR1L_Bits : Bits_In_Byte;
  843. for UBRR1L_Bits'Address use UBRR1L_Addr;
  844. pragma Volatile (UBRR1L_Bits);
  845. -- USART Baud Rate Register bit 0
  846. UBRR0_Bit : constant Bit_Number := 0;
  847. UBRR0_Mask : constant Unsigned_8 := 16#01#;
  848. -- USART Baud Rate Register bit 1
  849. -- UBRR1_Bit : constant Bit_Number := 1;
  850. -- UBRR1_Mask : constant Unsigned_8 := 16#02#;
  851. -- USART Baud Rate Register bit 2
  852. UBRR2_Bit : constant Bit_Number := 2;
  853. UBRR2_Mask : constant Unsigned_8 := 16#04#;
  854. -- USART Baud Rate Register bit 3
  855. UBRR3_Bit : constant Bit_Number := 3;
  856. UBRR3_Mask : constant Unsigned_8 := 16#08#;
  857. -- USART Baud Rate Register bit 4
  858. UBRR4_Bit : constant Bit_Number := 4;
  859. UBRR4_Mask : constant Unsigned_8 := 16#10#;
  860. -- USART Baud Rate Register bit 5
  861. UBRR5_Bit : constant Bit_Number := 5;
  862. UBRR5_Mask : constant Unsigned_8 := 16#20#;
  863. -- USART Baud Rate Register bit 6
  864. UBRR6_Bit : constant Bit_Number := 6;
  865. UBRR6_Mask : constant Unsigned_8 := 16#40#;
  866. -- USART Baud Rate Register bit 7
  867. UBRR7_Bit : constant Bit_Number := 7;
  868. UBRR7_Mask : constant Unsigned_8 := 16#80#;
  869. -- USART Control and Status Register D
  870. UCSR1D_Addr : constant Address := 16#cb#;
  871. UCSR1D : Unsigned_8 ;
  872. for UCSR1D'Address use UCSR1D_Addr;
  873. pragma Volatile (UCSR1D);
  874. UCSR1D_Bits : Bits_In_Byte;
  875. for UCSR1D_Bits'Address use UCSR1D_Addr;
  876. pragma Volatile (UCSR1D_Bits);
  877. -- RTS Enable
  878. RTSEN_Bit : constant Bit_Number := 0;
  879. RTSEN_Mask : constant Unsigned_8 := 16#01#;
  880. -- CTS Enable
  881. CTSEN_Bit : constant Bit_Number := 1;
  882. CTSEN_Mask : constant Unsigned_8 := 16#02#;
  883. -- USART Control and Status Register C
  884. UCSR1C_Addr : constant Address := 16#ca#;
  885. UCSR1C : Unsigned_8 ;
  886. for UCSR1C'Address use UCSR1C_Addr;
  887. pragma Volatile (UCSR1C);
  888. UCSR1C_Bits : Bits_In_Byte;
  889. for UCSR1C_Bits'Address use UCSR1C_Addr;
  890. pragma Volatile (UCSR1C_Bits);
  891. -- Clock Polarity
  892. UCPOL1_Bit : constant Bit_Number := 0;
  893. UCPOL1_Mask : constant Unsigned_8 := 16#01#;
  894. -- Character Size
  895. UCSZ10_Bit : constant Bit_Number := 1;
  896. UCSZ10_Mask : constant Unsigned_8 := 16#02#;
  897. -- Character Size
  898. UCSZ11_Bit : constant Bit_Number := 2;
  899. UCSZ11_Mask : constant Unsigned_8 := 16#04#;
  900. -- Stop Bit Select
  901. USBS1_Bit : constant Bit_Number := 3;
  902. USBS1_Mask : constant Unsigned_8 := 16#08#;
  903. -- Parity Mode Bit 0
  904. UPM10_Bit : constant Bit_Number := 4;
  905. UPM10_Mask : constant Unsigned_8 := 16#10#;
  906. -- Parity Mode Bit 1
  907. UPM11_Bit : constant Bit_Number := 5;
  908. UPM11_Mask : constant Unsigned_8 := 16#20#;
  909. -- USART Mode Select
  910. UMSEL10_Bit : constant Bit_Number := 6;
  911. UMSEL10_Mask : constant Unsigned_8 := 16#40#;
  912. -- USART Mode Select
  913. UMSEL11_Bit : constant Bit_Number := 7;
  914. UMSEL11_Mask : constant Unsigned_8 := 16#80#;
  915. -- USART Control and Status Register B
  916. UCSR1B_Addr : constant Address := 16#c9#;
  917. UCSR1B : Unsigned_8 ;
  918. for UCSR1B'Address use UCSR1B_Addr;
  919. pragma Volatile (UCSR1B);
  920. UCSR1B_Bits : Bits_In_Byte;
  921. for UCSR1B_Bits'Address use UCSR1B_Addr;
  922. pragma Volatile (UCSR1B_Bits);
  923. -- Transmit Data Bit 8
  924. TXB81_Bit : constant Bit_Number := 0;
  925. TXB81_Mask : constant Unsigned_8 := 16#01#;
  926. -- Receive Data Bit 8
  927. RXB81_Bit : constant Bit_Number := 1;
  928. RXB81_Mask : constant Unsigned_8 := 16#02#;
  929. -- Character Size
  930. UCSZ12_Bit : constant Bit_Number := 2;
  931. UCSZ12_Mask : constant Unsigned_8 := 16#04#;
  932. -- Transmitter Enable
  933. TXEN1_Bit : constant Bit_Number := 3;
  934. TXEN1_Mask : constant Unsigned_8 := 16#08#;
  935. -- Receiver Enable
  936. RXEN1_Bit : constant Bit_Number := 4;
  937. RXEN1_Mask : constant Unsigned_8 := 16#10#;
  938. -- USART Data register Empty Interrupt Enable
  939. UDRIE1_Bit : constant Bit_Number := 5;
  940. UDRIE1_Mask : constant Unsigned_8 := 16#20#;
  941. -- TX Complete Interrupt Enable
  942. TXCIE1_Bit : constant Bit_Number := 6;
  943. TXCIE1_Mask : constant Unsigned_8 := 16#40#;
  944. -- RX Complete Interrupt Enable
  945. RXCIE1_Bit : constant Bit_Number := 7;
  946. RXCIE1_Mask : constant Unsigned_8 := 16#80#;
  947. -- USART Control and Status Register A
  948. UCSR1A_Addr : constant Address := 16#c8#;
  949. UCSR1A : Unsigned_8 ;
  950. for UCSR1A'Address use UCSR1A_Addr;
  951. pragma Volatile (UCSR1A);
  952. UCSR1A_Bits : Bits_In_Byte;
  953. for UCSR1A_Bits'Address use UCSR1A_Addr;
  954. pragma Volatile (UCSR1A_Bits);
  955. -- Multi-processor Communication Mode
  956. MPCM1_Bit : constant Bit_Number := 0;
  957. MPCM1_Mask : constant Unsigned_8 := 16#01#;
  958. -- Double the USART transmission speed
  959. U2X1_Bit : constant Bit_Number := 1;
  960. U2X1_Mask : constant Unsigned_8 := 16#02#;
  961. -- Parity Error
  962. UPE1_Bit : constant Bit_Number := 2;
  963. UPE1_Mask : constant Unsigned_8 := 16#04#;
  964. -- Data overRun
  965. DOR1_Bit : constant Bit_Number := 3;
  966. DOR1_Mask : constant Unsigned_8 := 16#08#;
  967. -- Framing Error
  968. FE1_Bit : constant Bit_Number := 4;
  969. FE1_Mask : constant Unsigned_8 := 16#10#;
  970. -- USART Data Register Empty
  971. UDRE1_Bit : constant Bit_Number := 5;
  972. UDRE1_Mask : constant Unsigned_8 := 16#20#;
  973. -- USART Transmitt Complete
  974. TXC1_Bit : constant Bit_Number := 6;
  975. TXC1_Mask : constant Unsigned_8 := 16#40#;
  976. -- USART Receive Complete
  977. RXC1_Bit : constant Bit_Number := 7;
  978. RXC1_Mask : constant Unsigned_8 := 16#80#;
  979. ASSR_Addr : constant Address := 16#b6#;
  980. ASSR : Unsigned_8 ;
  981. for ASSR'Address use ASSR_Addr;
  982. pragma Volatile (ASSR);
  983. ASSR_Bits : Bits_In_Byte;
  984. for ASSR_Bits'Address use ASSR_Addr;
  985. pragma Volatile (ASSR_Bits);
  986. OCR2B_Addr : constant Address := 16#b4#;
  987. OCR2B : Unsigned_8 ;
  988. for OCR2B'Address use OCR2B_Addr;
  989. pragma Volatile (OCR2B);
  990. OCR2B_Bits : Bits_In_Byte;
  991. for OCR2B_Bits'Address use OCR2B_Addr;
  992. pragma Volatile (OCR2B_Bits);
  993. OCR2A_Addr : constant Address := 16#b3#;
  994. OCR2A : Unsigned_8 ;
  995. for OCR2A'Address use OCR2A_Addr;
  996. pragma Volatile (OCR2A);
  997. OCR2A_Bits : Bits_In_Byte;
  998. for OCR2A_Bits'Address use OCR2A_Addr;
  999. pragma Volatile (OCR2A_Bits);
  1000. TCNT2_Addr : constant Address := 16#b2#;
  1001. TCNT2 : Unsigned_8 ;
  1002. for TCNT2'Address use TCNT2_Addr;
  1003. pragma Volatile (TCNT2);
  1004. TCNT2_Bits : Bits_In_Byte;
  1005. for TCNT2_Bits'Address use TCNT2_Addr;
  1006. pragma Volatile (TCNT2_Bits);
  1007. TCCR2B_Addr : constant Address := 16#b1#;
  1008. TCCR2B : Unsigned_8 ;
  1009. for TCCR2B'Address use TCCR2B_Addr;
  1010. pragma Volatile (TCCR2B);
  1011. TCCR2B_Bits : Bits_In_Byte;
  1012. for TCCR2B_Bits'Address use TCCR2B_Addr;
  1013. pragma Volatile (TCCR2B_Bits);
  1014. TCCR2A_Addr : constant Address := 16#b0#;
  1015. TCCR2A : Unsigned_8 ;
  1016. for TCCR2A'Address use TCCR2A_Addr;
  1017. pragma Volatile (TCCR2A);
  1018. TCCR2A_Bits : Bits_In_Byte;
  1019. for TCCR2A_Bits'Address use TCCR2A_Addr;
  1020. pragma Volatile (TCCR2A_Bits);
  1021. OCR3CH_Addr : constant Address := 16#9d#;
  1022. OCR3CH : Unsigned_8 ;
  1023. for OCR3CH'Address use OCR3CH_Addr;
  1024. pragma Volatile (OCR3CH);
  1025. OCR3CH_Bits : Bits_In_Byte;
  1026. for OCR3CH_Bits'Address use OCR3CH_Addr;
  1027. pragma Volatile (OCR3CH_Bits);
  1028. OCR3CL_Addr : constant Address := 16#9c#;
  1029. OCR3CL : Unsigned_8 ;
  1030. for OCR3CL'Address use OCR3CL_Addr;
  1031. pragma Volatile (OCR3CL);
  1032. OCR3CL_Bits : Bits_In_Byte;
  1033. for OCR3CL_Bits'Address use OCR3CL_Addr;
  1034. pragma Vo