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

📄 var_intr.h

📁 eCos1.31版
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -