Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
Loading...
Searching...
No Matches
VIC.h
1
/* Copyright (C) 2005, 2006, 2007, 2008 by Thomas Hillebrandt and Heiko Will
2
* This file is subject to the terms and conditions of the GNU Lesser
3
* General Public License v2.1. See the file LICENSE in the top level
4
* directory for more details.
5
*
6
*/
7
8
#pragma once
9
10
#include <stdbool.h>
11
12
#ifdef __cplusplus
13
extern
"C"
{
14
#endif
15
20
21
#define I_Bit 0x80
22
#define F_Bit 0x40
23
24
#define SYS32Mode 0x1F
25
#define IRQ32Mode 0x12
26
#define FIQ32Mode 0x11
27
28
#define INTMode (FIQ32Mode | IRQ32Mode)
29
34
#define HIGHEST_PRIORITY 0x01
35
#define IRQP_RTIMER 1
/* FIQ_PRIORITY // TODO: investigate problems with rtimer and FIQ */
36
#define IRQP_TIMER1 1
37
#define IRQP_WATCHDOG 1
38
#define IRQP_CLOCK 3
39
#define IRQP_GPIO 4
40
#define IRQP_RTC 8
41
#define LOWEST_PRIORITY 0x0F
43
44
#define WDT_INT 0
45
#define SWI_INT 1
46
#define ARM_CORE0_INT 2
47
#define ARM_CORE1_INT 3
48
#define TIMER0_INT 4
49
#define TIMER1_INT 5
50
#define UART0_INT 6
51
#define UART1_INT 7
52
#define PWM0_1_INT 8
53
#define I2C0_INT 9
54
#define SPI0_INT 10
/* SPI and SSP0 share VIC slot */
55
#define SSP0_INT 10
56
#define SSP1_INT 11
57
#define PLL_INT 12
58
#define RTC_INT 13
59
#define EINT0_INT 14
60
#define EINT1_INT 15
61
#define EINT2_INT 16
62
#define EINT3_INT 17
63
#define ADC0_INT 18
64
#define I2C1_INT 19
65
#define BOD_INT 20
66
#define EMAC_INT 21
67
#define USB_INT 22
68
#define CAN_INT 23
69
#define MCI_INT 24
70
#define GPDMA_INT 25
71
#define TIMER2_INT 26
72
#define TIMER3_INT 27
73
#define UART2_INT 28
74
#define UART3_INT 29
75
#define I2C2_INT 30
76
#define I2S_INT 31
77
78
#define VECT_ADDR_INDEX 0x100
79
#define VECT_CNTL_INDEX 0x200
80
81
bool
cpu_install_irq(
int
IntNumber,
void
*HandlerAddr,
int
Priority);
82
83
#ifdef __cplusplus
84
}
85
#endif
86
Generated on Thu Jul 3 2025 17:41:19 by
1.13.2