⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ms_rbc.h

📁 ATMEL ARM7 虚拟优盘
💻 H
字号:
//  ----------------------------------------------------------------------------
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
//  ----------------------------------------------------------------------------
//  DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
//  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
//  DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//  ----------------------------------------------------------------------------
// File Name           : ms_rbc.h
// Object              : Reduced Block commands
//                       Ref: rbc-r10a.pdf: NCITS-330 T10/1240-D, 
//                                          revision 10a, August 18,1999
//                            spc3r17.pdf : Information technology - 
//                                          SCSI Primary Commands - 3 (SPC-3)
// Creation            : JCB 15/apr/2005
// Modif               :
// ----------------------------------------------------------------------------
#ifndef _USBMS_RBC_H_
#define _USBMS_RBC_H_

#include "ms_device.h"

/***************/
/* DEFINITIONS */
/***************/
/* Define of INQUIRY command BE CARREFUL, the length is fixed */
#define VENDOR_ID              "ATMEL   "             //  [8] Provided by ATMEL
#define PRODUCT_ID             "Mass Storage    "     // [16] Provided by ATMEL
#define PRODUCT_REVISION_LEVEL "0.01"                 //  [4] Provided by ATMEL
#define VENDOR_SPECIFIC        "Demo Mass Storage   " // [20] Provided by ATMEL
#define VERSION_DESCRIPTOR     "00000001"             //  [8] Provided by ATMEL

#define VENDOR_ID_LENGTH               8
#define PRODUCT_ID_LENGTH             16
#define PRODUCT_REVISION_LEVEL_LENGTH  4
#define VENDOR_SPECIFIC_LENGTH        20
#define VERSION_DESCRIPTOR_LENGTH      8


/* Table 2 - Reduced Block Command set, rbc-r10a.pdf */
#define RBC_TEST_UNIT_READY       0x00
#define RBC_REQUEST_SENSE         0x03
#define RBC_INQUIRY               0x12
#define RBC_MODE_SELECT           0x15
#define RBC_MODE_SENSE            0x1A
#define RBC_START_STOP_UNIT       0x1B
#define RBC_PREVENT_ALLOW_REMOVAL 0x1E
#define RBC_023                   0x23  // CMD_READ_LONG
#define RBC_READ_CAPACITY         0x25
#define RBC_READ_10               0x28
#define RBC_WRITE_10              0x2A
#define RBC_VERIFY                0x2F


/* Table 8 - POWER CONDITIONS, rbc-r10a.pdf */
/* Code Support Description */
/* M = Command implementation is mandatory */
/* O = Command implementation is optional */
#define POWCOND_NOCHANGE 0 /* M No change in power condition. */
#define POWCOND_ACTIVE   1 /* M Place device in Active condition (highest power) */
#define POWCOND_IDLE     2 /* M Place device in Idle condition (lower power) */
#define POWCOND_STDBY    3 /* M Place device in Standby (lower power than Idle) */
                      /* 4 - Reserved */
#define POWCOND_SLEEP    5 /* M Place device in Sleep condition (lower power than STDBY) */
                      /* 6 - Reserved */
#define POWCOND_DEV_CTRL 7 /* O Device Control */
                     /* 0x08 - 0x0F - Reserved */


/* Table 49 - Sense key descriptions spc3r17.pdf */
#define SENSE_KEY_NO_SENSE                        (0x00)
#define SENSE_KEY_RECOVERED_ERROR                 (0x01)
#define SENSE_KEY_NOT_READY                       (0x02)
#define SENSE_KEY_MEDIUM_ERROR                    (0x03)
#define SENSE_KEY_HARDWARE_ERROR                  (0x04)
#define SENSE_KEY_ILLEGAL_REQUEST                 (0x05)
#define SENSE_KEY_UNIT_ATTENTION                  (0x06)
#define SENSE_KEY_DATA_PROTECT                    (0x07)
#define SENSE_KEY_BLANK_CHECK                     (0x08)
#define SENSE_KEY_VENDOR_SPECIFIC                 (0x09)
#define SENSE_KEY_COPY_ABORTED                    (0x0A)
#define SENSE_KEY_ABORTED_COMMAND                 (0x0B)
#define SENSE_KEY_EQUAL                           (0x0C) // Obsolete
#define SENSE_KEY_VOLUME_OVERFLOW                 (0x0D)
#define SENSE_KEY_MISCOMPARE                      (0x0E)


/* Table 30 - ASC and ASCQ assignments, spc3r17.pdf */

/* ASC code assignments */
#define ASC_NO_ADDITIONAL_SENSE_INFORMATION       (0x00)
#define ASC_LOGICAL_UNIT_NOT_READY                (0x04)
#define ASC_INVALID_FIELD_IN_CDB                  (0x24)
#define ASC_WRITE_PROTECTED                       (0x27)
#define ASC_FORMAT_ERROR                          (0x31)
#define ASC_INVALID_COMMAND_OPERATION_CODE        (0x20)
#define ASC_NOT_READY_TO_READY_CHANGE             (0x28)
#define ASC_MEDIUM_NOT_PRESENT                    (0x3A)

/* ASCQ code assignments : Additional Sense Code Qualifier */
#define ASCQ_00                                   (0x00)
#define ASCQ_FORMAT_COMMAND_FAILED                (0x01)
#define ASCQ_OPERATION_IN_PROGRESS                (0x07)

/* Table C.11 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -