nordic nrf51822

nrf51822 在使用nrfgo studio时候报 Hardfault问题


1.HardFault_Handler 是由内存溢出或者访问越界,堆栈溢出的问题报出的错误,在nrf51822的arm_startup_nrf51.s中

             EXPORT  HardFault_Handler         [WEAK],这个函数可以自己在程序中自己实现,在出问题时候走入到自己实现的接口中。

经过检查代码发现,本人在自己main函数中加入了NRF_POWER->RESET = 1这个代码后,出现的问题;

但是如果在nrfgo studio中烧写softdevice 实现选择如下图时候,不选择红色圈中的 Enable SoftDevice protection 时候也不会报HardFault问题

nordic nrf51822_第1张图片



查看 nrfgo studio 帮助文档只给了下面解释这个 Enable SoftDevice protection 的作用,由于刚刚接触51822不久,不太懂这句话什么意思

       If your softdevice has CLENR0 in an infostruct instead of UICR, you get a choice if you want to copy the CLENR0 to UICR using the Enable SoftDevice protection checkbox. 

   Note you need to uncheck this to enable DFU of the SoftDevice 

看到数据手册说NRF_POWER->RESET = 1是在debug 模式下面才需要进行设置,在normal mode 时候是不需要进行设置的,硬件reset在normal mode

不需要设置任何寄存器,在用烧录器烧写完成后,掉电后再上电硬件reset就使能了,而且在OTA时候不需要掉电。至于上面出现问题的原因还是没有完全搞明白,现在在跟nordic的fae在问这个问题。问题的链接https://devzone.nordicsemi.com/question/108573/nrf51822-hardfault/


你可能感兴趣的:(nordic,51822)