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

📄 storage.h

📁 使用ISP1362芯片的USB_OTG参考设计源代码比较新的版本
💻 H
字号:
/*
**  WASABI-Hot! version 1.2c   
**
**
**      -- copyright (c) 2001-2004 by Philips Japan, Ltd. -- All rights reserved --
**
**
**      ** This code has been made to check/learn                          ** 
**      **                             the ISP1362/ISP1363 functionalities **
**      ** Release 06-Aug-2004                                             **
**
**      OKANO, Akifumi
**      
**		Application Laboratory, Mobile and Connectivity
**      Semiconductors Div, Philips Japan Ltd.
**      akifumi.okano@philips.com
**      +81-3-3740-4668 
*/

#ifndef _STORAGE_H
#define _STORAGE_H

/****************************************************************************/
/*	includes																*/
/****************************************************************************/

#include		"_hc_core/dev_ep.h"
#include		"_hc_core/transfer.h"
#include		"class_dr/storage/fs.h"


/****************************************************************************/
/*	constants																*/
/****************************************************************************/


#define		MAX_NUMBER_OF_VOLUME_INSTANCES	1



//	IN
#define		REQUEST_SENSE					0
#define		INQUIRY							1
#define		MODE_SENSE						2
#define		READ_CAPACITY					3
#define		ST_READ							4
//	OUT
#define		TEST_UNIT_READY					5
#define		START_STOP_UNIT					6
#define		PREVENT_ALLOW_MEDIUM_REMOVAL	7
#define		ST_WRITE						8

#define		storage_cls_sp_request_BulkOnlyMassStorageReset		((0x21 << 8) | 0xFF )
#define		storage_cls_sp_request_GetMaxLUN						((0xA1 << 8) | 0xFE )


/****************************************************************************/
/*	types																	*/
/****************************************************************************/

typedef struct  storage_param	{
									unsigned char			state;
									unsigned char			previous_state;			//	for UI
									unsigned short			remaining_tr_size;
									unsigned short			transferred_size;
									unsigned char			direction;
									unsigned char			transfer_stop;
									unsigned char			*buffer_ptr;
									unsigned char			bulk_done;
									transfer_instance		*tip;
									unsigned char			ti_index;
									transfer_instance		*tip0;					//	for PP
									transfer_instance		*tip1;					//	for PP
									unsigned char			ti_index0;				//	for PP
									unsigned char			ti_index1;				//	for PP
									endpoint_info_ptr		endpoint_OUT;
									endpoint_info_ptr		endpoint_IN;
									unsigned char			ep_out;
									unsigned char			ep_in;
									unsigned char			target_LUN;
									unsigned char			max_LUN;
									volume_param			*volume_instance[ MAX_NUMBER_OF_VOLUME_INSTANCES ];
									unsigned char			remount;
                                }
                                storage_instance;



typedef struct  _st_command_block6	{
									//unsigned char			opcode;
									unsigned long			logical_block_address;
									unsigned char			transfer_length;
									unsigned char			control;
									unsigned char			dummy[ 10 ];
                                }
                                st_command_block6;
                                
typedef struct  _st_command_block10	{
									unsigned char			opcode;
									unsigned char			service_action;
									unsigned long			logical_block_address;
									unsigned char			reserved;
									unsigned short			transfer_length;
									unsigned char			control;
									unsigned char			dummy[ 6 ];
                                }
                                st_command_block10;
                                
typedef struct  _st_command_block_wrapper	{
									unsigned long			dCBWSignature;
									unsigned long			dCBWTag;
									unsigned long			dCBWDataTransferLength;
									unsigned char			bmCBWFlags;
									unsigned char			bmCBWLUN;
									unsigned char			bmCBWLength;
									st_command_block10		CBWCB;
                                }
                                st_command_block_wrapper;

typedef struct  _st_command_status_wrapper	{
									unsigned long			dCSWSignature;
									unsigned long			dCBWTag;
									unsigned long			dCBWDataResidue;
									unsigned char			bmCBWStatus;
                                }
								st_command_status_wrapper;


/****************************************************************************/
/*	global vars																*/
/****************************************************************************/

/****************************************************************************/
/*	function prototypes														*/
/****************************************************************************/

unsigned short		storage_read_sector( unsigned char *buffer_ptr, unsigned long logical_block_address, unsigned short allocation_length );
unsigned short		storage_write_sector( unsigned char *buffer_ptr, unsigned long logical_block_address, unsigned short num_of_sector );

unsigned short		storage_init_commands( device_instance *dvi_ptr );
unsigned short		storage_dispose_process( device_instance *dvi_ptr );
void				storage_data_dump( char *s, unsigned char *b, unsigned short n );

device_instance		*storage_device_ready( void );
volume_param		*storage_volume_ready( void );
unsigned char		storage_device_address( void );

unsigned char		storage_mount( void );
unsigned char		storage_unmount( void );
unsigned char		storage_remount( unsigned char remount );

void				storage_info( void );
void				storage_dump_info( unsigned long start_sec, unsigned long length );

void				storage_show_cclog_result( void );

#endif

⌨️ 快捷键说明

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