使用的芯片stm32f103cbt6
做了一个IAP功能,接收到数据,就用iap_write_appbin把数据写入flash。
调试了一下发现,
用了原子哥的历程里的iap_write_appbin,单步调试下去应该该跑的都跑了,但是flash不变。
测试程序是这样的
while(1)
{
g_UpdateRecBuf[0] = 0x11;
g_UpdateRecBuf[1] = 0x22;
g_UpdateRecBuf[2] = 0x33;
iap_write_appbin(FLASH_TEMPAPP_ADDR,&g_UpdateRecBuf[0],16);//Ë¢èëFLASH
delay_ms(100);
printf("0x%x 0x%x 0x%x
",*(u8*)FLASH_TEMPAPP_ADDR,*(u8*)(FLASH_TEMPAPP_ADDR+1),*(u8*)(FLASH_TEMPAPP_ADDR+2));
}
打出来的数跟我单步调试,使用memory窗口调试看到的内存是一样的,而不是写进去的。
会有什么可能原因吗?
难道这个芯片还需要刷cache?
一周热门 更多>