📄 intr.def
字号:
// core interrupt event vector
#define IVG2 0xffe02008
#define IVG3 0xffe0200c
#define IVG4 0xffe02010
#define IVG5 0xffe02014
#define IVG6 0xffe02018
#define IVG7 0xffe0201c
#define IVG8 0xffe02020
#define IVG9 0xffe02024
#define IVG10 0xffe02028
#define IVG11 0xffe0202c
#define IVG12 0xffe02030
#define IVG13 0xffe02034
#define IVG14 0xffe02038
#define IVG15 0xffe0203c
#define imask 0xffe02104
// system interrupt enable flag and request flag
#define SIC_IMASK 0xffc0010c
#define SIC_ISR 0xffc00120
#define PLL_INT 0x1
#define DMAERR_INT 0x2
#define IPORTERR_INT 0x4
#define RTC_INT 0x8
#define DMA0_INT 0x10
#define DMA3_INT 0x20
#define DMA4_INT 0x40
#define DMA5_INT 0x80
#define DMA6_INT 0x100
#define TWI_INT 0x200
#define DMA7_INT 0x400
#define DMA8_INT 0x800
#define DMA9_INT 0x1000
#define DMA10_INT 0x2000
#define DMA11_INT 0x4000
#define CANRx_INT 0x8000
#define CANTx_INT 0x10000
#define DMA1_INT 0x20000
#define PORTH_A_INT 0x20000
#define DMA2_INT 0x40000
#define PORTH_B_INT 0x40000
#define TMR0_INT 0x80000
#define TMR1_INT 0x100000
#define TMR2_INT 0x200000
#define TMR3_INT 0x400000
#define TMR4_INT 0x800000
#define TMR5_INT 0x1000000
#define TMR6_INT 0x2000000
#define TMR7_INT 0x4000000
#define PORTFG_A_INT 0x8000000
#define PORTG_B_INT 0x10000000
#define MDMA0_INT 0x20000000
#define MDMA1_INT 0x40000000
#define WTDTMR_INT 0x80000000
#define PORTF_B_INT 0x80000000
#define POS_PLL_INT 0
#define POS_DMAERR_INT 1
#define POS_IPORTERR_INT 2
#define POS_RTC_INT 3
#define POS_DMA0_INT 4
#define POS_DMA3_INT 5
#define POS_DMA4_INT 6
#define POS_DMA5_INT 7
#define POS_DMA6_INT 8
#define POS_TWI_INT 9
#define POS_DMA7_INT 10
#define POS_DMA8_INT 11
#define POS_DMA9_INT 12
#define POS_DMA10_INT 13
#define POS_DMA11_INT 14
#define POS_CANRx_INT 15
#define POS_CANTx_INT 16
#define POS_DMA1_INT 17
#define POS_PORTH_A_INT 17
#define POS_DMA2_INT 18
#define POS_PORTH_B_INT 18
#define POS_TMR0_INT 19
#define POS_TMR1_INT 20
#define POS_TMR2_INT 21
#define POS_TMR3_INT 22
#define POS_TMR4_INT 23
#define POS_TMR5_INT 24
#define POS_TMR6_INT 25
#define POS_TMR7_INT 26
#define POS_PORTFG_A_INT 27
#define POS_PORTG_B_INT 28
#define POS_MDMA0_INT 29
#define POS_MDMA1_INT 30
#define POS_WTDTMR_INT 31
#define POS_PORTF_B_INT 31
// GPIO MMRs
#define PORTF_FER 0xffc03200
#define PORTF_DIR 0xffc00730
#define PORTF_INEN 0xffc00740
#define PORTF_EDGE 0xffc00738
#define PORTF_BOTH 0xffc0073c
#define PORTF_MASKA_SET 0xffc00718
#define PORTF_DATA 0xffc00700
#define LDREG(reg, data) reg##.h = hi(data); \
reg##.l = lo(data)
#define SAVE_LC0() [--sp] = lc0; \
[--sp] = lt0; \
[--sp] = lb0
#define SAVE_LC1() [--sp] = lc1; \
[--sp] = lt1; \
[--sp] = lb1
#define SAVE_ALL_LC() SAVE_LC0(); \
SAVE_LC1()
#define SAVE_DAG0() [--sp] = i0; \
[--sp] = m0; \
[--sp] = b0; \
[--sp] = l0
#define SAVE_DAG1() [--sp] = i1; \
[--sp] = m1; \
[--sp] = b1; \
[--sp] = l1
#define SAVE_DAG2() [--sp] = i2; \
[--sp] = m2; \
[--sp] = b2; \
[--sp] = l2
#define SAVE_DAG3() [--sp] = i3; \
[--sp] = m3; \
[--sp] = b3; \
[--sp] = l3
#define SAVE_ALL_DAG() SAVE_DAG0(); \
SAVE_DAG1(); \
SAVE_DAG2(); \
SAVE_DAG3()
#define SAVE_ACC() [--sp] = a0.x; \
[--sp] = a0.w; \
[--sp] = a1.x; \
[--sp] = a1.w
#define POP_LC0() lb0 = [sp++]; \
lt0 = [sp++]; \
lc0 = [sp++]
#define POP_LC1() lb1 = [sp++]; \
lt1 = [sp++]; \
lc1 = [sp++]
#define POP_ALL_LC() POP_LC1(); \
POP_LC0()
#define POP_DAG0() l0 = [sp++]; \
b0 = [sp++]; \
m0 = [sp++]; \
i0 = [sp++]
#define POP_DAG0() l0 = [sp++]; \
b0 = [sp++]; \
m0 = [sp++]; \
i0 = [sp++]
#define POP_DAG1() l1 = [sp++]; \
b1 = [sp++]; \
m1 = [sp++]; \
i1 = [sp++]
#define POP_DAG2() l2 = [sp++]; \
b2 = [sp++]; \
m2 = [sp++]; \
i2 = [sp++]
#define POP_DAG3() l3 = [sp++]; \
b3 = [sp++]; \
m3 = [sp++]; \
i3 = [sp++]
#define POP_ALL_DAG() POP_DAG3(); \
POP_DAG2(); \
POP_DAG1(); \
POP_DAG0()
#define POP_ACC() a1.w = [sp++]; \
a1.x = [sp++]; \
a0.w = [sp++]; \
a0.x = [sp++]
#define BEGIN_HANDLER \
[--sp] = astat; \
[--sp] = fp; \
[--sp] = rets; \
[--sp] = (r7:0, p5:0); \
SAVE_ALL_LC(); \
SAVE_ALL_DAG(); \
SAVE_ACC();
#define END_HANDLER \
POP_ACC(); \
POP_ALL_DAG(); \
POP_ALL_LC(); \
(r7:0, p5:0) = [sp++]; \
rets = [sp++]; \
fp = [sp++]; \
astat = [sp++];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -