📄 ms.h
字号:
// end 210-specific msc registers ----------------------------------------------
//------------------------------------------------------------------------------
#endif // 210/223 specific registers
//------------------------------------------------------------------------------
// tpc codes
#define k_ms_tpc_rd_page_data 0x20
#define k_ms_tpc_rd_reg 0x40
#define k_ms_tpc_get_int 0x70
#define k_ms_tpc_wr_page_data 0xD0
#define k_ms_tpc_wr_reg 0xB0
#define k_ms_tpc_set_rw_reg 0x80
#define k_ms_tpc_set_cmd 0xE0
//------------------------------------------------------------------------------
// flash commands
#define k_ms_block_read 0xAA
#define k_ms_block_write 0x55
#define k_ms_block_end 0x33
#define k_ms_block_erase 0x99
#define k_ms_flash_stop 0xCC
//------------------------------------------------------------------------------
// function commands
#define k_ms_sleep 0x5A
#define k_ms_clr_buf 0xC3
#define k_ms_reset 0x3C
//------------------------------------------------------------------------------
// internal ms status registers
#define k_ms_reg_int 0x01 // ro
#define kbm_ms_reg_int_cmdnk 0x01
#define kbm_ms_reg_int_breq 0x20
#define kbm_ms_reg_int_err 0x40
#define kbm_ms_reg_int_ced 0x80
#define k_ms_reg_status0 0x02 // ro
#define kbm_ms_reg_status0_wp 0x01
#define kbm_ms_reg_status0_sl 0x02
#define kbm_ms_reg_status0_bf 0x10
#define kbm_ms_reg_status0_be 0x20
#define kbm_ms_reg_status0_fb0 0x40
#define kbm_ms_reg_status0_mb 0x80
#define k_ms_reg_status1 0x03 // ro
#define kbm_ms_reg_status1_ucfg 0x01
#define kbm_ms_reg_status1_fger 0x02
#define kbm_ms_reg_status1_ucex 0x04
#define kbm_ms_reg_status1_exer 0x08
#define kbm_ms_reg_status1_ucdt 0x10
#define kbm_ms_reg_status1_dter 0x20
#define kbm_ms_reg_status1_fb1 0x40
#define kbm_ms_reg_status1_mb 0x80
//------------------------------------------------------------------------------
// 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 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
// 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;
//------------------------------------------------------------------------------
#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)
//------------------------------------------------------------------------------
// function from fmc
#undef _v_lun_enable_mux
#define _v_lun_enable_mux fmc_select_msc
//------------------------------------------------------------------------------
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
//--------------------------------------------------------------------------------
// 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 + -