📄 cpu_core.h
字号:
*********************************************************************************************************
* CPU_TSxx_to_uSec()
*
* Description : Convert a 32-/64-bit CPU timestamp from timer counts to microseconds.
*
* Argument(s) : ts_cnts CPU timestamp (in timestamp timer counts [see Note #2aA]).
*
* Return(s) : Converted CPU timestamp (in microseconds [see Note #2aD]).
*
* Caller(s) : Application.
*
* This function is an (optional) CPU module application interface (API) function which
* MAY be implemented by application/BSP function(s) [see Note #1] & MAY be called by
* application function(s).
*
* Note(s) : (1) CPU_TS32_to_uSec()/CPU_TS64_to_uSec() are application/BSP functions that MAY be
* optionally defined by the developer when either of the following CPU features is
* enabled :
*
* (a) CPU timestamps
* (b) CPU interrupts disabled time measurements
*
* See 'cpu_cfg.h CPU TIMESTAMP CONFIGURATION Note #1'
* & 'cpu_cfg.h CPU INTERRUPTS DISABLED TIME MEASUREMENT CONFIGURATION Note #1a'.
*
* (2) (a) The amount of time measured by CPU timestamps is calculated by either of
* the following equations :
*
* 10^6 microseconds
* (1) Time measured = Number timer counts * ------------------- * Timer period
* 1 second
*
* Number timer counts 10^6 microseconds
* (2) Time measured = --------------------- * -------------------
* Timer frequency 1 second
*
* where
*
* (A) Number timer counts Number of timer counts measured
* (B) Timer frequency Timer's frequency in some units
* of counts per second
* (C) Timer period Timer's period in some units of
* (fractional) seconds
* (D) Time measured Amount of time measured,
* in microseconds
*
* (b) Timer period SHOULD be less than the typical measured time but MUST be less
* than the maximum measured time; otherwise, timer resolution inadequate to
* measure desired times.
*
* (c) Specific implementations may convert any number of CPU_TS32 or CPU_TS64 bits
* -- up to 32 or 64, respectively -- into microseconds.
*********************************************************************************************************
*/
#if (CPU_CFG_TS_32_EN == DEF_ENABLED)
CPU_INT64U CPU_TS32_to_uSec(CPU_TS32 ts_cnts);
#endif
#if (CPU_CFG_TS_64_EN == DEF_ENABLED)
CPU_INT64U CPU_TS64_to_uSec(CPU_TS64 ts_cnts);
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* CONFIGURATION ERRORS
*********************************************************************************************************
*/
#ifndef CPU_CFG_NAME_EN
#error "CPU_CFG_NAME_EN not #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_ENABLED ] "
#error " [ || DEF_DISABLED] "
#elif ((CPU_CFG_NAME_EN != DEF_ENABLED ) && \
(CPU_CFG_NAME_EN != DEF_DISABLED))
#error "CPU_CFG_NAME_EN illegally #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_ENABLED ] "
#error " [ || DEF_DISABLED] "
#elif (CPU_CFG_NAME_EN == DEF_ENABLED)
#ifndef CPU_CFG_NAME_SIZE
#error "CPU_CFG_NAME_SIZE not #define'd in 'cpu_cfg.h'"
#error " [MUST be >= 1] "
#error " [ && <= 255] "
#elif (DEF_CHK_VAL(CPU_CFG_NAME_SIZE, \
1, \
DEF_INT_08U_MAX_VAL) != DEF_OK)
#error "CPU_CFG_NAME_SIZE illegally #define'd in 'cpu_cfg.h'"
#error " [MUST be >= 1] "
#error " [ && <= 255] "
#endif
#endif
#ifndef CPU_CFG_TS_32_EN
#error "CPU_CFG_TS_32_EN not #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((CPU_CFG_TS_32_EN != DEF_DISABLED) && \
(CPU_CFG_TS_32_EN != DEF_ENABLED ))
#error "CPU_CFG_TS_32_EN illegally #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#endif
#ifndef CPU_CFG_TS_64_EN
#error "CPU_CFG_TS_64_EN not #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((CPU_CFG_TS_64_EN != DEF_DISABLED) && \
(CPU_CFG_TS_64_EN != DEF_ENABLED ))
#error "CPU_CFG_TS_64_EN illegally #define'd in 'cpu_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#endif
/* Correctly configured in 'cpu_core.h'; DO NOT MODIFY. */
#ifndef CPU_CFG_TS_EN
#error "CPU_CFG_TS_EN not #define'd in 'cpu_core.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((CPU_CFG_TS_EN != DEF_DISABLED) && \
(CPU_CFG_TS_EN != DEF_ENABLED ))
#error "CPU_CFG_TS_EN illegally #define'd in 'cpu_core.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#endif
/*$PAGE*/
/* Correctly configured in 'cpu_core.h'; DO NOT MODIFY. */
#ifndef CPU_CFG_TS_TMR_EN
#error "CPU_CFG_TS_TMR_EN not #define'd in 'cpu_core.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((CPU_CFG_TS_TMR_EN != DEF_DISABLED) && \
(CPU_CFG_TS_TMR_EN != DEF_ENABLED ))
#error "CPU_CFG_TS_TMR_EN illegally #define'd in 'cpu_core.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif (CPU_CFG_TS_TMR_EN == DEF_ENABLED)
#ifndef CPU_CFG_TS_TMR_SIZE
#error "CPU_CFG_TS_TMR_SIZE not #define'd in 'cpu_cfg.h' "
#error " [MUST be CPU_WORD_SIZE_08 8-bit timer]"
#error " [ || CPU_WORD_SIZE_16 16-bit timer]"
#error " [ || CPU_WORD_SIZE_32 32-bit timer]"
#error " [ || CPU_WORD_SIZE_64 64-bit timer]"
#elif ((CPU_CFG_TS_TMR_SIZE != CPU_WORD_SIZE_08) && \
(CPU_CFG_TS_TMR_SIZE != CPU_WORD_SIZE_16) && \
(CPU_CFG_TS_TMR_SIZE != CPU_WORD_SIZE_32) && \
(CPU_CFG_TS_TMR_SIZE != CPU_WORD_SIZE_64))
#error "CPU_CFG_TS_TMR_SIZE illegally #define'd in 'cpu_cfg.h' "
#error " [MUST be CPU_WORD_SIZE_08 8-bit timer]"
#error " [ || CPU_WORD_SIZE_16 16-bit timer]"
#error " [ || CPU_WORD_SIZE_32 32-bit timer]"
#error " [ || CPU_WORD_SIZE_64 64-bit timer]"
#endif
#endif
#ifndef CPU_CFG_INT_DIS_MEAS_EN
#if 0 /* Optionally configured in 'cpu_cfg.h'; DO NOT MODIFY. */
#error "CPU_CFG_INT_DIS_MEAS_EN not #define'd in 'cpu_cfg.h'"
#endif
#else
#ifndef CPU_CFG_INT_DIS_MEAS_OVRHD_NBR
#error "CPU_CFG_INT_DIS_MEAS_OVRHD_NBR not #define'd in 'cpu_cfg.h' "
#error " [MUST be >= CPU_TIME_MEAS_NBR_MIN]"
#error " [ || <= CPU_TIME_MEAS_NBR_MAX]"
#elif (DEF_CHK_VAL(CPU_CFG_INT_DIS_MEAS_OVRHD_NBR, \
CPU_TIME_MEAS_NBR_MIN, \
CPU_TIME_MEAS_NBR_MAX) != DEF_OK)
#error "CPU_CFG_INT_DIS_MEAS_OVRHD_NBR illegally #define'd in 'cpu_cfg.h' "
#error " [MUST be >= CPU_TIME_MEAS_NBR_MIN]"
#error " [ || <= CPU_TIME_MEAS_NBR_MAX]"
#endif
#endif
#ifndef CPU_CFG_LEAD_ZEROS_ASM_PRESENT
#if 0 /* Optionally configured in 'cpu_cfg.h'; DO NOT MODIFY. */
#error "CPU_CFG_LEAD_ZEROS_ASM_PRESENT not #define'd in 'cpu.h'/'cpu_cfg.h'"
#endif
#endif
/*
*********************************************************************************************************
* LIBRARY CONFIGURATION ERRORS
*********************************************************************************************************
*/
/* See 'cpu_core.h Note #1a'. */
#if (LIB_VERSION < 13500u)
#error "LIB_VERSION [SHOULD be >= V1.35.00]"
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* MODULE END
*********************************************************************************************************
*/
#endif /* End of CPU core module include. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -