mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-08-17 08:42:13 +08:00
删除文件 Port/port_x32/RISC-V32/port_rv32_FSL.S
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
/**************************************************************************//**
|
||||
* @item CosyOS-III Port
|
||||
* @file port_rv32_FSL.S
|
||||
* @brief RISC-V32 Core Port File for Interrupt FIFO Service Loading
|
||||
* @author 迟凯峰
|
||||
* @version v3.0.1
|
||||
* @date 2026.07.30
|
||||
******************************************************************************/
|
||||
|
||||
#include "syscfg.h"
|
||||
#include "mcucfg_rv32.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* 中断FIFO服务装载器 */
|
||||
|
||||
#if (SYSCFG_PENDSVFIFO_DEPTH > 0)
|
||||
|
||||
.global mPendSV_FIFOLoader
|
||||
.align 2
|
||||
mPendSV_FIFOLoader:
|
||||
|
||||
/* FIFO选择 */
|
||||
la a2, m_fifo_lock
|
||||
lb a3, (a2)
|
||||
beqz a3, 1f
|
||||
la a1, mPendSV_FIFO_0
|
||||
j 2f
|
||||
1: la a1, mPendSV_FIFO_1
|
||||
/* 计数溢出 */
|
||||
2:
|
||||
#if (0) // 正常情况下计数器难以溢出,默认关闭防护以提高装载效率。
|
||||
lw a2, (a1)
|
||||
li a3, 0x80000000
|
||||
bltu a3, a2, 4f
|
||||
#endif
|
||||
/* FIFO计数 */
|
||||
/* 0、关闭总中断(嵌套方式)*/
|
||||
#if (MCUCFG_PENDSVFIFO_MUTEX == 0)
|
||||
csrr a3, mstatus
|
||||
csrc mstatus, 0x8
|
||||
fence.i
|
||||
lw a2, (a1)
|
||||
addi a2, a2, 1
|
||||
sw a2, (a1)
|
||||
csrw mstatus, a3
|
||||
/* 1、[lr][sc]指令 */
|
||||
#elif (MCUCFG_PENDSVFIFO_MUTEX == 1)
|
||||
3: lr.w a2, (a1)
|
||||
addi a2, a2, 1
|
||||
sc.w a3, a2, (a1)
|
||||
bnez a3, 3b
|
||||
/* 2、[amoadd]指令 */
|
||||
#elif (MCUCFG_PENDSVFIFO_MUTEX == 2)
|
||||
li a3, 1
|
||||
amoadd.w a2, a3, (a1)
|
||||
addi a2, a2, 1
|
||||
#endif
|
||||
/* FIFO溢出 */
|
||||
li a3, SYSCFG_PENDSVFIFO_DEPTH
|
||||
bltu a3, a2, 4f
|
||||
/* FIFO装载 */
|
||||
slli a2, a2, 2
|
||||
add a1, a1, a2
|
||||
sw a0, (a1)
|
||||
|
||||
4: ret
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user