Port of Keils USBCDC example, compiles ok. Gets stuck at init

Dependencies:   mbed

Committer:
tecnosys
Date:
Mon Jul 05 10:16:57 2010 +0000
Revision:
0:0b777ff85deb

        

Who changed what in which revision?

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