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