📄 mv_xs.h
字号:
/*==========================================================================*/
/* (Copyright (C) 2003 Koninklijke Philips Electronics N.V. */
/* All rights reserved. */
/* This source code and any compilation or derivative thereof is the */
/* proprietary information of Koninklijke Philips Electronics N.V. */
/* and is confidential in nature. */
/* Under no circumstances is this software to be exposed to or placed */
/* under an Open Source License of any type without the expressed */
/* written permission of Koninklijke Philips Electronics N.V. */
/*==========================================================================*/
/********************************************************
* File : mv_xs.h
*
* Device version : P1284_133_MOD_ID
*
* Generated by GADGET, version 1.41
* GADGET generated by gcc version 2.95.2 19991024 (release)
* Patched by dvp_gadget V1.1 (PERL 5.006001)
*
* Options : -v -i
*
* Copyright Philips Semiconductors B.V.
*******************************************************/
/*===========================================================================*/
/* Register addresses used when IO_MAPPED access. */
/*===========================================================================*/
# define MV_XS_dec_storing_hrz_size_cur_ADDR 0x0
# define MV_XS_dec_storing_y_odd_ptr_cur_ADDR 0x4
# define MV_XS_dec_storing_y_even_ptr_cur_ADDR 0x8
# define MV_XS_dec_storing_c_odd_ptr_cur_ADDR 0xC
# define MV_XS_dec_storing_c_even_ptr_cur_ADDR 0x10
# define MV_XS_dec_storing_hrz_size_nxt_ADDR 0x14
# define MV_XS_dec_storing_y_odd_ptr_nxt_ADDR 0x18
# define MV_XS_dec_storing_y_even_ptr_nxt_ADDR 0x1C
# define MV_XS_dec_storing_c_odd_ptr_nxt_ADDR 0x20
# define MV_XS_dec_storing_c_even_ptr_nxt_ADDR 0x24
# define MV_XS_dec_use_storing_cur_ADDR 0x28
# define MV_XS_dec_past_y_odd_ptr_cur_ADDR 0x2C
# define MV_XS_dec_past_y_even_ptr_cur_ADDR 0x30
# define MV_XS_dec_past_c_odd_ptr_cur_ADDR 0x34
# define MV_XS_dec_past_c_even_ptr_cur_ADDR 0x38
# define MV_XS_dec_future_y_odd_ptr_cur_ADDR 0x3C
# define MV_XS_dec_future_y_even_ptr_cur_ADDR 0x40
# define MV_XS_dec_future_c_odd_ptr_cur_ADDR 0x44
# define MV_XS_dec_future_c_even_ptr_cur_ADDR 0x48
# define MV_XS_dec_recovery_y_odd_ptr_cur_ADDR 0x4C
# define MV_XS_dec_recovery_y_even_ptr_cur_ADDR 0x50
# define MV_XS_dec_recovery_c_odd_ptr_cur_ADDR 0x54
# define MV_XS_dec_recovery_c_even_ptr_cur_ADDR 0x58
# define MV_XS_dec_use_storing_nxt_ADDR 0x5C
# define MV_XS_dec_past_y_odd_ptr_nxt_ADDR 0x60
# define MV_XS_dec_past_c_odd_ptr_nxt_ADDR 0x64
# define MV_XS_dec_future_y_odd_ptr_nxt_ADDR 0x68
# define MV_XS_dec_future_c_odd_ptr_nxt_ADDR 0x6C
# define MV_XS_dec_recovery_y_odd_ptr_nxt_ADDR 0x70
# define MV_XS_dec_recovery_c_odd_ptr_nxt_ADDR 0x74
# define MV_XS_dec_past_y_even_ptr_nxt_ADDR 0x78
# define MV_XS_dec_past_c_even_ptr_nxt_ADDR 0x7C
# define MV_XS_dec_future_y_even_ptr_nxt_ADDR 0x80
# define MV_XS_dec_future_c_even_ptr_nxt_ADDR 0x84
# define MV_XS_dec_recovery_y_even_ptr_nxt_ADDR 0x88
# define MV_XS_dec_recovery_c_even_ptr_nxt_ADDR 0x8C
# define MV_XS_video_fifo_start_ADDR 0x90
# define MV_XS_video_fifo_size_ADDR 0x94
# define MV_XS_video_fifo_under_ADDR 0x98
# define MV_XS_video_fifo_over_ADDR 0x9C
# define MV_XS_cmd_video_fifo_ADDR 0xA0
# define MV_XS_video_fifo_nxt_value_ADDR 0xA4
# define MV_XS_video_fifo_rdpt_cur_ADDR 0xA8
# define MV_XS_video_fifo_bfmu_cur_ADDR 0xAC
# define MV_XS_video_fifo_bfmo_cur_ADDR 0xB0
# define MV_XS_still_fifo_start_ADDR 0xB4
# define MV_XS_still_fifo_size_ADDR 0xB8
# define MV_XS_setup_video_fifo_ADDR 0xBC
# define MV_XS_dec_storing_ctx_cur_ADDR 0xC0
# define MV_XS_dec_storing_ctx_nxt_ADDR 0xC4
# define MV_XS_disp_ctx_cur_ADDR 0xC8
# define MV_XS_disp_ctx_nxt_ADDR 0xCC
# define MV_XS_info_lines_status_ADDR 0xD0
# define MV_XS_setup_buffer_number_ADDR 0xD4
# define MV_XS_setup_error_concealment_ADDR 0xD8
# define MV_XS_cmd_fbm_ADDR 0xDC
# define MV_XS_info_seq_header_ADDR 0xE0
# define MV_XS_info_userdata_seq_ADDR 0xE4
# define MV_XS_info_gop_header_ADDR 0xE8
# define MV_XS_info_userdata_gop_ADDR 0xEC
# define MV_XS_info_pict_header_ADDR 0xF0
# define MV_XS_info_userdata_pict_ADDR 0xF4
# define MV_XS_info_slice_header_ADDR 0xF8
# define MV_XS_info_pes_header_2_ADDR 0xFC
# define MV_XS_info_pes_header_1_ADDR 0x100
# define MV_XS_info_last_video_pts_ADDR 0x104
# define MV_XS_info_last_video_dts_ADDR 0x108
# define MV_XS_info_video_time_stamp_ADDR 0x10C
# define MV_XS_info_video_stca_ADDR 0x110
# define MV_XS_info_video_stcb_ADDR 0x114
# define MV_XS_setup_video_time_stamp_ADDR 0x118
# define MV_XS_setup_video_time_stamp_offset_ADDR 0x11C
# define MV_XS_setup_system_format_ADDR 0x120
# define MV_XS_setup_system_ADDR 0x124
# define MV_XS_setup_video_stc_ADDR 0x128
# define MV_XS_setup_video_stc_choice_ADDR 0x12C
# define MV_XS_cmd_video_ADDR 0x130
# define MV_XS_bitstr_vbv_delay_ADDR 0x134
# define MV_XS_bitstr_vbv_buffer_size_ADDR 0x138
# define MV_XS_bitstr_video_bitrate_ADDR 0x13C
# define MV_XS_bitstr_seq_hor_size_ADDR 0x140
# define MV_XS_bitstr_seq_ver_size_ADDR 0x144
# define MV_XS_bitstr_centre_hor_offset_ADDR 0x148
# define MV_XS_bitstr_centre_ver_offset_ADDR 0x14C
# define MV_XS_bitstr_disp_hor_size_ADDR 0x150
# define MV_XS_bitstr_disp_ver_size_ADDR 0x154
# define MV_XS_bitstr_param_ADDR 0x158
# define MV_XS_bitstr_temporal_reference_ADDR 0x15C
# define MV_XS_cmd_video_reset_ADDR 0x160
# define MV_XS_video_int_status_ADDR 0xFA0
# define MV_XS_video_int_enable_ADDR 0xFA4
# define MV_XS_video_int_clear_ADDR 0xFA8
# define MV_XS_video_int_set_ADDR 0xFAC
# define MV_XS_system_event_ADDR 0xFB0
# define MV_XS_system_event_enable_ADDR 0xFB4
# define MV_XS_system_event_clear_ADDR 0xFB8
# define MV_XS_system_event_set_ADDR 0xFBC
# define MV_XS_fbm_event_ADDR 0xFC0
# define MV_XS_fbm_event_enable_ADDR 0xFC4
# define MV_XS_fbm_event_clear_ADDR 0xFC8
# define MV_XS_fbm_event_set_ADDR 0xFCC
# define MV_XS_error_event_ADDR 0xFD0
# define MV_XS_error_event_enable_ADDR 0xFD4
# define MV_XS_error_event_clear_ADDR 0xFD8
# define MV_XS_error_event_set_ADDR 0xFDC
# define MV_XS_video_event_ADDR 0xFE0
# define MV_XS_video_event_enable_ADDR 0xFE4
# define MV_XS_video_event_clear_ADDR 0xFE8
# define MV_XS_video_event_set_ADDR 0xFEC
# define MV_XS_video_powerdown_ADDR 0xFF4
# define MV_XS_video_module_id_ADDR 0xFFC
/*===========================================================================*/
/* Macros to enable memory mapped or IO mapped access */
/*===========================================================================*/
#ifndef MV_IO_MAPPED
/************************************************
*!---------------------------------------------!*
*! MEMORY MAPPED !*
*!---------------------------------------------!*
************************************************/
# ifdef EMBEDDED
/*---------------------------------------------!
! EMBEDDED !
!---------------------------------------------*/
#define MV_XS_READ_REG(reg) (MV_REG_PTR->reg)
#define MV_XS_WRITE_REG(reg,val) (MV_REG_PTR->reg = val)
# else /* End #ifdef EMBEDDED */
/*---------------------------------------------!
! _REGISTER_LOG_ !
!---------------------------------------------*/
# ifdef _REGISTER_LOG_
extern MV_REG_TYPE MV_READ_REG(
MV_REG_TYPE reg,
char tab[256]
);
extern void MV_WRITE_REG(
MV_REG_TYPE *p_reg,
MV_REG_TYPE value,
char tab[256]
);
#define MV_XS_READ_REG(reg) (MV_READ_REG(MV_REG_PTR->reg, #reg))
#define MV_XS_WRITE_REG(reg,val) (MV_WRITE_REG(&(MV_REG_PTR->reg), val, #reg))
# else /* End #ifdef _REGISTER_LOG_ */
/*--------------------------------------------------!
! NO _REGISTER_LOG_ !
!--------------------------------------------------*/
#define MV_XS_READ_REG(reg) (MV_REG_PTR->reg)
#define MV_XS_WRITE_REG(reg,val) (MV_REG_PTR->reg = val)
# endif /* End #ifdef _REGISTER_LOG_ else ...*/
# endif /* End #ifdef EMBEDDED else ..*/
#else
/************************************************
*!---------------------------------------------!*
*! IO MAPPED !*
*!---------------------------------------------!*
************************************************/
extern MV_REG_TYPE
MV_READ_REG( unsigned short address );
extern void
MV_WRITE_REG( unsigned short address, MV_REG_TYPE value );
# define MV_XS_READ_REG(reg) (MV_READ_REG( MV_XS_ ## reg ## _ADDR ))
# define MV_XS_WRITE_REG(reg,val) (MV_WRITE_REG( MV_XS_ ## reg ## _ADDR, val))
#endif
/*===========================================================================*/
/* Access macros used by the generated routines. */
/*===========================================================================*/
/* Macro to set a setting in a register with ReadWrite access */
#define MV_SET_RW_SETTING(reg,mask,start,value) \
MV_XS_WRITE_REG( reg ,((unsigned long)(((unsigned long)MV_XS_READ_REG(reg) & ~((unsigned long)mask))|\
(((value) << (start))&(unsigned long)(mask)))))
/* Macro to set the only (single) setting in a register with ReadWrite access */
#define MV_SET_RWS_SETTING(reg,mask,start,value) \
(MV_XS_WRITE_REG( reg ,((unsigned long)((value) << (start)))));
/* Macro to set a setting in a register with WriteOnly access */
#define MV_SET_W_SETTING(reg,mask,start,value) \
(MV_REG_COPY.reg = (unsigned long)(((unsigned long)MV_REG_COPY.reg & ~((unsigned long)mask))|\
(((value) << (start))&(unsigned long)(mask))));\
(MV_XS_WRITE_REG( reg , (MV_REG_COPY.reg)))
/* Macro to set the only (single) setting in a register with WriteOnly access */
#define MV_SET_WS_SETTING(reg,mask,start,value) \
(MV_REG_COPY.reg = ((unsigned long)((value) << (start))));\
(MV_XS_WRITE_REG( reg , (MV_REG_COPY.reg)))
/* Macro to set a setting in a register with WriteOnly access and */
/* with no copy of the register in memory. */
#define MV_SET_WN_SETTING(reg,mask,start,value) \
(MV_XS_WRITE_REG( reg ,((unsigned long)((value) << (start)))));
/* Macro to set the only (single) setting in a register with WriteOnly */
/* access with no copy of the register in memory. */
#define MV_SET_WNS_SETTING(reg,mask,start,value) \
(MV_XS_WRITE_REG( reg , ((unsigned long)((value) << (start)))))
/* Macro to get a setting from a register with ReadWrite access */
#define MV_GET_RW_SETTING(reg,mask,start) \
(((unsigned long)MV_XS_READ_REG(reg) & ((unsigned long)mask)) >> (start))
/* Macro to 'get' a setting from a register with ReadOnly access */
#define MV_GET_R_SETTING(reg,mask,start) \
(((unsigned long)MV_XS_READ_REG(reg) & ((unsigned long)mask)) >> (start))
/* Macro to get a setting from a register with ReadOnly access with */
/* automatic reset to 0 after a read. */
#define MV_GET_R0_SETTING(reg,mask,start)\
((((unsigned long)(MV_REG_COPY.reg |= MV_XS_READ_REG(reg)) & ((unsigned long)mask)) | \
((/*(unsigned long)*/ MV_REG_COPY.reg &= ((unsigned long)~mask)) & (unsigned long)mask)) >> (start))
/* Macro to 'get' a setting from a register with WriteOnly access */
#define MV_GET_W_SETTING(reg,mask,start) \
(((unsigned long)MV_REG_COPY.reg & ((unsigned long)mask)) >> (start))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -