访问空指针
uint32_t * ptr = NULL;
*ptr = 5;
空指针指向0地址,0地址在cotex-m系列单片机中(由于BOOT配置方式),多数被映射到0x8000000,即代码起始地址。
根据权威指南描述,访问这部分地址是允许的,且不会造成异常。
根据数据手册描述,如果没配置好flash的操作,就直接写这部分地址,就会报PGPERR和PGSERR错误。
调试结果也是这样,目前来看这两个异常不会触发hardfault之类的异常,但是如果没清除这些错误标志又操作flash,在stm32中会写不了数据。
比如GD32的flash库函数,就不会对这些错误异常标志位清0,需要编写代码时主动清0。