RISC中关中断应该用原子操作,避免多任务环境造成错误
This commit is contained in:
@@ -20,6 +20,15 @@ uint32_t RISCV_get_MSTATUS(void)
|
||||
return (result);
|
||||
}
|
||||
|
||||
uint32_t RISCV_get_set_MSTATUS(uint32_t value){
|
||||
uint32_t result;
|
||||
__ASM volatile("csrrw %0, mstatus, %1"
|
||||
: "=r"(result)
|
||||
:"r"(value)
|
||||
:"memory");
|
||||
return (result);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn RISCV_set_MSTATUS
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user