📄 var_intr.h
字号:
#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 + -