Module stellaris_launchpad::common::startup [] [src]

Handles CPU startup (segment init, etc) that's common to all CPUs. Chip specific init (like the interrupt table) should be in the relevant module.

Statics

ISR_VECTORS

Contains exception handlers, interrupt service routine vectors and a magic value that marks the start of the stack.

Functions

isr_busfault

A BusFault is an exception that occurs because of a memory related fault for an instruction or data memory transaction. This might be from an error detected on a bus in the memory system.

isr_debugmon

Debug monitor interrupt handler.

isr_empty_def

A place-holder ISR used when we have nothing better to use.

isr_hardfault

A HardFault is an exception that occurs because of an error during exception processing, or because an exception cannot be managed by any other exception mechanism. HardFaults have a fixed priority of -1, meaning they have higher priority than any exception with configurable priority.

isr_hardfault_rs

Once the StacFrame has been gathered by isr_hardfault, we can process the HardFault using a normal Rust function. It's no_mangle because we refer to it from raw assembler in isr_hardfault.

isr_mmfault

A MemManage fault is an exception that occurs because of a memory protection related fault. The the fixed memory protection constraints determines this fault, for both instruction and data memory transactions. This fault is always used to abort instruction accesses to Execute Never (XN) memory regions.

isr_nmi

A Non Maskable Interrupt (NMI) can be signalled by a peripheral or triggered by software. This is the highest priority exception other than reset. It is permanently enabled and has a fixed priority of -2. NMIs cannot be:

isr_pendsv

PendSV is an interrupt-driven request for system-level service. In an OS environment, use PendSV for context switching when no other exception is active.

isr_svcall

A supervisor call (SVC) is an exception that is triggered by the SVC instruction. In an OS environment, applications can use SVC instructions to access OS kernel functions and device drivers.

isr_systick

A SysTick exception is an exception the system timer generates when it reaches zero. Software can also generate a SysTick exception. In an OS environment, the processor can use this exception as system tick.

isr_usagefault

A UsageFault is an exception that occurs because of a fault related to instruction execution. This includes:

reset_vector

Performs what you might otherwise call 'C Startup'. This routine is specified at the reset vector in the ISR vector table.