📄 devio.lst
字号:
288
289 // Core uses bRequest value 0xA0 for Anchor downloads/uploads...
290 // Cypress Semiconductor reserves bRequest values 0xA1 through 0xAF...
291 // Your implementation should not use the above bRequest values...
292 // Also, previous fw.c versions trap all bRequest values 0x00 through 0x0F...
293 //
294 // bRequest value: SETUPDAT[1]
295 // standard, 0x00 through 0x0F
296 //
297 // bmRequest value: SETUPDAT[0]
298 // standard, 0x80 IN Token
299 // vendor, 0xC0 IN Token
300 // class, 0xA0 IN Token
301 // standard, 0x00 OUT Token
C51 COMPILER V7.50 DEVIO 11/03/2006 09:42:14 PAGE 6
302 // vendor, 0x40 OUT Token
303 // class, 0x60 OUT Token
304
305 BOOL DR_VendorCmnd( void )
306 {
307 1
308 1 // Registers which require a synchronization delay, see section 15.14
309 1 // FIFORESET FIFOPINPOLAR
310 1 // INPKTEND OUTPKTEND
311 1 // EPxBCH:L REVCTL
312 1 // GPIFTCB3 GPIFTCB2
313 1 // GPIFTCB1 GPIFTCB0
314 1 // EPxFIFOPFH:L EPxAUTOINLENH:L
315 1 // EPxFIFOCFG EPxGPIFFLGSEL
316 1 // PINFLAGSxx EPxFIFOIRQ
317 1 // EPxFIFOIE GPIFIRQ
318 1 // GPIFIE GPIFADRH:L
319 1 // UDMACRCH:L EPxGPIFTRIG
320 1 // GPIFTRIG
321 1
322 1 // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well...
323 1 // ...these have been replaced by GPIFTC[B3:B0] registers
324 1
325 1
326 1
327 1
328 1 switch( SETUPDAT[ 1 ] )
329 1 {
330 2 case VX_B2:
331 2 { // turn OFF debug LEDs...
332 3
333 3 ledX_rdvar = LED0_ON; // visual
334 3 ledX_rdvar = LED1_ON; // visual
335 3 ledX_rdvar = LED2_ON; // visual
336 3 ledX_rdvar = LED3_ON; // visual
337 3
338 3 *EP0BUF = VX_B2;
339 3
340 3 EP0BCH = 0;
341 3 EP0BCL = 1; // Arm endpoint with # bytes to transfer
342 3 EP0CS |= bmHSNAK; // Acknowledge handshake phase of device request
343 3
344 3
345 3 break;
346 3 }
347 2 case VX_B3:
348 2 { // turn OFF debug LEDs...
349 3
350 3 ledX_rdvar = LED0_OFF; // visual
351 3 ledX_rdvar = LED1_OFF; // visual
352 3 ledX_rdvar = LED2_OFF; // visual
353 3 ledX_rdvar = LED3_OFF; // visual
354 3
355 3 *EP0BUF = VX_B3;
356 3 EP0BCH = 0;
357 3 EP0BCL = 1; // Arm endpoint with # bytes to transfer
358 3 EP0CS |= bmHSNAK; // Acknowledge handshake phase of device request
359 3
360 3
361 3
362 3
363 3 break;
C51 COMPILER V7.50 DEVIO 11/03/2006 09:42:14 PAGE 7
364 3 }
365 2
366 2 case VX_BC:
367 2 { // turn OFF debug LEDs...
368 3
369 3
370 3
371 3
372 3
373 3
374 3 *EP0BUF = num;
375 3 EP0BCH = 0;
376 3 EP0BCL = 1; // Arm endpoint with # bytes to transfer
377 3 EP0CS |= bmHSNAK; // Acknowledge handshake phase of device request
378 3
379 3 break;
380 3 }
381 2
382 2
383 2
384 2 default:
385 2 {
386 3 ledX_rdvar = LED3_ON; // debug visual, stuck "ON" to warn developer...
387 3 return( FALSE ); // no error; command handled OK
388 3 }
389 2 }
390 1
391 1
392 1 return( FALSE ); // no error; command handled OK
393 1 }
394
395 //-----------------------------------------------------------------------------
396 // USB Interrupt Handlers
397 // The following functions are called by the USB interrupt jump table.
398 //-----------------------------------------------------------------------------
399
400 // Setup Data Available Interrupt Handler
401 void ISR_Sudav( void ) interrupt 0
402 {
403 1 GotSUD = TRUE; // Set flag
404 1 EZUSB_IRQ_CLEAR( );
405 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
406 1 }
407
408 // Setup Token Interrupt Handler
409 void ISR_Sutok( void ) interrupt 0
410 {
411 1 EZUSB_IRQ_CLEAR( );
412 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
413 1 }
414
415 void ISR_Sof( void ) interrupt 0
416 {
417 1 EZUSB_IRQ_CLEAR( );
418 1 USBIRQ = bmSOF; // Clear SOF IRQ
419 1 }
420
421 void ISR_Ures( void ) interrupt 0
422 {
423 1 if ( EZUSB_HIGHSPEED( ) )
424 1 {
425 2 pConfigDscr = pHighSpeedConfigDscr;
C51 COMPILER V7.50 DEVIO 11/03/2006 09:42:14 PAGE 8
426 2 pOtherConfigDscr = pFullSpeedConfigDscr;
427 2 }
428 1 else
429 1 {
430 2 pConfigDscr = pFullSpeedConfigDscr;
431 2 pOtherConfigDscr = pHighSpeedConfigDscr;
432 2 }
433 1
434 1 EZUSB_IRQ_CLEAR( );
435 1 USBIRQ = bmURES; // Clear URES IRQ
436 1 }
437
438 void ISR_Susp( void ) interrupt 0
439 {
440 1 Sleep = TRUE;
441 1 EZUSB_IRQ_CLEAR( );
442 1 USBIRQ = bmSUSP;
443 1 }
444
445 void ISR_Highspeed( void ) interrupt 0
446 {
447 1 if ( EZUSB_HIGHSPEED( ) )
448 1 {
449 2 pConfigDscr = pHighSpeedConfigDscr;
450 2 pOtherConfigDscr = pFullSpeedConfigDscr;
451 2 }
452 1 else
453 1 {
454 2 pConfigDscr = pFullSpeedConfigDscr;
455 2 pOtherConfigDscr = pHighSpeedConfigDscr;
456 2 }
457 1
458 1 EZUSB_IRQ_CLEAR( );
459 1 USBIRQ = bmHSGRANT;
460 1 }
461 void ISR_Ep0ack( void ) interrupt 0
462 {
463 1 }
464 void ISR_Stub( void ) interrupt 0
465 {
466 1 }
467 void ISR_Ep0in( void ) interrupt 0
468 {
469 1 }
470 void ISR_Ep0out( void ) interrupt 0
471 {
472 1 }
473 void ISR_Ep1in( void ) interrupt 0
474 {
475 1 }
476 void ISR_Ep1out( void ) interrupt 0
477 {
478 1 }
479 void ISR_Ep2inout( void ) interrupt 0
480 {
481 1 }
482 void ISR_Ep4inout( void ) interrupt 0
483 {
484 1 }
485 void ISR_Ep6inout( void ) interrupt 0
486 {
487 1 }
C51 COMPILER V7.50 DEVIO 11/03/2006 09:42:14 PAGE 9
488 void ISR_Ep8inout( void ) interrupt 0
489 {
490 1 }
491 void ISR_Ibn( void ) interrupt 0
492 {
493 1 }
494 void ISR_Ep0pingnak( void ) interrupt 0
495 {
496 1 }
497 void ISR_Ep1pingnak( void ) interrupt 0
498 {
499 1 }
500 void ISR_Ep2pingnak( void ) interrupt 0
501 {
502 1 }
503 void ISR_Ep4pingnak( void ) interrupt 0
504 {
505 1 }
506 void ISR_Ep6pingnak( void ) interrupt 0
507 {
508 1 }
509 void ISR_Ep8pingnak( void ) interrupt 0
510 {
511 1 }
512 void ISR_Errorlimit( void ) interrupt 0
513 {
514 1 }
515 void ISR_Ep2piderror( void ) interrupt 0
516 {
517 1 }
518 void ISR_Ep4piderror( void ) interrupt 0
519 {
520 1 }
521 void ISR_Ep6piderror( void ) interrupt 0
522 {
523 1 }
524 void ISR_Ep8piderror( void ) interrupt 0
525 {
526 1 }
527 void ISR_Ep2pflag( void ) interrupt 0
528 {
529 1 }
530 void ISR_Ep4pflag( void ) interrupt 0
531 {
532 1 }
533 void ISR_Ep6pflag( void ) interrupt 0
534 {
535 1 }
536 void ISR_Ep8pflag( void ) interrupt 0
537 {
538 1 }
539 void ISR_Ep2eflag( void ) interrupt 0
540 {
541 1 }
542 void ISR_Ep4eflag( void ) interrupt 0
543 {
544 1 }
545 void ISR_Ep6eflag( void ) interrupt 0
546 {
547 1 }
548 void ISR_Ep8eflag( void ) interrupt 0
549 {
C51 COMPILER V7.50 DEVIO 11/03/2006 09:42:14 PAGE 10
550 1 }
551 void ISR_Ep2fflag( void ) interrupt 0
552 {
553 1 }
554 void ISR_Ep4fflag( void ) interrupt 0
555 {
556 1 }
557 void ISR_Ep6fflag( void ) interrupt 0
558 {
559 1 }
560 void ISR_Ep8fflag( void ) interrupt 0
561 {
562 1 }
563 void ISR_GpifComplete( void ) interrupt 0
564 {
565 1 }
566 void ISR_GpifWaveform( void ) interrupt 0
567 {
568 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 601 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 16 ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -