]> git.sur5r.net Git - freertos/blob
199c44801c4559b037d00303053bdeb34addecec
[freertos] /
1 /*\r
2  * @brief HAL USB functions for the LPC18xx microcontrollers\r
3  *\r
4  * @note\r
5  * Copyright(C) NXP Semiconductors, 2012\r
6  * All rights reserved.\r
7  *\r
8  * @par\r
9  * Software that is described herein is for illustrative purposes only\r
10  * which provides customers with programming information regarding the\r
11  * LPC products.  This software is supplied "AS IS" without any warranties of\r
12  * any kind, and NXP Semiconductors and its licensor disclaim any and\r
13  * all warranties, express or implied, including all implied warranties of\r
14  * merchantability, fitness for a particular purpose and non-infringement of\r
15  * intellectual property rights.  NXP Semiconductors assumes no responsibility\r
16  * or liability for the use of the software, conveys no license or rights under any\r
17  * patent, copyright, mask work right, or any other intellectual property rights in\r
18  * or to any products. NXP Semiconductors reserves the right to make changes\r
19  * in the software without notification. NXP Semiconductors also makes no\r
20  * representation or warranty that such application will be suitable for the\r
21  * specified use without further testing or modification.\r
22  *\r
23  * @par\r
24  * Permission to use, copy, modify, and distribute this software and its\r
25  * documentation is hereby granted, under NXP Semiconductors' and its\r
26  * licensor's relevant copyrights in the software, without fee, provided that it\r
27  * is used in conjunction with NXP Semiconductors microcontrollers.  This\r
28  * copyright, permission, and disclaimer notice must appear in all copies of\r
29  * this code.\r
30  */\r
31 \r
32  /** @ingroup Group_HAL_LPC\r
33  *  @defgroup Group_HAL_LPC18xx Hardware Abstraction Layer LPC18XX\r
34  *  @{\r
35  */\r
36 \r
37 #ifndef __HAL_LPC18XX_H__\r
38 #define __HAL_LPC18XX_H__\r
39 \r
40 #include "chip.h"\r
41 \r
42 #define  __INCLUDE_FROM_USB_DRIVER\r
43 #include "../../USBMode.h"\r
44 \r
45 #define USBRAM_SECTION  RAM2\r
46 \r
47 #if defined(__ICCARM__)\r
48         #define __BSS(x)       @ ".ahb_sram1"\r
49 #elif defined(__CC_ARM)\r
50         #define __BSS(x)\r
51 #endif\r
52 /* bit defines for DEVICEADDR register. */\r
53 #define USBDEV_ADDR_AD  (1 << 24)\r
54 #define USBDEV_ADDR(n)  (((n) & 0x7F) << 25)\r
55 \r
56 /* Max USB Core specially for LPC18xx/43xx series. */\r
57 #define LPC18_43_MAX_USB_CORE   2\r
58 \r
59 /* This macro is used to get proper USB Register base address\r
60  * from specified USB core ID.\r
61  */\r
62 #define USB_REG(CoreID)         USB_REG_BASE_ADDR[CoreID]\r
63 \r
64 /* Terminated Link Mask of USB DMA. */\r
65 #define LINK_TERMINATE                          0x01\r
66 \r
67 /* Constant table stores base addresses of USB Register Structures. */\r
68 extern IP_USBHS_001_T * const USB_REG_BASE_ADDR[];\r
69 \r
70 /**\r
71  * @brief       Interrupt Handler (Host side).\r
72  *                      This handler is known as interrupt service routine of USB Host.\r
73  *\r
74  * @param       HostID          : Host ID\r
75  * @return      Nothing.\r
76  */\r
77 extern void HcdIrqHandler(uint8_t HostID);\r
78 \r
79 /**\r
80  * @brief       Interrupt Handler (Device side).\r
81  *                      This handler is known as interrupt service routine of USB Device.\r
82  *\r
83  * @param       corenum         : ID Number of USB Core to be processed.\r
84  * @return      Nothing.\r
85  */\r
86 extern void DcdIrqHandler (uint8_t corenum);\r
87 \r
88 void HAL_Reset (uint8_t corenum);\r
89 \r
90 #endif  // __HAL_LPC18XX_H__\r
91 \r
92 /** @} */\r