(转)Cortex-M3 (NXP LPC1788)之看门狗定时器对Flash编程的影响
这两天在学习窗口式看门狗模块,之前一直调试的很happy,今天早上突然就进入不了调试模式,而且无法擦除Flash,无法下载程序。郁闷了半天,以为是Keil软件和Ulink出了问题,在另外个电脑上重载,问题依旧。准备用ISP进行尝试,使用FlashMagic软件,进行读取芯片的ID,一直报警autobaud错误,进他提示的网页看下也没有什么有用的信息。
仔细看了数据手册,在Flash存储器章节看到如下信息。引导加载器(boot loader)控制芯片复位后的初始化操作,并提供对Flash存储器进行编程的工具。包括ISP,通过引导加载器软件和UART0串口片上Flash存储器进行编程或在编程。IAP,应用终端用户的应用代码对片上Flash存储器进行编程。
Flash引导加载器代码在芯片每次上电或复位后最先执行。加载器可以执行ISP命令处理器或用户的应用代码。复位之后,P2[10]引脚的低电平可以被视为启动使用UART0管脚的ISP命令处理器的外部硬件请求。假定在复位管脚出现上升沿时,电源管脚出现标称电平,那么在采样P2[10]之前有3ms的时间来决定是执行用户代码还是ISP处理器。如果P2[10]取样得到低电平且看门狗溢出标志置位,那么启动ISP命令处理器的外部硬件请求将被忽略。在没有ISP命令处理器执行的请求时,将搜索有效的用户程序。
根据红色标记的那句话可知由于我的看门狗调试程序中,设置了溢出不复位,且溢出后没有清除溢出标志。所以导致系统无法产生执行ISP处理器的硬件请求。也就无法通过ISP对芯片进行操作。
问题的原因已经找到,为了解决这个问题,由于自己的调试看门狗程序有问题(一上电就复位,且没清溢出标志),所以正常情况下通过ISP擦除Flash没法成功。尝试用ULINK的JTAG接口进行擦除,但是也一直报警出错。后来只能使用最笨的办法,在上电的时候按住复位按键,然后反复上电,反复使用FlashMagic进行擦除尝试,终于擦除成功。 擦除以后使用ULINK进行下载程序,可以连接正常。
终于可以重新正常使用开发板,继续调试WDT模块,有点揪心,接下去调试得仔细点了。
posted on 2012-09-26 19:16 tdyizhen1314 阅读(1341) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具