在dtcm区域,没用dma,没用cache,但数据同步问题如下:
int v = rdclock();
memset(&bl_data, v, sizeof(bl_data)); // 故意写入整块随机数,重启后还存在,没问题
// save BL parameters
bl_data.bl_stay = rebooter->bl_stay;
if(rebooter->reason!=RBT_BL){
KTRACES("fill %d", rebooter->reason);
bl_data.bl_upmode = rebooter->reason; // 此处写入的单字节数据,重启后丢失
}
__DSB();
KTRACES("\r\n%-0*h", 0x60, &bl_data); // 检查当前数据,正确,见下图
__NVIC_SystemReset(); // 重启cpu |