这两天在学习窗口式看门狗模块,之前一向调试的很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模块,有点晶亮,接下去调试得细心点了。