📄 ms.h
字号:
#define k_mspro_bus_parallel_mode 0x00
#define k_mspro_bus_serial_mode 0x80
#define k_ms_default_parameter 0x80
#define k_ms_uncorrectable_read_error 0x10
//----------------------------------------------------------------------------------
// Media Identification Registers
#define k_ms_type_reg 0x04
#define k_ms_category_reg 0x06
#define k_ms_class_reg 0x07
//----------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// internal ms parameter registers
#define k_ms_parm_system 0x10 // wo
#define k_ms_parm_block_addr_msb 0x11 // wo
#define k_ms_parm_block_addr_mid 0x12 // wo
#define k_ms_parm_block_addr_lsb 0x13 // wo
#define k_ms_parm_cmd 0x14 // wo
#define k_ms_parm_page_addr 0x15 // rw
//-----------------------------------------------------------------------------
// internal mspro parameter registers
#define k_ms_data_count_lsb 0x12
#define k_ms_data_count_msb 0x11
#define k_ms_data_address_0 0x16
#define k_ms_data_address_1 0x15
#define k_ms_data_address_2 0x14
#define k_ms_data_address_3 0x13
//------------------------------------------------------------------------------
// internal ms extra data registers
#define k_ms_ext_ovwr_flg 0x16 // rw
#define kbm_ms_ext_ovwr_bkst 0x80
#define kbm_ms_ext_ovwr_pgst0 0x40
#define kbm_ms_ext_ovwr_pgst1 0x20
#define kbm_ms_ext_ovwr_udst 0x10
#define k_ms_ext_mgmt_flg 0x17 // rw
#define kbm_ms_ext_mgmt_sysflg 0x04
#define kbm_ms_ext_mgmt_atflg 0x08
#define kbm_ms_ext_mgmt_scms1 0x10
#define kbm_ms_ext_mgmt_scms0 0x20
#define k_ms_ext_log_addr_msb 0x18 // rw
#define k_ms_ext_log_addr_lsb 0x19 // rw
// extra data registers buffer
extern xdata uint8 g_ms_extra[4];
#define k_ovwr_flg_offset 0
#define k_mgmt_flg_offset 1
#define k_log_addr_msb_flg_offset 2
#define k_log_addr_lsb_flg_offset 3
//---------------------------------------------------------------------------------
//-- Sony Memory Stick Formatter specific defines.
#define k_SKSV_clr 0x00
#define k_SKSV_set 0x80
#define k_sony_vendor_page_code 0x20
#define k_all_pages_code 0x3f
#define k_mode_data_length_lsb 0x00
#define k_mode_data_length_msb 0x6a
#define k_mode_data_medium_type_ms 0x10
#define k_mode_data_medium_type_mspro 0x20
#define k_mode_sf_internal_format_support 0x80
#define k_mode_sf_no_internal_format_support 0x00
#define k_media_write_protected 0x80
#define k_media_not_write_protected 0x00
#define k_rsvd_byte 0x00
#define k_access_code_none 0x00
#define k_page_length 0x62
//----------------------------------------------------------------------------------
// shadow registers
extern xdata uint8 g_ms_blk_addr_msb;
extern xdata uint8 g_ms_blk_addr_mid;
extern xdata uint8 g_ms_blk_addr_lsb;
extern xdata uint8 g_ms_page;
// shared globals
extern xdata uint16 g_ms_user_area_start_blk;
//------------------------------------------------------------------------------
t_result ms_read_status(void) reentrant;
//------------------------------------------------------------------------------
t_result ms_erase_block(void) reentrant;
//------------------------------------------------------------------------------
t_result ms_copy_page(void) reentrant;
//------------------------------------------------------------------------------
t_result ms_read_extra_data(void) reentrant;
//------------------------------------------------------------------------------
t_result ms_pio_read_page(uint8 pnr) reentrant;
//------------------------------------------------------------------------------
t_result ms_write_extra_data(void) reentrant;
//------------------------------------------------------------------------------
t_result ms_pio_write_page(uint8 pnr) reentrant;
//------------------------------------------------------------------------------
void xbuf_rd(uint16 offset, uint16 len, t_memory_ref bufp) reentrant;
//------------------------------------------------------------------------------
t_bool ms_is_this_blk_in_bad_blk_tbl(uint16 blk) reentrant;
//------------------------------------------------------------------------------
t_bool ms_is_this_blk_the_information_block(uint16 blk) reentrant;
//------------------------------------------------------------------------------
t_result ms_read_media_type() reentrant;
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
t_result ms_read_attribute_info() reentrant;
/* MSPRO Specific Function Prototypes */
//------------------------------------------------------------------------------
t_result mspro_pio_read_page(uint8 pnr) reentrant;
//------------------------------------------------------------------------------
t_result mspro_write_parm_reg(uint8 sys_parm) reentrant;
//-----------------------------------------------------------------------------
t_result mspro_set_xfer_mode(uint8 mode);
/* Read Callbacks */
//-----------------------------------------------------------------------------
t_result mspro_read_begin_xfer(void) reentrant;
//t_result mspro_read_begin_first_split(void) reentrant;
t_result mspro_read_begin_split(void) reentrant;
t_result mspro_read_begin_burst(void) reentrant;
t_result mspro_rw_intra_burst(void) reentrant;
t_result mspro_read_end_burst(void) reentrant;
//t_result mspro_read_end_split(void) reentrant;
t_result mspro_read_end_xfer(void) reentrant;
//----------------------------------------------------------------------------
/*Write Callbacks */
t_result mspro_write_begin_xfer(void) reentrant;
//t_result mspro_write_begin_first_split(void) reentrant;
//t_result mspro_write_begin_split(void) reentrant;
t_result mspro_write_begin_burst(void) reentrant;
t_result mspro_write_end_burst(void) reentrant;
//t_result mspro_write_end_split(void) reentrant;
t_result mspro_write_end_xfer(void) reentrant;
// for 223: can only touch registers after device is powered. this is the hook
// called for ms. there should be a better design for this
void ms_pwr_up_init() reentrant;
#if defined(k_mcu_97223)
t_result _ms_format_unit(void) reentrant;
void vendor_sony_get_format_status(void) reentrant;
#endif
#if defined(k_mcu_97210)
//------------------------------------------------------------------------------
#define _ms_rx_data_fifo_is_empty() (_ms_register_rd(ms_fifo_stat) & ms_fifo_stat_r_buf_e)
#define _ms_rx_data_fifo_is_full() (_ms_register_rd(ms_fifo_stat) & ms_fifo_stat_r_buf_f)
//#define _ms_tx_data_fifo_is_empty() (_ms_register_rd(ms_fifo_stat) & ms_fifo_stat_t_buf_e)
#define _ms_tx_data_fifo_is_full() (_ms_register_rd(ms_fifo_stat) & ms_fifo_stat_t_buf_f)
#elif defined(k_mcu_97223)
#define _ms_rx_data_fifo_is_empty() (_ms_register_rd(msc_alt_stat_l ) & kbm_ms_alt_stat_fifo_e)
#define _ms_rx_data_fifo_is_full() (_ms_register_rd(msc_alt_stat_l ) & kbm_ms_alt_stat_fifo_f)
//define _ms_tx_data_fifo_is_empty() (_ms_register_rd(msc_alt_stat_l ) & kbm_ms_alt_stat_fifo_e)
#define _ms_tx_data_fifo_is_full() (_ms_register_rd(msc_alt_stat_l ) & kbm_ms_alt_stat_fifo_f)
#endif
//------------------------------------------------------------------------------
//uint8 _ms_tx_data_fifo_is_empty(void);
//uint8 _ms_rx_data_fifo_is_empty(void);
uint8 _ms_tx_data_fifo_is_empty(void);
//------------------------------------------------------------------------------
// function from fmc
#undef _v_lun_enable_mux
#define _v_lun_enable_mux fmc_select_msc
//------------------------------------------------------------------------------
#if defined(k_mcu_97210)
void ms_reset_controller(void) reentrant;
#undef _v_lun_reset_controller
#define _v_lun_reset_controller ms_reset_controller
//------------------------------------------------------------------------------
void ms_initialize_controller(void) reentrant;
#undef _v_lun_initialize_controller
#define _v_lun_initialize_controller ms_initialize_controller
//------------------------------------------------------------------------------
void dfa_ms_reset_media(void) reentrant;
#undef _v_dfa_lun_reset_media
#define _v_dfa_lun_reset_media dfa_ms_reset_media
//------------------------------------------------------------------------------
void dfa_ms_initialize_media(void) reentrant;
#undef _v_dfa_lun_initialize_media
#define _v_dfa_lun_initialize_media dfa_ms_initialize_media
//--------------------------------------------------------------------------------
void dfa_ms_identify_media(void) reentrant;
#undef _v_dfa_lun_identify_media
#define _v_dfa_lun_identify_media dfa_ms_identify_media
//--------------------------------------------------------------------------------
void dfa_ms_read(void) reentrant;
#undef _v_dfa_lun_read
#define _v_dfa_lun_read dfa_ms_read
//--------------------------------------------------------------------------------
void dfa_ms_write(void) reentrant;
#undef _v_dfa_lun_write
#define _v_dfa_lun_write dfa_ms_write
//--------------------------------------------------------------------------------
void dfa_ms_verify(void) reentrant;
#undef _v_dfa_lun_verify
#define _v_dfa_lun_verify dfa_ms_verify
//------------------------------------------------------------------------------
#undef _v_dfa_lun_erase_media
#define _v_dfa_lun_erase_media media_dfa_erase
//------------------------------------------------------------------------------
#undef _v_dfa_lun_report_media_geometry
#define _v_dfa_lun_report_media_geometry media_dfa_report_media_geometry
//--------------------------------------------------------------------------------
#elif defined(k_mcu_97223)
void _ms_reset_controller(void) reentrant;
#undef _v_lun_reset_controller
#define _v_lun_reset_controller _ms_reset_controller
//------------------------------------------------------------------------------
void _ms_initialize_controller(void) reentrant;
#undef _v_lun_initialize_controller
#define _v_lun_initialize_controller _ms_initialize_controller
//------------------------------------------------------------------------------
void dfa_ms_reset_media(void) reentrant;
#undef _v_dfa_lun_reset_media
#define _v_dfa_lun_reset_media dfa_ms_reset_media
//------------------------------------------------------------------------------
void dfa_ms_initialize_media(void) reentrant;
#undef _v_dfa_lun_initialize_media
#define _v_dfa_lun_initialize_media dfa_ms_initialize_media
//--------------------------------------------------------------------------------
void dfa_ms_identify_media(void) reentrant;
#undef _v_dfa_lun_identify_media
#define _v_dfa_lun_identify_media dfa_ms_identify_media
//--------------------------------------------------------------------------------
void dfa_ms_read(void) reentrant;
#undef _v_dfa_lun_read
#define _v_dfa_lun_read dfa_ms_read
//--------------------------------------------------------------------------------
void dfa_ms_write(void) reentrant;
#undef _v_dfa_lun_write
#define _v_dfa_lun_write dfa_ms_write
//--------------------------------------------------------------------------------
void dfa_ms_verify(void) reentrant;
#undef _v_dfa_lun_verify
#define _v_dfa_lun_verify dfa_ms_verify
//------------------------------------------------------------------------------
#undef _v_dfa_lun_erase_media
#define _v_dfa_lun_erase_media media_dfa_erase
//------------------------------------------------------------------------------
void dfa_ms_report_media_geometry(void) reentrant;
#undef _v_dfa_lun_report_media_geometry
#define _v_dfa_lun_report_media_geometry dfa_ms_report_media_geometry
//-----------------------------------------------------------------------------
void dfa_ms_format_unit(void) reentrant;
#undef _v_dfa_lun_format_unit
#define _v_dfa_lun_format_unit dfa_ms_format_unit
//----------------------------------------------------------------------------
void dfa_ms_get_format_status(void) reentrant;
#undef _v_dfa_lun_get_format_status
#define _v_dfa_lun_get_format_status dfa_ms_get_format_status
//-------------------------------------------------------------------------
void dfa_ms_mode_sense(void) reentrant;
#undef _v_dfa_lun_mode_sense
#define _v_dfa_lun_mode_sense dfa_ms_mode_sense
//-------------------------------------------------------------------------
void dfa_ms_inquiry(void) reentrant;
#undef _v_dfa_lun_inquiry
#define _v_dfa_lun_inquiry dfa_ms_inquiry
//-------------------------------------------------------------------------
void dfa_ms_req_sense(void) reentrant;
#undef _v_dfa_lun_req_sense
#define _v_dfa_lun_req_sense dfa_ms_req_sense
//-------------------------------------------------------------------------
#endif
// ms inherits from lun
#define _v_ms _v_lun
typedef uint8 t_ms_vtbl_ix;
typedef enum e_ms_vtbl_entry
{
k_ms_vtbl_sz = k_lun_vtbl_sz
};
extern code _vtbl_decl(ms);
#else
#error "warning: header included too many times!"
#endif // __ms_dot_h__
//---eof------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -