基于RTOS下FLASH編程的疑問(wèn)

現(xiàn)在在rt-thread下,使用其中一個(gè)線程接收IP數(shù)據(jù)編程FLASH。發(fā)現(xiàn)隨機(jī)出現(xiàn)問(wèn)題(概率還極高)。打印信息,擦除地址應(yīng)該是沒(méi)問(wèn)題的:

erase?32K:8038000
erase?32K:8040000
erase?32K:8048000
erase?4K:8050000
erase?4K:8051000
erase?4K:8052000
erase?4K:8053000
????while(e_page_cnt>=8)
????{
????????FLASH_EraseBlock_32K_Fast(addr);
????????DBG_PRINT("erase?32K:%x\r\n",?addr);
????????addr?+=?32?*?1024;
????????e_page_cnt?-=?8;
????}
????while?(e_page_cnt)
????{
?????????FLASH_ErasePage(addr);
?????????DBG_PRINT("erase?4K:%x\r\n",?addr);
?????????addr?+=?4?*?1024;
?????????e_page_cnt--;
????}

但是擦除并編程完畢后,重啟就發(fā)現(xiàn)無(wú)法啟動(dòng)。調(diào)試查看FLASH內(nèi)容,發(fā)現(xiàn)0x8038000后面的數(shù)據(jù)的確成功擦寫(xiě)了。但是第一個(gè)4K頁(yè)的數(shù)據(jù)好像也被擦除了(顯示全部39E339E3)。是不是FLASH擦除的時(shí)候,不允許線程切換?


不知道為什么帖子修改之后,上面的空格編程問(wèn)號(hào)了……


熱門(mén)產(chǎn)品 : CH32X035: 32位USB+USB PD單片機(jī)

現(xiàn)在嘗試FLASH_EraseBlock_32K_Fast和FLASH_ErasePage不混用,只使用FLASH_EraseBlock_32K_Fast好像就沒(méi)有這個(gè)問(wèn)題出現(xiàn)了……是因?yàn)榭焖倌J较虏辉试S使用標(biāo)準(zhǔn)模式的編程指令么?


您好,在調(diào)用FLASH_ErasePage函數(shù)和FLASH_EraseBlock_32K_Fast函數(shù)進(jìn)行擦除時(shí),需要先執(zhí)行對(duì)應(yīng)的解鎖操作。FLASH_ErasePage函數(shù)需要調(diào)用FLASH_Unlock函數(shù)進(jìn)行解鎖,F(xiàn)LASH_EraseBlock_32K_Fast函數(shù)需要調(diào)用FLASH_Unlock_Fast函數(shù),你是不是整個(gè)過(guò)程只使用了FLASH_Unlock_Fast函數(shù)進(jìn)行解鎖,你可以都進(jìn)行解鎖試一下


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频