📄 var_intr.h
字号:
#define CYGNUM_HAL_INTERRUPT_RESERVED_61 61
#define CYGNUM_HAL_INTERRUPT_RESERVED_62 62
#define CYGNUM_HAL_INTERRUPT_RESERVED_63 63
#define CYGNUM_HAL_INTERRUPT_SERIAL_0_RX 64
#define CYGNUM_HAL_INTERRUPT_RESERVED_65 65
#define CYGNUM_HAL_INTERRUPT_RESERVED_66 66
#define CYGNUM_HAL_INTERRUPT_RESERVED_67 67
#define CYGNUM_HAL_INTERRUPT_SERIAL_0_TX 68
#define CYGNUM_HAL_INTERRUPT_RESERVED_69 69
#define CYGNUM_HAL_INTERRUPT_RESERVED_70 70
#define CYGNUM_HAL_INTERRUPT_RESERVED_71 71
#define CYGNUM_HAL_INTERRUPT_SERIAL_1_RX 72
#define CYGNUM_HAL_INTERRUPT_RESERVED_73 73
#define CYGNUM_HAL_INTERRUPT_RESERVED_74 74
#define CYGNUM_HAL_INTERRUPT_RESERVED_75 75
#define CYGNUM_HAL_INTERRUPT_SERIAL_1_TX 76
#define CYGNUM_HAL_INTERRUPT_RESERVED_77 77
#define CYGNUM_HAL_INTERRUPT_RESERVED_78 78
#define CYGNUM_HAL_INTERRUPT_RESERVED_79 79
#define CYGNUM_HAL_INTERRUPT_SERIAL_2_RX 80
#define CYGNUM_HAL_INTERRUPT_RESERVED_81 81
#define CYGNUM_HAL_INTERRUPT_RESERVED_82 82
#define CYGNUM_HAL_INTERRUPT_RESERVED_83 83
#define CYGNUM_HAL_INTERRUPT_SERIAL_2_TX 84
#define CYGNUM_HAL_INTERRUPT_RESERVED_85 85
#define CYGNUM_HAL_INTERRUPT_RESERVED_86 86
#define CYGNUM_HAL_INTERRUPT_RESERVED_87 87
#define CYGNUM_HAL_INTERRUPT_RESERVED_88 88
#define CYGNUM_HAL_INTERRUPT_RESERVED_89 89
#define CYGNUM_HAL_INTERRUPT_RESERVED_90 90
#define CYGNUM_HAL_INTERRUPT_RESERVED_91 91
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_0 92
#define CYGNUM_HAL_INTERRUPT_RESERVED_93 93
#define CYGNUM_HAL_INTERRUPT_RESERVED_94 94
#define CYGNUM_HAL_INTERRUPT_RESERVED_95 95
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_1 96
#define CYGNUM_HAL_INTERRUPT_RESERVED_97 97
#define CYGNUM_HAL_INTERRUPT_RESERVED_98 98
#define CYGNUM_HAL_INTERRUPT_RESERVED_99 99
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_2 100
#define CYGNUM_HAL_INTERRUPT_RESERVED_101 101
#define CYGNUM_HAL_INTERRUPT_RESERVED_102 102
#define CYGNUM_HAL_INTERRUPT_RESERVED_103 103
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_3 104
#define CYGNUM_HAL_INTERRUPT_RESERVED_105 105
#define CYGNUM_HAL_INTERRUPT_RESERVED_106 106
#define CYGNUM_HAL_INTERRUPT_RESERVED_107 107
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_4 108
#define CYGNUM_HAL_INTERRUPT_RESERVED_109 109
#define CYGNUM_HAL_INTERRUPT_RESERVED_110 110
#define CYGNUM_HAL_INTERRUPT_RESERVED_111 111
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_5 112
#define CYGNUM_HAL_INTERRUPT_RESERVED_113 113
#define CYGNUM_HAL_INTERRUPT_RESERVED_114 114
#define CYGNUM_HAL_INTERRUPT_RESERVED_115 115
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_6 116
#define CYGNUM_HAL_INTERRUPT_RESERVED_117 117
#define CYGNUM_HAL_INTERRUPT_RESERVED_118 118
#define CYGNUM_HAL_INTERRUPT_RESERVED_119 119
#define CYGNUM_HAL_INTERRUPT_EXTERNAL_7 120
#define CYGNUM_HAL_INTERRUPT_RESERVED_121 121
#define CYGNUM_HAL_INTERRUPT_RESERVED_122 122
#define CYGNUM_HAL_INTERRUPT_RESERVED_123 123
#define CYGNUM_HAL_ISR_MIN 0
#define CYGNUM_HAL_ISR_MAX 123
#define CYGNUM_HAL_ISR_COUNT (3+((CYGNUM_HAL_ISR_MAX+1)/4))
// The vector used by the Real time clock
#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER_5
//--------------------------------------------------------------------------
// Interrupt vector translation.
#if !defined(HAL_TRANSLATE_VECTOR) && !defined(CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN)
#define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
_index_ = (((_vector_)<=CYGNUM_HAL_INTERRUPT_SYSTEM_ERROR) ? \
(_vector_) : \
(((_vector_)>>2)+CYGNUM_HAL_INTERRUPT_RESERVED_3))
#endif
//--------------------------------------------------------------------------
// MN10300 specific version of HAL_INTERRUPT_CONFIGURE
#define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ ) \
CYG_MACRO_START \
if( _vector_ >= CYGNUM_HAL_INTERRUPT_EXTERNAL_0 ) \
{ \
cyg_uint32 _v_ = _vector_; \
cyg_uint16 _val_ = 0; \
cyg_uint16 _reg_; \
\
/* adjust vector to bit offset in EXTMD */ \
_v_ -= CYGNUM_HAL_INTERRUPT_EXTERNAL_0; \
_v_ >>= 1; \
\
/* set bits according to requirements */ \
if( _up_ ) _val_ |= 1; \
if( !(_level_) ) _val_ |= 2; \
\
/* get EXTMD */ \
_reg_ = mn10300_interrupt_control[0x180>>1]; \
\
/* clear old value and set new */ \
_reg_ &= ~(3<<_v_); \
_reg_ |= _val_<<_v_; \
\
/* restore EXTMD */ \
mn10300_interrupt_control[0x180>>1] = _reg_; \
} \
CYG_MACRO_END
#define HAL_INTERRUPT_CONFIGURE_DEFINED
//--------------------------------------------------------------------------
// Timer control registers.
// On the mn103002 we use timers 4 and 5
#define TIMER4_CR 0x340010a0
#define TIMER4_BR 0x34001090
#define TIMER4_MD 0x34001080
#define TIMER5_CR 0x340010a2
#define TIMER5_BR 0x34001092
#define TIMER5_MD 0x34001082
#define TIMER_CR TIMER5_CR
#define TIMER_BR TIMER5_BR
#define TIMER_MD TIMER5_MD
#define TIMER0_MD 0x34001000
#define TIMER0_BR 0x34001010
#define TIMER0_CR 0x34001020
//--------------------------------------------------------------------------
// Clock control.
#define HAL_CLOCK_INITIALIZE( _period_ ) \
{ \
volatile cyg_uint16 *timer4_br = (cyg_uint16 *)TIMER4_BR; \
volatile cyg_uint8 *timer4_md = (cyg_uint8 *)TIMER4_MD; \
volatile cyg_uint16 *timer5_br = (cyg_uint16 *)TIMER5_BR; \
volatile cyg_uint8 *timer5_md = (cyg_uint8 *)TIMER5_MD; \
\
/* Set timers 4 and 5 into cascade mode */ \
\
*timer5_br = (_period_)>>16; \
\
*timer5_md = 0x40; \
*timer5_md = 0x83; \
\
*timer4_br = (_period_)&0x0000FFFF; \
\
*timer4_md = 0x40; \
*timer4_md = 0x80; \
}
#define HAL_CLOCK_RESET( _vector_, _period_ )
#define HAL_CLOCK_READ( _pvalue_ ) \
{ \
volatile cyg_uint16 *timer4_cr = (cyg_uint16 *)TIMER4_CR; \
volatile cyg_uint16 *timer5_cr = (cyg_uint16 *)TIMER5_CR; \
\
cyg_uint16 t5; \
cyg_uint16 t4; \
\
/* Loop reading the two timers until we can read t5 twice */ \
/* with the same value. This avoids getting silly times if */ \
/* the timers carry between reading the two regs. */ \
do { \
t5 = *timer5_cr; \
t4 = *timer4_cr; \
} while( t5 != *timer5_cr ); \
\
*(_pvalue_) = CYGNUM_KERNEL_COUNTERS_RTC_PERIOD - ((t5<<16) + t4); \
}
// FIXME: above line should not use CYGNUM_KERNEL_COUNTERS_RTC_PERIOD since
// this means the HAL gets configured by kernel options even when the
// kernel is disabled!
//--------------------------------------------------------------------------
#endif // ifndef CYGONCE_HAL_VAR_INTR_H
// End of var_intr.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -