?? scsi.lst
字號:
281 2 case 0x23:
282 2 SCSICMD_ReadFormatCapacities();
283 2 BulkStausPhase = InCSWPhase;
284 2 break;
285 2 case 0x25:
286 2 SCSICMD_ReadCapacity();
287 2 BulkStausPhase=InCSWPhase;
288 2 break;
289 2 case 0x28:
290 2 SCSICMD_Read10();
291 2 BulkStausPhase=InCSWPhase;
292 2 break;
293 2 case 0x2a:
294 2 SCSICMD_Write10();
295 2 BulkPhase =OutDataPhase;
296 2 break;
297 2 case 0x2f:
298 2 SCSICMD_Verify10();
299 2 BulkStausPhase=InCSWPhase;
300 2 break;
301 2 case 0x5a:
302 2 SCSICMD_ModeSense10();
303 2 BulkStausPhase=InCSWPhase;
C51 COMPILER V7.50 SCSI 12/29/2005 19:53:02 PAGE 6
304 2 break;
305 2 default:
306 2 BulkStausPhase=InCSWPhase;
307 2 break;
308 2 }
309 1 }
310
311
312
313
314 /************************************************************
315 **函數(shù)功能:PC輸入數(shù)據(jù)處理
316 **函數(shù)輸入?yún)?shù)及說明:無
317
318 **函數(shù)返回值:無
319 **在本函數(shù)以外定義的變量:
320 **調(diào)用的函數(shù)說明:無
321
322 **修改人:胡琦宗
323 **修改日期:2005.11.22
324 **修改說明:創(chuàng)建
325 *************************************************************/
326
327 void Usb_BoBulkInData(void)
328 {
329 1 flashWrite();
330 1 if(WriteResidueVal == 0)
331 1 {
332 2 BulkPhase = CommandPhase;
333 2 }
334 1 }
335
336
337 /************************************************************
338 **函數(shù)功能:回應(yīng)批量傳輸包
339 **函數(shù)輸入?yún)?shù)及說明:無
340
341
342 **函數(shù)返回值:無
343 **在本函數(shù)以外定義的變量:
344 **調(diào)用的函數(shù)說明:無
345
346 **修改人:胡琦宗
347 **修改日期:2005.11.22
348 **修改說明:創(chuàng)建
349 *************************************************************/
350
351 void Bulk_In_Packet(void)
352 {
353 1 if(BULKLength != 0)
354 1 BULK_submit(BULKLength);
355 1 else if(ReadResidueVal != 0)
356 1 flashRead();
357 1 else if(BulkStausPhase == InCSWPhase){
358 2 ControlData.pData = setcsw;
359 2 BULKLength = 13;
360 2 BULK_submit(BULKLength);
361 2 }
362 1 }
363
364
365 /************************************************************
C51 COMPILER V7.50 SCSI 12/29/2005 19:53:02 PAGE 7
366 **函數(shù)功能:設(shè)置CSW包
367 **函數(shù)輸入?yún)?shù)及說明:無
368
369
370 **函數(shù)返回值:無
371 **在本函數(shù)以外定義的變量:
372 **調(diào)用的函數(shù)說明:無
373
374 **修改人:胡琦宗
375 **修改日期:2005.11.22
376 **修改說明:創(chuàng)建
377 *************************************************************/
378 /*
379 void Usb_Set_Csw(void){
380 Usb_Csw.dCSWSignature[0] = 0x55;
381 Usb_Csw.dCSWSignature[1] = 0x53;
382 Usb_Csw.dCSWSignature[2] = 0x42;
383 Usb_Csw.dCSWSignature[3] = 0x53;
384 Usb_Csw.dCSWTag[0] = ControlData.dataBuffer[4];
385 Usb_Csw.dCSWTag[1] = ControlData.dataBuffer[5];
386 Usb_Csw.dCSWTag[2] = ControlData.dataBuffer[6];
387 Usb_Csw.dCSWTag[3] = ControlData.dataBuffer[7];
388 Usb_Csw.bCSWStatus = 0;
389 }
390
391 */
392 /*
393 void Usb_Set_Csw(void){
394 ControlData.dataBuffer[0] = 0x55;
395 ControlData.dataBuffer[1] = 0x53;
396 ControlData.dataBuffer[2] = 0x42;
397 ControlData.dataBuffer[3] = 0x53;
398 ControlData.dataBuffer[8] = 0;
399 ControlData.dataBuffer[9] = 0;
400 ControlData.dataBuffer[10] = 0;
401 ControlData.dataBuffer[11] = 0;
402
403 ControlData.dataBuffer[12] = 0;
404 }
405
406 */
407 void Usb_Set_Csw(void){
408 1 setcsw[0] = 0x55;
409 1 setcsw[1] = 0x53;
410 1 setcsw[2] = 0x42;
411 1 setcsw[3] = 0x53;
412 1
413 1 setcsw[4] = ControlData.dataBuffer[4];
414 1 setcsw[5] = ControlData.dataBuffer[5];
415 1 setcsw[6] = ControlData.dataBuffer[6];
416 1 setcsw[7] = ControlData.dataBuffer[7];
417 1
418 1 setcsw[8] = 0;
419 1 setcsw[9] = 0;
420 1 setcsw[10] = 0;
421 1 setcsw[11] = 0;
422 1
423 1 setcsw[12] = 0;
424 1 }
425 /************************************************************
426 **函數(shù)功能:SCSI命令
427 **函數(shù)輸入?yún)?shù)及說明:無
C51 COMPILER V7.50 SCSI 12/29/2005 19:53:02 PAGE 8
428
429
430 **函數(shù)返回值:無
431 **在本函數(shù)以外定義的變量:
432 **調(diào)用的函數(shù)說明:無
433
434 **修改人:胡琦宗
435 **修改日期:2005.11.22
436 **修改說明:創(chuàng)建
437 *************************************************************/
438
439
440
441
442 void SCSICMD_Inquiry(void)
443 {
444 1 Usb_Set_Csw();
445 1
446 1 ControlData.pData = SCSI_INQUIRY;
447 1 BULKLength = 36;
448 1 BULK_submit(BULKLength);
449 1
450 1 }
451
452
453 void SCSICMD_ReadFormatCapacities(void)
454 {
455 1
456 1 ControlData.dataBuffer[8] = (unsigned char)(dCBWDaTrLen-0x0c);
457 1 Usb_Set_Csw();
458 1 ControlData.pData = SCSIDATA_ReadFormatCapacities;
459 1 BULKLength = 12;
460 1 BULK_submit(BULKLength);
461 1 }
462
463 void SCSICMD_ReadCapacity(void)
464 {
465 1 Usb_Set_Csw();
466 1
467 1 ControlData.pData = SCSIDATA_ReadCapacity;
468 1 BULKLength = 8;
469 1 BULK_submit(BULKLength);
470 1 }
471
472 void SCSICMD_Read10(void)
473 {
474 1 Usb_Set_Csw();
475 1 ControlData.pData = setcsw;
476 1 flashReadcmd();
477 1 flashRead();
478 1 }
479
480 void SCSICMD_TestUnitReady(void)
481 {
482 1
483 1 Usb_Set_Csw();
484 1
485 1 ControlData.pData = setcsw;
486 1 BULKLength = 13;
487 1 BULK_submit(BULKLength);
488 1 }
489
C51 COMPILER V7.50 SCSI 12/29/2005 19:53:02 PAGE 9
490 void SCSICMD_RequestSense(void)
491 {
492 1 Usb_Set_Csw();
493 1
494 1 ControlData.pData = SCSIDATA_RequestSense;
495 1 BULKLength = 18;
496 1 BULK_submit(BULKLength);
497 1 }
498
499 void SCSICMD_ModeSense06(void)
500 {
501 1
502 1 ControlData.dataBuffer[8]=(unsigned char)(dCBWDaTrLen-0x04);
503 1 Usb_Set_Csw();
504 1 ControlData.pData = SCSIDATA_Sense;
505 1 BULKLength = 4;
506 1 BULK_submit(BULKLength);
507 1 }
508
509 void SCSICMD_PreventAllowMediumRemoval(void)
510 {
511 1
512 1 Usb_Set_Csw();
513 1
514 1 ControlData.pData = setcsw;
515 1 BULKLength = 13;
516 1 BULK_submit(BULKLength);
517 1 }
518
519 void SCSICMD_Write10(void)
520 {
521 1
522 1 Usb_Set_Csw();
523 1
524 1 flashWritecmd();
525 1 ControlData.pData = setcsw;
526 1 BULKLength = 13;
527 1 BULK_submit(BULKLength);
528 1 }
529
530 void SCSICMD_Verify10(void)
531 {
532 1
533 1 Usb_Set_Csw();
534 1
535 1 ControlData.pData = setcsw;
536 1 BULKLength = 13;
537 1 BULK_submit(BULKLength);
538 1 }
539
540 void SCSICMD_ModeSense10(void)
541 {
542 1
543 1 Usb_Set_Csw();
544 1
545 1 ControlData.pData = setcsw;
546 1 BULKLength = 13;
548 1 }
549
550
551
C51 COMPILER V7.50 SCSI 12/29/2005 19:53:02 PAGE 10
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 537 ----
CONSTANT SIZE = 122 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 1
IDATA SIZE = 13 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -