12345678910111213141516171819202122232425262728293031 |
- /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-07-27 Emuzit first version
- */
- #ifndef __ISR_SP_H__
- #define __ISR_SP_H__
- /* usrstack is no more in use right after rt_system_scheduler_start().
- * It is also the time global interrupt is enabled.
- */
- #define isr_sp_enter() \
- asm("la t0, rt_interrupt_nest"); \
- asm("bnez t0, 1f"); \
- asm("la t0, _eusrstack"); \
- asm("sw sp, -4(t0)"); \
- asm("addi sp, t0, -4"); \
- asm("1:")
- #define isr_sp_leave() \
- asm("la t0, rt_interrupt_nest"); \
- asm("bnez t0, 1f"); \
- asm("la t0, _eusrstack"); \
- asm("lw sp, -4(t0)"); \
- asm("1:")
- #endif
|