4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-01-21 04:53:31 +08:00
Shell fd496e4cc4
feat: arm64: generic implementation of vector irq (#9336)
feat: overall implementation of vector irq

This patch generalize the irq handling on up/mp system by adding the
`rt_hw_irq_exit()` & `rt_hw_vector_irq_sched()` API.

Changes:
- Added `rt_hw_irq_exit()` and `rt_hw_vector_irq_sched()` APIs for unified IRQ management.
- Refactored assembly code for both UP and MP systems to use the new IRQ handling flow.
- Removed redundant code and optimized exception handling paths.

Signed-off-by: Shell <smokewood@qq.com>
2024-08-27 00:45:12 -04:00

35 lines
632 B
ArmAsm

/*
* Copyright (c) 2006-2020, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2024-03-28 Shell Move vector handling codes from context_gcc.S
*/
#ifndef __ASSEMBLY__
#define __ASSEMBLY__
#endif
#include "vector_gcc.h"
#include "context_gcc.h"
.section .text
vector_fiq:
.globl vector_fiq
b .
.globl rt_hw_irq_exit
/**
* void rt_hw_vector_irq_sched(void *eframe)
* @brief do IRQ scheduling
*/
rt_hw_vector_irq_sched:
.globl rt_hw_vector_irq_sched
bl rt_scheduler_do_irq_switch
b rt_hw_irq_exit