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