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