📄 hal_if.h
字号:
#define CYGNUM_CALL_IF_FLUSH_ICACHE 8#define CYGNUM_CALL_IF_CPU_DATA 9#define CYGNUM_CALL_IF_BOARD_DATA 10#define CYGNUM_CALL_IF_SYSINFO 11#define CYGNUM_CALL_IF_SET_DEBUG_COMM 12#define CYGNUM_CALL_IF_SET_CONSOLE_COMM 13#define CYGNUM_CALL_IF_SET_SERIAL_BAUD 14#define CYGNUM_CALL_IF_DBG_SYSCALL 15#define CYGNUM_CALL_IF_RESET 16#define CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG 17#define CYGNUM_CALL_IF_DELAY_US 18#define CYGNUM_CALL_IF_DBG_DATA 19#define CYGNUM_CALL_IF_LAST_ENTRY CYGNUM_CALL_IF_DBG_DATA#define CYGNUM_CALL_IF_INSTALL_BPT_FN 35#define CYGNUM_CALL_IF_TABLE_SIZE 64externC volatile CYG_ADDRWORD hal_virtual_vector_table[CYGNUM_CALL_IF_TABLE_SIZE];// Table version is simply the number of the last active entry in the table// (except INSTALL_BPT_FN since it's so high).#define CYGNUM_CALL_IF_TABLE_VERSION CYGNUM_CALL_IF_LAST_ENTRY// These are special debug/console procs IDs// QUERY_CURRENT will cause the ID of the currently selected proc ID to be// returned.// EMPTY this is the ID used for an empty procs table (i.e, NULL// pointer)// MANGLER selects the procs space reserved for the console mangler// allowing the application to temporarily disable mangling// or temporarily switch in different console procs.#define CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT -1#define CYGNUM_CALL_IF_SET_COMM_ID_EMPTY -2#define CYGNUM_CALL_IF_SET_COMM_ID_MANGLER -3// The below is a (messy) attempt at adding some type safety to the// above array. At the same time, the accessors allow the// implementation to be easily changed in the future (both tag->data// table and structure implementations have been suggested).typedef int __call_if_version_t;#define CYGACC_CALL_IF_VERSION() \ ((__call_if_version_t)hal_virtual_vector_table[CYGNUM_CALL_IF_VERSION])#define CYGACC_CALL_IF_VERSION_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_VERSION]=(CYG_ADDRWORD)(_x_)typedef void* __call_if_ictrl_table_t;#define CYGACC_CALL_IF_ICTRL_TABLE() \ ((__call_if_ictrl_table_t)hal_virtual_vector_table[CYGNUM_CALL_IF_ICTRL_TABLE])#define CYGACC_CALL_IF_ICTRL_TABLE_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_ICTRL_TABLE]=(CYG_ADDRWORD)(_x_)typedef void* __call_if_exc_table_t;#define CYGACC_CALL_IF_EXC_TABLE() \ ((__call_if_exc_table_t)hal_virtual_vector_table[CYGNUM_CALL_IF_EXC_TABLE])#define CYGACC_CALL_IF_EXC_TABLE_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_EXC_TABLE]=(CYG_ADDRWORD)(_x_)typedef bsp_handler_t *__call_if_dbg_vector_t;#define CYGACC_CALL_IF_DBG_VECTOR() \ ((__call_if_dbg_vector_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_VECTOR])#define CYGACC_CALL_IF_DBG_VECTOR_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_VECTOR]=(CYG_ADDRWORD)(_x_)typedef bsp_handler_t __call_if_kill_vector_t;#define CYGACC_CALL_IF_KILL_VECTOR() \ ((__call_if_kill_vector_t)hal_virtual_vector_table[CYGNUM_CALL_IF_KILL_VECTOR])#define CYGACC_CALL_IF_KILL_VECTOR_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_KILL_VECTOR]=(CYG_ADDRWORD)(_x_)typedef hal_virtual_comm_table_t *__call_if_console_procs_t;#define CYGACC_CALL_IF_CONSOLE_PROCS() \ ((__call_if_console_procs_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_PROCS])#define CYGACC_CALL_IF_CONSOLE_PROCS_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_PROCS]=(CYG_ADDRWORD)(_x_)typedef hal_virtual_comm_table_t *__call_if_debug_procs_t;#define CYGACC_CALL_IF_DEBUG_PROCS() \ ((__call_if_debug_procs_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS])#define CYGACC_CALL_IF_DEBUG_PROCS_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS]=(CYG_ADDRWORD)(_x_)typedef void (*__call_if_flush_dcache_t)(void *__p, int __nbytes);#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_)typedef void (*__call_if_flush_icache_t)(void *__p, int __nbytes);#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_)typedef void* __call_if_cpu_data_t;#define CYGACC_CALL_IF_CPU_DATA() \ ((__call_if_cpu_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CPU_DATA])#define CYGACC_CALL_IF_CPU_DATA_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_CPU_DATA]=(CYG_ADDRWORD)(_x_)typedef void* __call_if_board_data_t;#define CYGACC_CALL_IF_BOARD_DATA() \ ((__call_if_board_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_BOARD_DATA])#define CYGACC_CALL_IF_BOARD_DATA_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_BOARD_DATA]=(CYG_ADDRWORD)(_x_)typedef int (*__call_if_sysinfo_t)(int __id, void* __ap);//typedef int (*__call_if_sysinfo_t)(enum bsp_info_id __id, va_list __ap);#define CYGACC_CALL_IF_SYSINFO(_i_, _a_) \ ((__call_if_sysinfo_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SYSINFO])((_i_), (_a_))#define CYGACC_CALL_IF_SYSINFO_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SYSINFO]=(CYG_ADDRWORD)(_x_)typedef int (*__call_if_set_debug_comm_t)(int __comm_id);#define CYGACC_CALL_IF_SET_DEBUG_COMM(_i_) \ ((__call_if_set_debug_comm_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_DEBUG_COMM])((_i_))#define CYGACC_CALL_IF_SET_DEBUG_COMM_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SET_DEBUG_COMM]=(CYG_ADDRWORD)(_x_)typedef int (*__call_if_set_console_comm_t)(int __comm_id);#define CYGACC_CALL_IF_SET_CONSOLE_COMM(_i_) \ ((__call_if_set_console_comm_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_CONSOLE_COMM])((_i_))#define CYGACC_CALL_IF_SET_CONSOLE_COMM_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SET_CONSOLE_COMM]=(CYG_ADDRWORD)(_x_)typedef int (*__call_if_set_serial_baud_t)(int __comm_id, int __baud);#define CYGACC_CALL_IF_SET_SERIAL_BAUD(_i_, _b_) \ ((__call_if_set_serial_baud_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_SERIAL_BAUD])((_i_), (_b_))#define CYGACC_CALL_IF_SET_SERIAL_BAUD_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_SET_SERIAL_BAUD]=(CYG_ADDRWORD)(_x_)typedef void* __call_if_dbg_data_t;#define CYGACC_CALL_IF_DBG_DATA() \ ((__call_if_dbg_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_DATA])#define CYGACC_CALL_IF_DBG_DATA_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_DATA]=(CYG_ADDRWORD)(_x_)typedef int (*__call_if_dbg_syscall_t) (enum dbg_syscall_ids id, union dbg_thread_syscall_parms *p );#define CYGACC_CALL_IF_DBG_SYSCALL() \ ((__call_if_dbg_syscall_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_SYSCALL])#define CYGACC_CALL_IF_DBG_SYSCALL_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_SYSCALL]=(CYG_ADDRWORD)(_x_)typedef void (*__call_if_reset_t)(void);#define CYGACC_CALL_IF_RESET() \ ((__call_if_reset_t)hal_virtual_vector_table[CYGNUM_CALL_IF_RESET])()#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])typedef int __call_if_console_interrupt_flag_t;#define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG() \ ((__call_if_console_interrupt_flag_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG])#define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG]=(CYG_ADDRWORD)(_x_)typedef void (*__call_if_delay_us_t)(cyg_int32 usecs);#define CYGACC_CALL_IF_DELAY_US(_u_) \ ((__call_if_delay_us_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DELAY_US])((_u_))#define CYGACC_CALL_IF_DELAY_US_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_DELAY_US]=(CYG_ADDRWORD)(_x_)typedef void (*__call_if_install_bpt_fn_t)(void *__epc);#define CYGACC_CALL_IF_INSTALL_BPT_FN(_e_) \ ((__call_if_install_bpt_fn_t)hal_virtual_vector_table[CYGNUM_CALL_IF_INSTALL_BPT_FN])((_e_))#define CYGACC_CALL_IF_INSTALL_BPT_FN_SET(_x_) \ hal_virtual_vector_table[CYGNUM_CALL_IF_INSTALL_BPT_FN]=(CYG_ADDRWORD)(_x_)//--------------------------------------------------------------------------// 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#endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT//--------------------------------------------------------------------------// Functions provided by the HAL interface.externC void hal_if_init(void);//--------------------------------------------------------------------------// Configuration control for the interface services.// When this is set, code should initialize the vector table wherever// appropriate.#if !defined(CYG_HAL_STARTUP_RAM) || \ ( defined(CYG_HAL_STARTUP_RAM) && \ !defined(CYGSEM_HAL_USE_ROM_MONITOR))# define CYGPRI_HAL_IMPLEMENTS_IF_SERVICES#endif//-----------------------------------------------------------------------------#endif // CYGONCE_HAL_HAL_IF_H// End of hal_if.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -