These are the examples provided for [[/users/frank26080115/libraries/LPC1700CMSIS_Lib/]] Note, the entire "program" is not compilable!

Committer:
frank26080115
Date:
Sun Mar 20 05:38:56 2011 +0000
Revision:
0:bf7b9fba3924

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frank26080115 0:bf7b9fba3924 1 /*----------------------------------------------------------------------------
frank26080115 0:bf7b9fba3924 2 * U S B - K e r n e l
frank26080115 0:bf7b9fba3924 3 *----------------------------------------------------------------------------
frank26080115 0:bf7b9fba3924 4 * Name: usbuser.c
frank26080115 0:bf7b9fba3924 5 * Purpose: USB Custom User Module
frank26080115 0:bf7b9fba3924 6 * Version: V1.20
frank26080115 0:bf7b9fba3924 7 *----------------------------------------------------------------------------
frank26080115 0:bf7b9fba3924 8 * This software is supplied "AS IS" without any warranties, express,
frank26080115 0:bf7b9fba3924 9 * implied or statutory, including but not limited to the implied
frank26080115 0:bf7b9fba3924 10 * warranties of fitness for purpose, satisfactory quality and
frank26080115 0:bf7b9fba3924 11 * noninfringement. Keil extends you a royalty-free right to reproduce
frank26080115 0:bf7b9fba3924 12 * and distribute executable files created using this software for use
frank26080115 0:bf7b9fba3924 13 * on NXP Semiconductors LPC family microcontroller devices only. Nothing
frank26080115 0:bf7b9fba3924 14 * else gives you the right to use this software.
frank26080115 0:bf7b9fba3924 15 *
frank26080115 0:bf7b9fba3924 16 * Copyright (c) 2009 Keil - An ARM Company. All rights reserved.
frank26080115 0:bf7b9fba3924 17 *---------------------------------------------------------------------------*/
frank26080115 0:bf7b9fba3924 18 #include "lpc_types.h"
frank26080115 0:bf7b9fba3924 19
frank26080115 0:bf7b9fba3924 20 #include "usb.h"
frank26080115 0:bf7b9fba3924 21 #include "usbcfg.h"
frank26080115 0:bf7b9fba3924 22 #include "usbhw.h"
frank26080115 0:bf7b9fba3924 23 #include "usbcore.h"
frank26080115 0:bf7b9fba3924 24 #include "usbuser.h"
frank26080115 0:bf7b9fba3924 25 #include "cdcuser.h"
frank26080115 0:bf7b9fba3924 26
frank26080115 0:bf7b9fba3924 27
frank26080115 0:bf7b9fba3924 28 /*
frank26080115 0:bf7b9fba3924 29 * USB Power Event Callback
frank26080115 0:bf7b9fba3924 30 * Called automatically on USB Power Event
frank26080115 0:bf7b9fba3924 31 * Parameter: power: On(TRUE)/Off(FALSE)
frank26080115 0:bf7b9fba3924 32 */
frank26080115 0:bf7b9fba3924 33
frank26080115 0:bf7b9fba3924 34 #if USB_POWER_EVENT
frank26080115 0:bf7b9fba3924 35 void USB_Power_Event (uint32_t power) {
frank26080115 0:bf7b9fba3924 36 }
frank26080115 0:bf7b9fba3924 37 #endif
frank26080115 0:bf7b9fba3924 38
frank26080115 0:bf7b9fba3924 39
frank26080115 0:bf7b9fba3924 40 /*
frank26080115 0:bf7b9fba3924 41 * USB Reset Event Callback
frank26080115 0:bf7b9fba3924 42 * Called automatically on USB Reset Event
frank26080115 0:bf7b9fba3924 43 */
frank26080115 0:bf7b9fba3924 44
frank26080115 0:bf7b9fba3924 45 #if USB_RESET_EVENT
frank26080115 0:bf7b9fba3924 46 void USB_Reset_Event (void) {
frank26080115 0:bf7b9fba3924 47 USB_ResetCore();
frank26080115 0:bf7b9fba3924 48 }
frank26080115 0:bf7b9fba3924 49 #endif
frank26080115 0:bf7b9fba3924 50
frank26080115 0:bf7b9fba3924 51
frank26080115 0:bf7b9fba3924 52 /*
frank26080115 0:bf7b9fba3924 53 * USB Suspend Event Callback
frank26080115 0:bf7b9fba3924 54 * Called automatically on USB Suspend Event
frank26080115 0:bf7b9fba3924 55 */
frank26080115 0:bf7b9fba3924 56
frank26080115 0:bf7b9fba3924 57 #if USB_SUSPEND_EVENT
frank26080115 0:bf7b9fba3924 58 void USB_Suspend_Event (void) {
frank26080115 0:bf7b9fba3924 59 }
frank26080115 0:bf7b9fba3924 60 #endif
frank26080115 0:bf7b9fba3924 61
frank26080115 0:bf7b9fba3924 62
frank26080115 0:bf7b9fba3924 63 /*
frank26080115 0:bf7b9fba3924 64 * USB Resume Event Callback
frank26080115 0:bf7b9fba3924 65 * Called automatically on USB Resume Event
frank26080115 0:bf7b9fba3924 66 */
frank26080115 0:bf7b9fba3924 67
frank26080115 0:bf7b9fba3924 68 #if USB_RESUME_EVENT
frank26080115 0:bf7b9fba3924 69 void USB_Resume_Event (void) {
frank26080115 0:bf7b9fba3924 70 }
frank26080115 0:bf7b9fba3924 71 #endif
frank26080115 0:bf7b9fba3924 72
frank26080115 0:bf7b9fba3924 73
frank26080115 0:bf7b9fba3924 74 /*
frank26080115 0:bf7b9fba3924 75 * USB Remote Wakeup Event Callback
frank26080115 0:bf7b9fba3924 76 * Called automatically on USB Remote Wakeup Event
frank26080115 0:bf7b9fba3924 77 */
frank26080115 0:bf7b9fba3924 78
frank26080115 0:bf7b9fba3924 79 #if USB_WAKEUP_EVENT
frank26080115 0:bf7b9fba3924 80 void USB_WakeUp_Event (void) {
frank26080115 0:bf7b9fba3924 81 }
frank26080115 0:bf7b9fba3924 82 #endif
frank26080115 0:bf7b9fba3924 83
frank26080115 0:bf7b9fba3924 84
frank26080115 0:bf7b9fba3924 85 /*
frank26080115 0:bf7b9fba3924 86 * USB Start of Frame Event Callback
frank26080115 0:bf7b9fba3924 87 * Called automatically on USB Start of Frame Event
frank26080115 0:bf7b9fba3924 88 */
frank26080115 0:bf7b9fba3924 89
frank26080115 0:bf7b9fba3924 90 #if USB_SOF_EVENT
frank26080115 0:bf7b9fba3924 91 void USB_SOF_Event (void) {
frank26080115 0:bf7b9fba3924 92 }
frank26080115 0:bf7b9fba3924 93 #endif
frank26080115 0:bf7b9fba3924 94
frank26080115 0:bf7b9fba3924 95
frank26080115 0:bf7b9fba3924 96 /*
frank26080115 0:bf7b9fba3924 97 * USB Error Event Callback
frank26080115 0:bf7b9fba3924 98 * Called automatically on USB Error Event
frank26080115 0:bf7b9fba3924 99 * Parameter: error: Error Code
frank26080115 0:bf7b9fba3924 100 */
frank26080115 0:bf7b9fba3924 101
frank26080115 0:bf7b9fba3924 102 #if USB_ERROR_EVENT
frank26080115 0:bf7b9fba3924 103 void USB_Error_Event (uint32_t error) {
frank26080115 0:bf7b9fba3924 104 }
frank26080115 0:bf7b9fba3924 105 #endif
frank26080115 0:bf7b9fba3924 106
frank26080115 0:bf7b9fba3924 107
frank26080115 0:bf7b9fba3924 108 /*
frank26080115 0:bf7b9fba3924 109 * USB Set Configuration Event Callback
frank26080115 0:bf7b9fba3924 110 * Called automatically on USB Set Configuration Request
frank26080115 0:bf7b9fba3924 111 */
frank26080115 0:bf7b9fba3924 112
frank26080115 0:bf7b9fba3924 113 #if USB_CONFIGURE_EVENT
frank26080115 0:bf7b9fba3924 114 void USB_Configure_Event (void) {
frank26080115 0:bf7b9fba3924 115
frank26080115 0:bf7b9fba3924 116 if (USB_Configuration) { /* Check if USB is configured */
frank26080115 0:bf7b9fba3924 117 /* add your code here */
frank26080115 0:bf7b9fba3924 118 }
frank26080115 0:bf7b9fba3924 119 }
frank26080115 0:bf7b9fba3924 120 #endif
frank26080115 0:bf7b9fba3924 121
frank26080115 0:bf7b9fba3924 122
frank26080115 0:bf7b9fba3924 123 /*
frank26080115 0:bf7b9fba3924 124 * USB Set Interface Event Callback
frank26080115 0:bf7b9fba3924 125 * Called automatically on USB Set Interface Request
frank26080115 0:bf7b9fba3924 126 */
frank26080115 0:bf7b9fba3924 127
frank26080115 0:bf7b9fba3924 128 #if USB_INTERFACE_EVENT
frank26080115 0:bf7b9fba3924 129 void USB_Interface_Event (void) {
frank26080115 0:bf7b9fba3924 130 }
frank26080115 0:bf7b9fba3924 131 #endif
frank26080115 0:bf7b9fba3924 132
frank26080115 0:bf7b9fba3924 133
frank26080115 0:bf7b9fba3924 134 /*
frank26080115 0:bf7b9fba3924 135 * USB Set/Clear Feature Event Callback
frank26080115 0:bf7b9fba3924 136 * Called automatically on USB Set/Clear Feature Request
frank26080115 0:bf7b9fba3924 137 */
frank26080115 0:bf7b9fba3924 138
frank26080115 0:bf7b9fba3924 139 #if USB_FEATURE_EVENT
frank26080115 0:bf7b9fba3924 140 void USB_Feature_Event (void) {
frank26080115 0:bf7b9fba3924 141 }
frank26080115 0:bf7b9fba3924 142 #endif
frank26080115 0:bf7b9fba3924 143
frank26080115 0:bf7b9fba3924 144
frank26080115 0:bf7b9fba3924 145 #define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)
frank26080115 0:bf7b9fba3924 146
frank26080115 0:bf7b9fba3924 147 /* USB Endpoint Events Callback Pointers */
frank26080115 0:bf7b9fba3924 148 void (* const USB_P_EP[16]) (uint32_t event) = {
frank26080115 0:bf7b9fba3924 149 P_EP(0),
frank26080115 0:bf7b9fba3924 150 P_EP(1),
frank26080115 0:bf7b9fba3924 151 P_EP(2),
frank26080115 0:bf7b9fba3924 152 P_EP(3),
frank26080115 0:bf7b9fba3924 153 P_EP(4),
frank26080115 0:bf7b9fba3924 154 P_EP(5),
frank26080115 0:bf7b9fba3924 155 P_EP(6),
frank26080115 0:bf7b9fba3924 156 P_EP(7),
frank26080115 0:bf7b9fba3924 157 P_EP(8),
frank26080115 0:bf7b9fba3924 158 P_EP(9),
frank26080115 0:bf7b9fba3924 159 P_EP(10),
frank26080115 0:bf7b9fba3924 160 P_EP(11),
frank26080115 0:bf7b9fba3924 161 P_EP(12),
frank26080115 0:bf7b9fba3924 162 P_EP(13),
frank26080115 0:bf7b9fba3924 163 P_EP(14),
frank26080115 0:bf7b9fba3924 164 P_EP(15),
frank26080115 0:bf7b9fba3924 165 };
frank26080115 0:bf7b9fba3924 166
frank26080115 0:bf7b9fba3924 167
frank26080115 0:bf7b9fba3924 168 /*
frank26080115 0:bf7b9fba3924 169 * USB Endpoint 1 Event Callback
frank26080115 0:bf7b9fba3924 170 * Called automatically on USB Endpoint 1 Event
frank26080115 0:bf7b9fba3924 171 * Parameter: event
frank26080115 0:bf7b9fba3924 172 */
frank26080115 0:bf7b9fba3924 173
frank26080115 0:bf7b9fba3924 174 void USB_EndPoint1 (uint32_t event) {
frank26080115 0:bf7b9fba3924 175 uint16_t temp;
frank26080115 0:bf7b9fba3924 176 static uint16_t serialState;
frank26080115 0:bf7b9fba3924 177
frank26080115 0:bf7b9fba3924 178 switch (event) {
frank26080115 0:bf7b9fba3924 179 case USB_EVT_IN:
frank26080115 0:bf7b9fba3924 180 temp = CDC_GetSerialState();
frank26080115 0:bf7b9fba3924 181 if (serialState != temp) {
frank26080115 0:bf7b9fba3924 182 serialState = temp;
frank26080115 0:bf7b9fba3924 183 CDC_NotificationIn(); /* send SERIAL_STATE notification */
frank26080115 0:bf7b9fba3924 184 }
frank26080115 0:bf7b9fba3924 185 break;
frank26080115 0:bf7b9fba3924 186 }
frank26080115 0:bf7b9fba3924 187 }
frank26080115 0:bf7b9fba3924 188
frank26080115 0:bf7b9fba3924 189
frank26080115 0:bf7b9fba3924 190 /*
frank26080115 0:bf7b9fba3924 191 * USB Endpoint 2 Event Callback
frank26080115 0:bf7b9fba3924 192 * Called automatically on USB Endpoint 2 Event
frank26080115 0:bf7b9fba3924 193 * Parameter: event
frank26080115 0:bf7b9fba3924 194 */
frank26080115 0:bf7b9fba3924 195
frank26080115 0:bf7b9fba3924 196 void USB_EndPoint2 (uint32_t event) {
frank26080115 0:bf7b9fba3924 197
frank26080115 0:bf7b9fba3924 198 switch (event) {
frank26080115 0:bf7b9fba3924 199 case USB_EVT_OUT:
frank26080115 0:bf7b9fba3924 200 CDC_BulkOut (); /* data received from Host */
frank26080115 0:bf7b9fba3924 201 break;
frank26080115 0:bf7b9fba3924 202 case USB_EVT_IN:
frank26080115 0:bf7b9fba3924 203 CDC_BulkIn (); /* data expected from Host */
frank26080115 0:bf7b9fba3924 204 break;
frank26080115 0:bf7b9fba3924 205 }
frank26080115 0:bf7b9fba3924 206 }
frank26080115 0:bf7b9fba3924 207
frank26080115 0:bf7b9fba3924 208
frank26080115 0:bf7b9fba3924 209 /*
frank26080115 0:bf7b9fba3924 210 * USB Endpoint 3 Event Callback
frank26080115 0:bf7b9fba3924 211 * Called automatically on USB Endpoint 3 Event
frank26080115 0:bf7b9fba3924 212 * Parameter: event
frank26080115 0:bf7b9fba3924 213 */
frank26080115 0:bf7b9fba3924 214
frank26080115 0:bf7b9fba3924 215 void USB_EndPoint3 (uint32_t event) {
frank26080115 0:bf7b9fba3924 216 }
frank26080115 0:bf7b9fba3924 217
frank26080115 0:bf7b9fba3924 218
frank26080115 0:bf7b9fba3924 219 /*
frank26080115 0:bf7b9fba3924 220 * USB Endpoint 4 Event Callback
frank26080115 0:bf7b9fba3924 221 * Called automatically on USB Endpoint 4 Event
frank26080115 0:bf7b9fba3924 222 * Parameter: event
frank26080115 0:bf7b9fba3924 223 */
frank26080115 0:bf7b9fba3924 224
frank26080115 0:bf7b9fba3924 225 void USB_EndPoint4 (uint32_t event) {
frank26080115 0:bf7b9fba3924 226 }
frank26080115 0:bf7b9fba3924 227
frank26080115 0:bf7b9fba3924 228
frank26080115 0:bf7b9fba3924 229 /*
frank26080115 0:bf7b9fba3924 230 * USB Endpoint 5 Event Callback
frank26080115 0:bf7b9fba3924 231 * Called automatically on USB Endpoint 5 Event
frank26080115 0:bf7b9fba3924 232 * Parameter: event
frank26080115 0:bf7b9fba3924 233 */
frank26080115 0:bf7b9fba3924 234
frank26080115 0:bf7b9fba3924 235 void USB_EndPoint5 (uint32_t event) {
frank26080115 0:bf7b9fba3924 236 }
frank26080115 0:bf7b9fba3924 237
frank26080115 0:bf7b9fba3924 238
frank26080115 0:bf7b9fba3924 239 /*
frank26080115 0:bf7b9fba3924 240 * USB Endpoint 6 Event Callback
frank26080115 0:bf7b9fba3924 241 * Called automatically on USB Endpoint 6 Event
frank26080115 0:bf7b9fba3924 242 * Parameter: event
frank26080115 0:bf7b9fba3924 243 */
frank26080115 0:bf7b9fba3924 244
frank26080115 0:bf7b9fba3924 245 void USB_EndPoint6 (uint32_t event) {
frank26080115 0:bf7b9fba3924 246 }
frank26080115 0:bf7b9fba3924 247
frank26080115 0:bf7b9fba3924 248
frank26080115 0:bf7b9fba3924 249 /*
frank26080115 0:bf7b9fba3924 250 * USB Endpoint 7 Event Callback
frank26080115 0:bf7b9fba3924 251 * Called automatically on USB Endpoint 7 Event
frank26080115 0:bf7b9fba3924 252 * Parameter: event
frank26080115 0:bf7b9fba3924 253 */
frank26080115 0:bf7b9fba3924 254
frank26080115 0:bf7b9fba3924 255 void USB_EndPoint7 (uint32_t event) {
frank26080115 0:bf7b9fba3924 256 }
frank26080115 0:bf7b9fba3924 257
frank26080115 0:bf7b9fba3924 258
frank26080115 0:bf7b9fba3924 259 /*
frank26080115 0:bf7b9fba3924 260 * USB Endpoint 8 Event Callback
frank26080115 0:bf7b9fba3924 261 * Called automatically on USB Endpoint 8 Event
frank26080115 0:bf7b9fba3924 262 * Parameter: event
frank26080115 0:bf7b9fba3924 263 */
frank26080115 0:bf7b9fba3924 264
frank26080115 0:bf7b9fba3924 265 void USB_EndPoint8 (uint32_t event) {
frank26080115 0:bf7b9fba3924 266 }
frank26080115 0:bf7b9fba3924 267
frank26080115 0:bf7b9fba3924 268
frank26080115 0:bf7b9fba3924 269 /*
frank26080115 0:bf7b9fba3924 270 * USB Endpoint 9 Event Callback
frank26080115 0:bf7b9fba3924 271 * Called automatically on USB Endpoint 9 Event
frank26080115 0:bf7b9fba3924 272 * Parameter: event
frank26080115 0:bf7b9fba3924 273 */
frank26080115 0:bf7b9fba3924 274
frank26080115 0:bf7b9fba3924 275 void USB_EndPoint9 (uint32_t event) {
frank26080115 0:bf7b9fba3924 276 }
frank26080115 0:bf7b9fba3924 277
frank26080115 0:bf7b9fba3924 278
frank26080115 0:bf7b9fba3924 279 /*
frank26080115 0:bf7b9fba3924 280 * USB Endpoint 10 Event Callback
frank26080115 0:bf7b9fba3924 281 * Called automatically on USB Endpoint 10 Event
frank26080115 0:bf7b9fba3924 282 * Parameter: event
frank26080115 0:bf7b9fba3924 283 */
frank26080115 0:bf7b9fba3924 284
frank26080115 0:bf7b9fba3924 285 void USB_EndPoint10 (uint32_t event) {
frank26080115 0:bf7b9fba3924 286 }
frank26080115 0:bf7b9fba3924 287
frank26080115 0:bf7b9fba3924 288
frank26080115 0:bf7b9fba3924 289 /*
frank26080115 0:bf7b9fba3924 290 * USB Endpoint 11 Event Callback
frank26080115 0:bf7b9fba3924 291 * Called automatically on USB Endpoint 11 Event
frank26080115 0:bf7b9fba3924 292 * Parameter: event
frank26080115 0:bf7b9fba3924 293 */
frank26080115 0:bf7b9fba3924 294
frank26080115 0:bf7b9fba3924 295 void USB_EndPoint11 (uint32_t event) {
frank26080115 0:bf7b9fba3924 296 }
frank26080115 0:bf7b9fba3924 297
frank26080115 0:bf7b9fba3924 298
frank26080115 0:bf7b9fba3924 299 /*
frank26080115 0:bf7b9fba3924 300 * USB Endpoint 12 Event Callback
frank26080115 0:bf7b9fba3924 301 * Called automatically on USB Endpoint 12 Event
frank26080115 0:bf7b9fba3924 302 * Parameter: event
frank26080115 0:bf7b9fba3924 303 */
frank26080115 0:bf7b9fba3924 304
frank26080115 0:bf7b9fba3924 305 void USB_EndPoint12 (uint32_t event) {
frank26080115 0:bf7b9fba3924 306 }
frank26080115 0:bf7b9fba3924 307
frank26080115 0:bf7b9fba3924 308
frank26080115 0:bf7b9fba3924 309 /*
frank26080115 0:bf7b9fba3924 310 * USB Endpoint 13 Event Callback
frank26080115 0:bf7b9fba3924 311 * Called automatically on USB Endpoint 13 Event
frank26080115 0:bf7b9fba3924 312 * Parameter: event
frank26080115 0:bf7b9fba3924 313 */
frank26080115 0:bf7b9fba3924 314
frank26080115 0:bf7b9fba3924 315 void USB_EndPoint13 (uint32_t event) {
frank26080115 0:bf7b9fba3924 316 }
frank26080115 0:bf7b9fba3924 317
frank26080115 0:bf7b9fba3924 318
frank26080115 0:bf7b9fba3924 319 /*
frank26080115 0:bf7b9fba3924 320 * USB Endpoint 14 Event Callback
frank26080115 0:bf7b9fba3924 321 * Called automatically on USB Endpoint 14 Event
frank26080115 0:bf7b9fba3924 322 * Parameter: event
frank26080115 0:bf7b9fba3924 323 */
frank26080115 0:bf7b9fba3924 324
frank26080115 0:bf7b9fba3924 325 void USB_EndPoint14 (uint32_t event) {
frank26080115 0:bf7b9fba3924 326 }
frank26080115 0:bf7b9fba3924 327
frank26080115 0:bf7b9fba3924 328
frank26080115 0:bf7b9fba3924 329 /*
frank26080115 0:bf7b9fba3924 330 * USB Endpoint 15 Event Callback
frank26080115 0:bf7b9fba3924 331 * Called automatically on USB Endpoint 15 Event
frank26080115 0:bf7b9fba3924 332 * Parameter: event
frank26080115 0:bf7b9fba3924 333 */
frank26080115 0:bf7b9fba3924 334
frank26080115 0:bf7b9fba3924 335 void USB_EndPoint15 (uint32_t event) {
frank26080115 0:bf7b9fba3924 336 }