Cortex-M3 (NXP LPC1788)之看門狗定時器對Flash編程的影響
仔細(xì)看了數(shù)據(jù)手冊,在Flash存儲器章節(jié)看到如下信息。引導(dǎo)加載器(boot loader)控制芯片復(fù)位后的初始化操作,并提供對Flash存儲器進(jìn)行編程的工具。包括ISP,通過引導(dǎo)加載器軟件和UART0串口片上Flash存儲器進(jìn)行編程或在編程。IAP,應(yīng)用終端用戶的應(yīng)用代碼對片上Flash存儲器進(jìn)行編程。
本文引用地址:http://butianyuan.cn/article/201611/318451.htmFlash引導(dǎo)加載器代碼在芯片每次上電或復(fù)位后最先執(zhí)行。加載器可以執(zhí)行ISP命令處理器或用戶的應(yīng)用代碼。復(fù)位之后,P2[10]引腳的低電平可以被視為啟動使用UART0管腳的ISP命令處理器的外部硬件請求。假定在復(fù)位管腳出現(xiàn)上升沿時,電源管腳出現(xiàn)標(biāo)稱電平,那么在采樣P2[10]之前有3ms的時間來決定是執(zhí)行用戶代碼還是ISP處理器。如果P2[10]取樣得到低電平且看門狗溢出標(biāo)志置位,那么啟動ISP命令處理器的外部硬件請求將被忽略。在沒有ISP命令處理器執(zhí)行的請求時,將搜索有效的用戶程序。
根據(jù)紅色標(biāo)記的那句話可知由于我的看門狗調(diào)試程序中,設(shè)置了溢出不復(fù)位,且溢出后沒有清除溢出標(biāo)志。所以導(dǎo)致系統(tǒng)無法產(chǎn)生執(zhí)行ISP處理器的硬件請求。也就無法通過ISP對芯片進(jìn)行操作。
問題的原因已經(jīng)找到,為了解決這個問題,由于自己的調(diào)試看門狗程序有問題(一上電就復(fù)位,且沒清溢出標(biāo)志),所以正常情況下通過ISP擦除Flash沒法成功。嘗試用ULINK的JTAG接口進(jìn)行擦除,但是也一直報(bào)警出錯。后來只能使用最笨的辦法,在上電的時候按住復(fù)位按鍵,然后反復(fù)上電,反復(fù)使用FlashMagic進(jìn)行擦除嘗試,終于擦除成功。 擦除以后使用ULINK進(jìn)行下載程序,可以連接正常。
終于可以重新正常使用開發(fā)板,繼續(xù)調(diào)試WDT模塊,有點(diǎn)揪心,接下去調(diào)試得仔細(xì)點(diǎn)了。
評論