nrf52832 启用浮点运算 FPU 功耗异常解决方法

缘由

因为用了算法工程师的算法,发现52832电流突然飙升到MA级别,后来排除问题,发现只要启用浮点,电流就上来了,
接下来就是查看如果让FPU正常,资料搜索无数,发现下面的方法解决了问题

方法

初始化启用fpu中断

NVIC_SetPriority(FPU_IRQn, APP_IRQ_PRIORITY_LOW);
NVIC_EnableIRQ(FPU_IRQn)

在在中断中清除fpscr

#define FPU_EXCEPTION_MASK 0x0000009F

void FPU_IRQHandler(void)
{
    uint32_t *fpscr = (uint32_t *)(FPU->FPCAR+0x40);
    (void)__get_FPSCR();

    *fpscr = *fpscr & ~(FPU_EXCEPTION_MASK);
}

你可能感兴趣的:(nrf52832 启用浮点运算 FPU 功耗异常解决方法)