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

📄 hal_if.h

📁 ecos实时嵌入式操作系统
💻 H
📖 第 1 页 / 共 3 页
字号:
{                                                                       \    _ENTER_MONITOR();                                                   \    ((_tt_ *)hal_virtual_vector_table[_n_])();                          \    _EXIT_MONITOR();                                                    \}#define __call_VV1(_n_,_tt_,_rt_,_t1_)                                  \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_)                                              \{                                                                       \    _rt_ res;                                                           \    _ENTER_MONITOR();                                                   \    res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_);                \    _EXIT_MONITOR();                                                    \    return res;                                                         \}#define __call_voidVV1(_n_,_tt_,_rt_,_t1_)                              \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_)                                              \{                                                                       \    _ENTER_MONITOR();                                                   \    ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_);                      \    _EXIT_MONITOR();                                                    \}#define __call_VV2(_n_,_tt_,_rt_,_t1_,_t2_)                             \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_, _t2_ _p2_)                                   \{                                                                       \    _rt_ res;                                                           \    _ENTER_MONITOR();                                                   \    res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_);           \    _EXIT_MONITOR();                                                    \    return res;                                                         \}#define __call_voidVV2(_n_,_tt_,_rt_,_t1_,_t2_)                         \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_, _t2_ _p2_)                                   \{                                                                       \    _ENTER_MONITOR();                                                   \    ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_);                 \    _EXIT_MONITOR();                                                    \}#define __call_VV4(_n_,_tt_,_rt_,_t1_,_t2_,_t3_,_t4_)                   \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_, _t2_ _p2_, _t3_ _p3_, _t4_ _p4_)             \{                                                                       \    _rt_ res;                                                           \    _ENTER_MONITOR();                                                   \    res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_,_p3_,_p4_); \    _EXIT_MONITOR();                                                    \    return res;                                                         \}#define __call_voidVV4(_n_,_tt_,_rt_,_t1_,_t2_,_t3_,_t4_)               \static __inline__ _rt_                                                  \__call_vv_##_n_(_t1_ _p1_, _t2_ _p2_, _t3_ _p3_, _t4_ _p4_)             \{                                                                       \    _ENTER_MONITOR();                                                   \    ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_,_p3_,_p4_);       \    _EXIT_MONITOR();                                                    \}#define CYGACC_DATA_VV(t,e)              __call_vv_##e()#define CYGACC_CALL_VV0(t,e)             __call_vv_##e#define CYGACC_CALL_VV1(t,e,p1)          __call_vv_##e((p1))#define CYGACC_CALL_VV2(t,e,p1,p2)       __call_vv_##e((p1),(p2))#define CYGACC_CALL_VV3(t,e,p1,p2,p3)    __call_vv_##e((p1),(p2),(p3))#define CYGACC_CALL_VV4(t,e,p1,p2,p3,p4) __call_vv_##e((p1),(p2),(p3),(p4))#define CYGACC_CALL_IF_VERSION() \ CYGACC_DATA_VV(__call_if_version_t, CYGNUM_CALL_IF_VERSION)__data_VV(CYGNUM_CALL_IF_VERSION, __call_if_version_t)#define CYGACC_CALL_IF_VERSION_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_VERSION]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_KILL_VECTOR() \ CYGACC_DATA_VV(__call_if_kill_vector_t, CYGNUM_CALL_IF_KILL_VECTOR)__data_VV(CYGNUM_CALL_IF_KILL_VECTOR, __call_if_kill_vector_t)#define CYGACC_CALL_IF_KILL_VECTOR_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_KILL_VECTOR]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_CONSOLE_PROCS() \ CYGACC_DATA_VV(__call_if_console_procs_t, CYGNUM_CALL_IF_CONSOLE_PROCS)__data_VV(CYGNUM_CALL_IF_CONSOLE_PROCS, __call_if_console_procs_t)#define CYGACC_CALL_IF_CONSOLE_PROCS_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_PROCS]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_FLUSH_DCACHE(_p_, _n_) \ ((__call_if_flush_dcache_t*)hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_DCACHE])((_p_), (_n_))#define CYGACC_CALL_IF_FLUSH_DCACHE_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_DCACHE]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_FLUSH_ICACHE(_p_, _n_) \ ((__call_if_flush_icache_t*)hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_ICACHE])((_p_), (_n_))#define CYGACC_CALL_IF_FLUSH_ICACHE_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_ICACHE]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_DEBUG_PROCS() \ CYGACC_DATA_VV(__call_if_debug_procs_t, CYGNUM_CALL_IF_DEBUG_PROCS)__data_VV(CYGNUM_CALL_IF_DEBUG_PROCS, __call_if_debug_procs_t)#define CYGACC_CALL_IF_DEBUG_PROCS_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_SET_DEBUG_COMM(_i_) \ CYGACC_CALL_VV1(__call_if_set_debug_comm_t*, CYGNUM_CALL_IF_SET_DEBUG_COMM, (_i_))__call_VV1(CYGNUM_CALL_IF_SET_DEBUG_COMM, __call_if_set_debug_comm_t, int, int)#define CYGACC_CALL_IF_SET_DEBUG_COMM_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SET_DEBUG_COMM]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_SET_CONSOLE_COMM(_i_) \ CYGACC_CALL_VV1(__call_if_set_console_comm_t*, CYGNUM_CALL_IF_SET_CONSOLE_COMM, (_i_))__call_VV1(CYGNUM_CALL_IF_SET_CONSOLE_COMM, __call_if_set_console_comm_t, int, int)#define CYGACC_CALL_IF_SET_CONSOLE_COMM_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SET_CONSOLE_COMM]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_DBG_DATA() \ CYGACC_DATA_VV(__call_if_dbg_data_t, CYGNUM_CALL_IF_DBG_DATA)__data_VV(CYGNUM_CALL_IF_DBG_DATA, __call_if_dbg_data_t)#define CYGACC_CALL_IF_DBG_DATA_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_DATA]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_DBG_SYSCALL(_id_,_p_) \ CYGACC_CALL_VV2(__call_if_dbg_syscall_t, CYGNUM_CALL_IF_DBG_SYSCALL, _id_, _p_)__call_VV2(CYGNUM_CALL_IF_DBG_SYSCALL, __call_if_dbg_syscall_t, int, enum dbg_syscall_ids ,  union dbg_thread_syscall_parms  *)#define CYGACC_CALL_IF_DBG_SYSCALL_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_SYSCALL]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_RESET() \ CYGACC_CALL_VV0(__call_if_reset_t*, CYGNUM_CALL_IF_RESET)()__call_voidVV0(CYGNUM_CALL_IF_RESET, __call_if_reset_t, void)#define CYGACC_CALL_IF_RESET_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_RESET]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_RESET_GET() \ ((__call_if_reset_t*)hal_virtual_vector_table[CYGNUM_CALL_IF_RESET])#define CYGACC_CALL_IF_MONITOR_VERSION() \ CYGACC_DATA_VV(__call_if_monitor_version_t, CYGNUM_CALL_IF_MONITOR_VERSION)__data_VV(CYGNUM_CALL_IF_MONITOR_VERSION, __call_if_monitor_version_t)#define CYGACC_CALL_IF_MONITOR_VERSION_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_MONITOR_VERSION]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG() \ CYGACC_DATA_VV(__call_if_console_interrupt_flag_t, CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG)__data_VV(CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG, __call_if_console_interrupt_flag_t)#define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_DELAY_US(_u_) \ CYGACC_CALL_VV1(__call_if_delay_us_t*, CYGNUM_CALL_IF_DELAY_US, (_u_))__call_voidVV1(CYGNUM_CALL_IF_DELAY_US, __call_if_delay_us_t, void, cyg_int32)#define CYGACC_CALL_IF_DELAY_US_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DELAY_US]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_INSTALL_BPT_FN(_e_) \ CYGACC_CALL_VV1(__call_if_install_bpt_fn_t*, CYGNUM_CALL_IF_INSTALL_BPT_FN, (_e_))__call_voidVV1(CYGNUM_CALL_IF_INSTALL_BPT_FN, __call_if_install_bpt_fn_t, void, void *)#define CYGACC_CALL_IF_INSTALL_BPT_FN_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_INSTALL_BPT_FN]=(CYG_ADDRWORD)(_x_)#define CYGACC_CALL_IF_FLASH_CFG_OP(_o_,_k_,_d_,_t_) \ CYGACC_CALL_VV4(__call_if_flash_cfg_op_fn_t*, CYGNUM_CALL_IF_FLASH_CFG_OP, (_o_),(_k_),(_d_),(_t_))__call_VV4(CYGNUM_CALL_IF_FLASH_CFG_OP, __call_if_flash_cfg_op_fn_t, cyg_bool, int, char *, void *, int)#define CYGACC_CALL_IF_FLASH_CFG_OP_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_FLASH_CFG_OP]=(CYG_ADDRWORD)(_x_)#define CYGNUM_CALL_IF_FLASH_CFG_GET (0)#define CYGACC_CALL_IF_MONITOR_RETURN(_u_) \ CYGACC_CALL_VV1(__call_if_monitor_return_t*, CYGNUM_CALL_IF_MONITOR_RETURN, (_u_))__call_voidVV1(CYGNUM_CALL_IF_MONITOR_RETURN, __call_if_monitor_return_t, void, int)#define CYGACC_CALL_IF_MONITOR_RETURN_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_MONITOR_RETURN]=(CYG_ADDRWORD)(_x_)// These need to be kept uptodate with the (unadorned) masters// in RedBoot's flash_config.h:#define CYGNUM_FLASH_CFG_OP_CONFIG_EMPTY   0#define CYGNUM_FLASH_CFG_OP_CONFIG_BOOL    1#define CYGNUM_FLASH_CFG_OP_CONFIG_INT     2#define CYGNUM_FLASH_CFG_OP_CONFIG_STRING  3#define CYGNUM_FLASH_CFG_OP_CONFIG_SCRIPT  4#define CYGNUM_FLASH_CFG_OP_CONFIG_IP      5#define CYGNUM_FLASH_CFG_OP_CONFIG_ESA     6#endif // CYGACC_CALL_IF_DEFINED//--------------------------------------------------------------------------// Diag wrappers.externC void hal_if_diag_init(void);externC void hal_if_diag_write_char(char c);externC void hal_if_diag_read_char(char *c);//--------------------------------------------------------------------------// Ctrl-c support.externC cyg_uint32 hal_ctrlc_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data);externC cyg_bool   hal_ctrlc_check(CYG_ADDRWORD vector, CYG_ADDRWORD data);#define HAL_CTRLC_ISR hal_ctrlc_isr#define HAL_CTRLC_CHECK hal_ctrlc_check#else#if defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT) \    || defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT)// Then other code might invoke this macro#define HAL_CTRLC_CHECK(a1,a2) (0) // Nothing, no CTRLC here#endif#endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT//--------------------------------------------------------------------------// Functions provided by the HAL interface.externC void hal_if_init(void);#if 0 != CYGINT_HAL_PLF_IF_INITexternC void plf_if_init(void);#endif//-----------------------------------------------------------------------------#endif // CYGONCE_HAL_HAL_IF_H// End of hal_if.h

⌨️ 快捷键说明

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