ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
stm32h7xx_it.c File Reference

Interrupt Service Routines. More...

#include "bsp/config.h"
#include "stm32h7xx_it.h"
#include <stdbool.h>
#include "icarus/config.h"
#include "icarus/svc.h"
#include "st7735.h"
#include "lcd.h"

Go to the source code of this file.

Functions

void NMI_Handler (void)
 This function handles Non maskable interrupt.
 
void HardFault_Handler (void)
 This function handles Hard fault interrupt.
 
void MemManage_Handler (void)
 This function handles Memory management fault.
 
void BusFault_Handler (void)
 This function handles Pre-fetch fault, memory access fault.
 
void UsageFault_Handler (void)
 This function handles Undefined instruction or illegal state.
 
void SVC_Handler (void)
 This function handles System service call via SWI instruction.
 
void DebugMon_Handler (void)
 This function handles Debug monitor.
 
void PendSV_Handler (void)
 This function handles Pendable request for system service.
 
void SysTick_Handler (void)
 This function handles System tick timer.
 
void OTG_FS_IRQHandler (void)
 This function handles USB On The Go FS global interrupt.
 

Variables

PCD_HandleTypeDef hpcd_USB_OTG_FS
 
volatile uint32_t g_memmanage_fault_count = 0
 
volatile uint32_t g_last_fault_addr = 0
 
volatile uint32_t g_last_fault_pc = 0
 

Detailed Description

Interrupt Service Routines.

Attention

Copyright (c) 2025 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Definition in file stm32h7xx_it.c.

Function Documentation

◆ BusFault_Handler()

void BusFault_Handler ( void  )

This function handles Pre-fetch fault, memory access fault.

Definition at line 232 of file stm32h7xx_it.c.

References E3_GPIO_Port, and E3_Pin.

◆ DebugMon_Handler()

void DebugMon_Handler ( void  )

This function handles Debug monitor.

Definition at line 303 of file stm32h7xx_it.c.

◆ HardFault_Handler()

void HardFault_Handler ( void  )

This function handles Hard fault interrupt.

Definition at line 97 of file stm32h7xx_it.c.

References E3_GPIO_Port, and E3_Pin.

◆ MemManage_Handler()

void MemManage_Handler ( void  )

This function handles Memory management fault.

If the fault is a recoverable data access violation (DACCVIOL) from unprivileged thread mode (PSP), we advance the stacked PC by 2 bytes (Thumb instruction) and return so the task continues. The task can then check g_memmanage_fault_count to detect it.

If the fault is not recoverable (instruction fetch, or from MSP), fall through to the 4-blink halt.

Definition at line 159 of file stm32h7xx_it.c.

References E3_GPIO_Port, E3_Pin, g_last_fault_addr, g_last_fault_pc, and g_memmanage_fault_count.

◆ NMI_Handler()

void NMI_Handler ( void  )

This function handles Non maskable interrupt.

Definition at line 81 of file stm32h7xx_it.c.

◆ OTG_FS_IRQHandler()

void OTG_FS_IRQHandler ( void  )

This function handles USB On The Go FS global interrupt.

Definition at line 378 of file stm32h7xx_it.c.

References hpcd_USB_OTG_FS.

◆ PendSV_Handler()

void PendSV_Handler ( void  )

This function handles Pendable request for system service.

Definition at line 328 of file stm32h7xx_it.c.

◆ SVC_Handler()

void SVC_Handler ( void  )

This function handles System service call via SWI instruction.

Definition at line 288 of file stm32h7xx_it.c.

◆ SysTick_Handler()

void SysTick_Handler ( void  )

This function handles System tick timer.

Note
Must run in privileged mode to write to os_tick_count in DTCM

Definition at line 346 of file stm32h7xx_it.c.

References current_task_ticks_remaining, ICARUS_TICKS_PER_TASK, os_running, os_tick_count, and scheduler_enabled.

◆ UsageFault_Handler()

void UsageFault_Handler ( void  )

This function handles Undefined instruction or illegal state.

Definition at line 258 of file stm32h7xx_it.c.

References E3_GPIO_Port, and E3_Pin.

Variable Documentation

◆ g_last_fault_addr

volatile uint32_t g_last_fault_addr = 0

Definition at line 144 of file stm32h7xx_it.c.

Referenced by MemManage_Handler().

◆ g_last_fault_pc

volatile uint32_t g_last_fault_pc = 0

Definition at line 145 of file stm32h7xx_it.c.

Referenced by MemManage_Handler().

◆ g_memmanage_fault_count

volatile uint32_t g_memmanage_fault_count = 0

Definition at line 141 of file stm32h7xx_it.c.

Referenced by MemManage_Handler().

◆ hpcd_USB_OTG_FS

PCD_HandleTypeDef hpcd_USB_OTG_FS
extern

Referenced by OTG_FS_IRQHandler().