移植RT-Thread到ch573平台时出现了问题,对mstatus进行读取写入操作时触发了HardFault。指令为
rt_hw_interrupt_disable:
csrri a0,mstatus,8
ret
估计可能是无法寻址到这个寄存器,通过查看ch32v307——RTT成品移植,发现通过sm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x7800));
进行的操作。又了解到各个不同的单片机的这个地址不一样,我没找到可以参考手册。请解答
移植RT-Thread到ch573平台时出现了问题,对mstatus进行读取写入操作时触发了HardFault。指令为
rt_hw_interrupt_disable:
csrri a0,mstatus,8
ret
估计可能是无法寻址到这个寄存器,通过查看ch32v307——RTT成品移植,发现通过sm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x7800));
进行的操作。又了解到各个不同的单片机的这个地址不一样,我没找到可以参考手册。请解答
asm("csrrw %0, mstatus, %1":"=r"(value):"r"(0x7800));缺了一个a
您好,开关总中断参考代码:
uint32_t irq_status; //用于保留中断值
void FlashDisableAllirq()
{
SYS_DisableAllIrq(&irq_status);
return ;
}
void FlashEnableAllirq()
{
SYS_RecoverIrq(irq_status);
return ;
}