PowerBlocks SDK
 
Loading...
Searching...
No Matches
exceptions.c File Reference

Handles System Exceptions. More...

#include "exceptions.h"
#include "FreeRTOS.h"
#include "task.h"
#include "utils/crash_handler.h"
#include "system.h"
#include "syscall.h"
#include <stdint.h>
#include <string.h>

Macros

#define PI_INTSR   (*(volatile uint32_t*)0xCC003000)
 
#define PI_INTMR   (*(volatile uint32_t*)0xCC003004)
 

Functions

void prvTickISR ()
 
void exception_install_branch (uint32_t address, uint32_t handler)
 
void exceptions_install_vector ()
 Installs the exception vector into the CPU.
 
void exceptions_install_irq (exception_irq_handler_t handler, exception_irq_type_t type)
 Registers an interrupt handler for an IRQ.
 
void exception_reset (exception_context_t *context)
 
void exception_machine_check (exception_context_t *context)
 
void exception_dsi (exception_context_t *context)
 
void exception_isi (exception_context_t *context)
 
void exception_external (exception_context_t *context)
 
void exception_alignment (exception_context_t *context)
 
void exception_program (exception_context_t *context)
 
void exception_fpu_unavailable (exception_context_t *context)
 
void exception_decrementer (exception_context_t *context)
 
void exception_syscall (exception_context_t *context)
 

Variables

const void * exceptions_vector_reset
 
const void * exceptions_vector_machine_check
 
const void * exceptions_vector_dsi
 
const void * exceptions_vector_isi
 
const void * exceptions_vector_external
 
const void * exceptions_vector_alignment
 
const void * exceptions_vector_program
 
const void * exceptions_vector_fpu_unavailable
 
const void * exceptions_vector_decrementer
 
const void * exceptions_vector_syscall
 
int32_t exception_isr_context_switch_needed
 Call the context switch at the end of the ISR if true.
 

Detailed Description

Handles System Exceptions.

Handles system exceptions interrupt vector table. This includes interrupts. (asynchronous exceptions)

Author
Samuel Fitzsimons (rainbain)
Date
2025 @license MIT (see LICENSE file)

Function Documentation

◆ exceptions_install_irq()

void exceptions_install_irq ( exception_irq_handler_t handler,
exception_irq_type_t type )

Registers an interrupt handler for an IRQ.

Registers an interrupt handler using a IRQ type

◆ exceptions_install_vector()

void exceptions_install_vector ( )

Installs the exception vector into the CPU.

Installs the exception vector into the CPU. Called during system_initialize as part of start.s.

Assumes interrupts to be disabled when you do this.

Variable Documentation

◆ exception_isr_context_switch_needed

int32_t exception_isr_context_switch_needed

Call the context switch at the end of the ISR if true.

Call the context switch at the end of the ISR if true. Usually used along side xSemaphoreGiveFromISR such that awoken task are switched into when a ISR wakes a task.