1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! The vector table.
//!
//! # Configuration
//!
//! The vector table is configured by [`vtable!`] macro.
//!
//! ```rust
//! vtable! {
//! /// The vector table.
//! pub struct Vtable;
//! pub struct Handlers;
//! static THREADS;
//! extern struct Thr;
//!
//! /// Non maskable interrupt.
//! pub NMI;
//! /// All classes of fault.
//! pub HARD_FAULT;
//! /// System tick timer.
//! pub SYS_TICK;
//! /// RCC global interrupt.
//! pub 5: rcc; // Give INT5 a name
//! }
//! ```
//!
//! # Preconfigured exceptions
//!
//! * `NMI` - Non maskable interrupt.
//! * `HARD_FAULT` - All classes of fault.
//! * `MEM_MANAGE` - Memory management.
//! * `BUS_FAULT` - Pre-fetch fault, memory access fault.
//! * `USAGE_FAULT` - Undefined instruction or illegal state.
//! * `SV_CALL` - System service call via SWI instruction.
//! * `DEBUG` - Monitor.
//! * `PEND_SV` - Pendable request for system service.
//! * `SYS_TICK` - System tick timer.
//!
//! [`vtable!`]: ../macro.vtable.html
pub use ThrControl;
pub use FuturePlat;
pub use ThrRequest;
pub use ;
pub use thr_int as int;
use ;
/// A thread handler function, which should be passed to hardware.
///
/// # Safety
///
/// Must be called only by hardware.
pub unsafe extern "C"