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

📄 map.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/************************************************************************
*               C-EMERALD code for ACCORDO  ( 15 - 05 - 2003 )
*               Ver:  ver0.2
*
*               File: map.h  (memory and hw map)
*
*   Author: A. Di Carlo

************************************************************************/

#define AC_IN           DEC0
#define BD_IN           DEC1
#define E_IN            DEC2
#define F_IN            DEC3
#define HFL_IN          DEC4
#define TE_IN           DEC6
#define TEST_IN         DEC7

#define DEFFOK                (((int)GPIO_R & 0x01) >> 0)
#define DEFACQ                (((int)GPIO_R & 0x02) >> 1)
#if 0
#define NTRACKS_IS_OK         (((int)GPIO_R & 0x10) >> 4)
#define NTRACKS_IS_ZERO       (((int)GPIO_R & 0x20) >> 5)
#define NTRACKS_IS_POSITIVE   (((int)GPIO_R & 0x40) >> 6)

#define TZCX                  (((int)GPIO_R & 0x08) >> 3)
#endif

#define memoryY fraction _YMEM
#define memoryX fraction _XMEM
#define DX_REG  fraction _dx
#define DY_REG  fraction _dy
#define ACC_REG fraction _acc

#define sign_diff(A,B) (((A) - (B)) >> 16) /* if A >= B --> 0 */





/* Reserved memory locations */
/* --------------------------*/
#pragma absolute reserved                @ 0x10


/* Parameter variables accessed by both the ARM and the DSP */
/* -------------------------------------------------------- */
#pragma absolute coeff_focus             @ COEFF_FOCUS_ADD
#pragma absolute delay_focus             @ DELAY_FOCUS_ADD
#pragma absolute coeff_tracking          @ COEFF_TRACKING_ADD
#pragma absolute delay_tracking          @ DELAY_TRACKING_ADD
#pragma absolute coeff_error             @ COEFF_ERROR_ADD
#pragma absolute coeff_sledge            @ COEFF_SLEDGE_ADD
#pragma absolute coeff_clv               @ COEFF_CLV_ADD
#pragma absolute coeff_misc              @ COEFF_MISC_ADD
#pragma absolute fcs_off                 @ FCS_OFFSET_ADD
#pragma absolute fok_thr                 @ FOK_THR_ADD
#pragma absolute fok_tdn                 @ FOK_TDN_ADD
#pragma absolute fok_tup                 @ FOK_TUP_ADD
#pragma absolute trk_off                 @ TRK_OFFSET_ADD
#pragma absolute te_thr                  @ TE_THR_ADD
#pragma absolute adjust_flags            @ ADJUST_FLAGS_ADD
#pragma absolute temin                   @ TEMIN_ADD
#pragma absolute temax                   @ TEMAX_ADD
#pragma absolute femin                   @ FEMIN_ADD
#pragma absolute femax                   @ FEMAX_ADD
#pragma absolute ramp_mode               @ RAMP_MODE_ADD
#pragma absolute ramp_step               @ RAMP_STEP_ADD
#pragma absolute ramp_max                @ RAMP_MAX_ADD
#pragma absolute ramp_min                @ RAMP_MIN_ADD
#pragma absolute fe_cmp                  @ FE_CMP_ADD
#pragma absolute hyst                    @ HYST_ADD
#pragma absolute vib_gain                @ VIB_GAIN_ADD
#pragma absolute gainadj                 @ GAINADJ_ADD
#pragma absolute tawin                   @ TAWIN_ADD
#pragma absolute sledtime                @ SLEDTIME_ADD
#pragma absolute disc_mode               @ DISC_MODE_ADD
#pragma absolute spindle_kick            @ SPINDLE_KICK_ADD
#pragma absolute target_p1T              @ TARGET_P1T_ADD
#pragma absolute clv_ds                  @ TTM_DOWNSAMPLING_ADD
#pragma absolute sledpulse_fwd_amp       @ SLEDPULSE_FWD_AMP_ADD
#pragma absolute sledpulse_bwd_amp       @ SLEDPULSE_BWD_AMP_ADD
#pragma absolute sledpulse_fwd_time      @ SLEDPULSE_FWD_TIME_ADD
#pragma absolute sledpulse_bwd_time      @ SLEDPULSE_BWD_TIME_ADD
#pragma absolute jump_mode               @ JUMP_MODE_ADD
#pragma absolute jmp_dir                 @ JMP_DIR_ADD
#pragma absolute def_ena                 @ DEF_ENA_ADD
#pragma absolute wd_cnt_max              @ WD_CNT_MAX_ADD
#pragma absolute int_mode                @ MODE_ADD
#pragma absolute cav_period_err_max      @ CAV_PERIOD_ERR_MAX_ADD
#pragma absolute clv_freq_err_max        @ CLV_FREQ_ERR_MAX_ADD
#pragma absolute clv_phase_err_max       @ CLV_PHASE_ERR_MAX_ADD
#pragma absolute spdl_limit_min          @ SPDL_LIMIT_MIN_ADD              /* MR20050523c */
#pragma absolute spdl_limit_max          @ SPDL_LIMIT_MAX_ADD              /* MR20050523c */
#pragma absolute ttm_recov_ic            @ TTM_RECOV_IC_ADD                   /* MR20050523b */
#pragma absolute nlc_alpha               @ NLC_ALPHA_ADD       /* Gain (slope) of deadzone (set by ARM). */
#pragma absolute nlc_delta               @ NLC_DELTA_ADD       /* Threshold of deadzone (set by ARM). */
#pragma absolute agc_minmax_nr_cycles    @ AGC_MINMAX_NR_CYCLES_ADD
#pragma absolute agc_minmax_threshold    @ AGC_MINMAX_THRESHOLD_ADD
#pragma absolute proc_enable             @ PROC_ENABLE_ADD
#pragma absolute def_tdn                 @ DEF_TDN_ADD
#pragma absolute def_tup                 @ DEF_TUP_ADD
#pragma absolute bw_switch               @ BW_SWITCH_ADD
#pragma absolute clv_buffer_ok_thres     @ CLV_BUFFER_OK_THRES_ADD


/* DSP state variable accessed by both ARM and DSP */
/* ----------------------------------------------- */
#pragma absolute dsp_state               @ DSP_STATE_ADD


/* Local variables and signals, accessed by the DSP only */
/* ------------------------------------------------------*/

#pragma absolute delay_clv               @ DELAY_CLV_ADD

#if (1 == OPTIMIZED_DEC || 1 == DEBUG_DSP || 2 == DEBUG_DSP)
  /* These variables are located in the same order as listed here because */
  /* in the optimized code they are treated as an array. */
  /* Also in case of debugging these signal should be visible. */
  #pragma absolute fe                    @ FE_ADD
  #pragma absolute fa                    @ FA_ADD
  #pragma absolute fa2                   @ FA2_ADD
  #pragma absolute te                    @ TE_ADD
  #pragma absolute ta                    @ TA_ADD
  #pragma absolute ta2                   @ TA2_ADD
  #pragma absolute hfl                   @ HFL_ADD

  #pragma absolute fedec                 @ FEDEC_ADD
  #pragma absolute fadec                 @ FADEC_ADD
  #pragma absolute fa2dec                @ FA2DEC_ADD
  #pragma absolute tedec                 @ TEDEC_ADD
  #pragma absolute tadec                 @ TADEC_ADD
  #pragma absolute ta2dec                @ TA2DEC_ADD
  #pragma absolute hfldec                @ HFLDEC_ADD
  #pragma absolute hfdc                  @ HFDC_ADD
#endif

#if (1 == OPTIMIZED_DEC)
  /* These variables are located in the same order as listed here because */
  /* in the optimized code they are treated as an array. */
  #pragma absolute fedec_var             @ FEDEC_VAR_ADD
  #pragma absolute fadec_var             @ FADEC_VAR_ADD
  #pragma absolute fa2dec_var            @ FA2DEC_VAR_ADD
  #pragma absolute tedec_var             @ TEDEC_VAR_ADD
  #pragma absolute tadec_var             @ TADEC_VAR_ADD
  #pragma absolute ta2dec_var            @ TA2DEC_VAR_ADD
  #pragma absolute hfldec_var            @ HFLDEC_VAR_ADD
#endif



/* Extra signals, used for debuging only */
/* --------------------------------------*/

#if (1 == DEBUG_DSP || 2 == DEBUG_DSP)
  #pragma absolute pdm_out1              @ PDM_OUT1_ADD
  #pragma absolute pdm_out2              @ PDM_OUT2_ADD
  #pragma absolute amp1                  @ AMP1_ADD
  #pragma absolute amp2                  @ AMP2_ADD
  #pragma absolute stima                 @ STIMA_ADD
  #pragma absolute clv_freq_err          @ CLV_FREQ_ERR_ADD
  #pragma absolute clv_phase_err         @ CLV_PHASE_ERR_ADD
  #pragma absolute te_pid_in             @ TE_PID_IN_ADD
  #pragma absolute ac_in                 @ AC_ADD
  #pragma absolute bd_in                 @ BD_ADD
  #pragma absolute e_in                  @ E_ADD
  #pragma absolute f_in                  @ F_ADD
  #pragma absolute hf_deb                @ HF_DEB_ADD
#endif

#if (2 == DEBUG_DSP)
  #pragma absolute pdm_out1c             @ PDM_OUT1C_ADD
  #pragma absolute pdm_out2c             @ PDM_OUT2C_ADD
  #pragma absolute gpio_out              @ GPIO_OUT_ADD
  #pragma absolute gpio_outc             @ GPIO_OUTC_ADD
  #pragma absolute gpio_mask             @ GPIO_MASK_ADD
#endif




/* Defines */
/* ------- */


/* Definition of mailboxes. */
/* ------------------------ */
/*                            CPU_M_0   */ /* Mailbox 0 not used */
#define DSPWRADD              CPU_M_1      /* Write address for accessing X/Y memory */
#define DSPRDADD              CPU_M_2      /* Read address for accessing X/Y memory */
#define DSPWRDAT              CPU_M_3      /* Data to be written to X/Y memory */
#define FLAGS_PC              CPU_M_4
#define ARM_COM_CODE          CPU_M_5      /* Value sent to ARM through mailbox CPU_M_13 to indicate the X/Y memory access has been completed */
#define DSP_EVENT_ACK         CPU_M_6      /* Value sent to ARM through mailbox CPU_M_13 to indicate the X/Y memory access has been completed */
#define FLAGS                 CPU_M_7      /* Indicates whether a X/Y memory access accesses the X or Y memory (bit 7 and 8) and whether it is a read/write or only read access (bit 15) */
#define DSP_EVENT_CODE        CPU_M_8      /* Writing to this mailbox genereates an interrupt on the ARM, used generating events and conveing the DSP event code  */
#define DSPRDDAT              CPU_M_9      /* Data read for X/Y memory */
#define DSP_PREV_STATE        CPU_M_10     /* Previous DSP state */
#define DSP_STATE             CPU_M_11     /* Current DSP state */
/*                            CPU_M_12  */ /* Mailbox 12 not used */
#define ARM_ACK               CPU_M_13     /* Acknowledge to ARM that X/Y memory access has finished */
/*                            CPU_M_14  */ /* Mailbox 14 not used */



/* Defines for flags_pc variable */
/* ----------------------------- */
#define FCR_ON_INT      ((int)FLAGS_PC & FCR_ON)    /* Test whether or not to activate the focus controller */
#define TCR_ON_INT      ((int)FLAGS_PC & TCR_ON)    /* Test whether or not to activate the radial controller */


⌨️ 快捷键说明

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