从之前对总体结构的介绍,参考crazyflie2_nrf51822程序分析--总体结构
可以看出来程序运行的顺序是MBR->MBS->Bootloader->Firmware,MBR我们动不了,所以先分析下MBS都做了什么事情,main函数主要做的事情如下:
<span style="font-size:14px;">int main() __attribute__ ((noreturn));
int main()
{
press = press_none;
/* Lock flash for MBR and MBS
锁住MBR and MBS */
NRF_MPU->PROTENSET0 = 0x00000001UL;
NRF_MPU->PROTENSET1 = 0x80000000UL;
//LED设置为输出模式
nrf_gpio_cfg_output(LED_PIN);
nrf_gpio_pin_set(LED_PIN);
//控制STM32的供电引脚拉低,禁止对stm32供电
nrf_gpio_cfg_output(PM_VCCEN_PIN);
nrf_gpio_pin_clear(PM_VCCEN_PIN);
//按键引