emuzit c802fcdcf8
WCH CH569W-R0-1v0 evt board bsp port, first version (#6167)
WCH CH569W-R0-1v0 evt board bsp port, first version

dev/test under Ubuntu 20.04
toolchain from MounRiver_Studio_Community_Linux_x64_V120

tested drivers : SysTick, gpio, gpio interrupt, uart1 (RX interrupt, TX polling)

libcpu/risc-v/SConscript :
group includes rtconfig.CPU only if folder exists

libcpu/risc-v/common/cpuport.c/rt_hw_context_switch_interrupt() :
make it RT_WEAK for customization
2022-07-30 02:10:51 -04:00

32 lines
807 B
C

/*
* Copyright (c) 2006-2022, 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