CH32V307的IAP无法触发Software_IRQn

没有关中断,以下代码无法触发进入SW_handle中断方法.不明原因

NVIC_EnableIRQ(Software_IRQn);

NVIC_SetPendingIRQ(Software_IRQn);


找到原因了,SW_handle方法名,有一个字母大小写错了 - -

正确方法名应为SW_Handler



并且,s文件下面有一段,要改成这样:

    /* Enable floating point and interrupt */

    lit0, 0x6088

    csrsmstatus, t0


原本的数字是0x7800



一个衍生问题:在BOOT里面可以用这个跳到app,那么app里面用什么方法跳到boot? (app不方便使用SW中断的情况)


您好,在用户模式下需要进中断跳,在机器模式下,可以直接调用跳转指令跳


直接复位不是就可以进bootloader了。如果要跟bootloader之间通讯,少量数据可以放BKP里面吧。


只有登录才能回复,可以选择微信账号登录