这两天在学习窗口式看门狗模块,之前一直调试的很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模块,有点揪心,接下去调试得仔细点了。
关键字:Cortex-M3 LPC1788 看门狗定时器 Flash编程
引用地址:
Cortex-M3 (NXP LPC1788)之看门狗定时器对Flash编程的影响
推荐阅读最新更新时间:2024-03-16 14:55
基于Cortex-M3内核芯片LM3S2965的CAN总线节点设计
引言 CAN总线具有通信速率高、可靠性高、连接方便和性能价格比高等诸多特点。CAN(Controller Area Network,控制器局域网)属于总线式通信网络,它是一种专门用于工业自动化领域的网络,不同于以太网等管理和信息处理用网络,其物理特性及网络协议特性更强调工业自动化的底层监测及控制。它采用了最新的技术及独特的设计,可靠性和性能超过了已陈旧的现场通信技术,如RS485、BITBUS等。 多数采用微处理器结合CAN控制器芯片的硬件方案,软件实现上是对CAN控制器芯片的寄存器编程,比较繁琐。Luminary Micro公司(现已被TI公司收购)所提供的Stellaris系列是基于 ARM Cortex-M3
[安防电子]
PIC看门狗定时器的理解
pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在PIC16C5X 芯片内有一个特殊的谓之"定义EPROM"(Configuration EPROM)的单元,其中的一个位是用于定义WDT的。你可以将其置"0"来抑制WDT使之永远不起作用。这将在第七章的烧写器介绍部分详细说明,请参阅。 1、WDT周期 WDT有一个基本的溢出周期16ms(无预分频器pic16F917),如果你需要更长的WDT周期,可以把预分频器分配给WDT,最大分频比可达1:
[单片机]
【stm32f407】flash编程
一.Flash介绍 不同型号的STM32F40xx/41xx,其FLASH容量也有所不同,最小的只有128K字节,最大的则达到了1024K字节。STM32F4的FLASH容量为1024K字节,如参考手册图: STM32F4的闪存模块由:主存储器、系统存储器、OPT区域和选项字节等4部分组成。主存储器,该部分用来存放代码和数据常数(如const类型的数据)。分为12个扇区,前4个扇区为16KB大小,然后扇区4是64KB大小,扇区5~11是128K大小,不同容量的STM32F4,拥有的扇区数不一样,比如我们的STM32F407ZGT6,则拥有全部12个扇区。从上图可以看出主存储器的起始地址就是0X08000000, B0、B1都
[单片机]
基于激光测距的车辆宽高检测系统设计
随着我国经济的快速发展,高速公路建设和公路运输规模都得到了前所未有的发展,由此带来的车辆超限超载现象也日益严重。超限运输一方面会缩短公路和桥梁的使用寿命,另一方面会造成车体形状的改变及车辆性能的下降,形成交通安全的严重隐患。目前,车辆超宽超高治理作为治超工作的重要组成部分,大多还处于人工阶段,主要由工作人员用卷尺或者竹竿实测宽高,既增加了工作人员的工作量,又降低了工作效率。为实现超竟超高治理工作的自动化和智能化,采用激光测距技术,选用基于ARM Cortex-M3内核的处理器LM3S8962,设计开发了一套智能车辆宽高检测系统。本系统可对行进车辆进行高精度动态扫描,实现宽高检测。
1 激光测距传感器的选择 激光以其高亮度、高方
[嵌入式]
STM32(Cortex-M3)中NVIC(嵌套向量中断控制)的理解
STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。 1. 何为占先式优先级(pre-emption priority) 高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。 2. 何为副优先级(subpriority) 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。 3. 判断中断是否会被响应的依据 首先是占先式优先级,
[单片机]
LPC1768的看门狗定时器使用
void wwdg_init(void) { LPC_SC- PCLKSEL0 |= (3 0);//分频数为八分频 LPC_WDT- WDCLKSEL &= ~(3 0); LPC_WDT- WDCLKSEL |= (1 0);//设置wdt时钟为apb LPC_WDT- WDCLKSEL |= (1 31);//锁定时钟源 LPC_WDT- WDTC = 0xffff;//设定重载值 LPC_WDT- WDMOD |= (1 0)|(1 1);//看门狗使能并设定引发复位 //此时初始化就完成了 } //关闭系统总中断 __asm void NVIC_SETPRIMASK(void) { CPS
[单片机]
基于JTAG的DSP外部FLASH在线编程与引导技术
摘要:介绍了DSP-FLASH在线编程(ISP)与引导系统的硬件构成,给出了创建可引导文件的步骤和实现FLASH存储顺在线编程的算法;在AD公司Visual DSP++3.5集成开发环境下,通过JTAG对ADSP-21065L外部FLASH存储器AT29LV020实现在线编程,并完成系统的引导。
关键词:JTAG FLASH 在线编程 引导 Visual DSP++3.5
在以DSP为核心的数字信号处理系统中,通常将可执行代码存放在非易失性存储器,在系统加电或复位时通过DSP的引导加载(Boot Loader)机制将该转换到高速存储器中执行。AD公司出品的ADSP SHARC系列DSP内部的非易失性存储器因其资源有限,必须在
[嵌入式]
基于STM32微控制器处理先进电机控制方法
变频器的问世和先进的电机控制方法让三相无刷电机(交流感应电机或永磁同步电机)曾经在调速应用领域取得巨大成功。这些高性能的电机驱动器过去主要用于工厂自动化系统和机器人。十年来,电子元器件的大幅降价使得这些电机驱动器能够进入对成本敏感的市场,例如:家电、空调或个人医疗设备。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M3 内核的STM32系列微控制器为例论述这个过程。
首先,我们回顾一下电机控制的基本原理。在电机控制系统内,为什么处理器非常重要?我们为什么需要非常好的计算性能?毕竟,Nicolas Tesla在一个世纪前发明
[嵌入式]