资料介绍
本文虽然是针对NXP(恩智浦公司)的LPC2000系列,但使用IAP技术对内部闪存进行编程却适用于几乎所有的NXP ARM MCU系列,包括Cortex-M0 LPC1100以及Cortex-M3 LPC1300/1700等系列。
在大多数的LPC2000器件内部,存在着一个被称为“主启动加载程序(Primary Boot Loader)”的固件,它在每次上电或复位时被首先运行。本文所讲的“次级启动加载程序”实际上是一段用户自己写的代码(烧写在用户闪存区),在执行完主启动加载程序后被执行,提供给用户一个选择,是继续执行当前的应用程序还是对当前应用程序进行更新。
在应用编程(In Application Programming, IAP)是指在用户应用程序运行时,对内部闪存执行擦除或编程操作,它是对用户代码进行升级的一个关键技术。
LPC2000 IAP介绍
扇区(Sector)
IAP操作都是基于“扇区(Sector)”的,这就意味着即使仅仅需要更新一个字节的代码,也要将该字节所在的整个扇区擦除。因此,用户应该将待更新的代码和其它代码放在不同的扇区,以免误擦除。
IAP的应用领域
使用IAP技术,可以对用户代码进行升级,也可以把内部闪存当成类似EEPROM来存储数据。
当用户应用程序运行时,用户可以对程序的一部分进行更新,就像在线升级病毒库一样,而不必将硬件电路断电甚至将芯片取下来放到专门的编程器上去重新烧写代码。
当数据存储器使用,可以减少PCB板面积、降低成本。由于作为数据存储的扇区会被擦除,因此不能将这些扇区和存放用户应用程序的扇区重叠。另外,闪存的擦除和编程次数也是有一定限制的,过于频繁的擦除或编程会影响闪存的寿命。对于LPC2000芯片来说,至少可以稳定擦写十万次,数据至少可以保存20年。
如何使用IAP
关于IAP的详细说明、各种命令码、返回码和参数格式,可以参考LPC2000系列的用户手册。下面重点介绍一下如何使用IAP。
使用流程
图1是使用IAP对闪存进行擦写和编程的基本步骤。
![基于NXP LPC2000的次级启动加载程序解析](/uploads/allimg/171030/2362486-1G0301114322a.png)
定义系统参数:在调用IAP命令前,有一些参数必须事先设置好,这包括系统时钟、IAP调用的入口地址、存放输入参数和输出参数的变量。
选择扇区:在对任何扇区进行擦除或编程前,必须选择(准备)这些扇区,当然,也可以一次选择多个扇区。
擦除扇区:在对闪存的指定扇区进行编程前,必须先擦除这些扇区。如果这些扇区已经被擦除,则不必再擦除了。可以一次对多个扇区进行擦除。
编程扇区:在这个阶段,数据将被从SRAM写入闪存中的指定地址。这里有几个要特别注意的地方:
● 只能将位于片内SRAM内的数据写入片内闪存;
● 位于片内闪存的写入地址必须是256字节对齐;
● 片内SRAM必须位于局部总线(Local Bus),这就意味着有两块SRAM区域(供USB和以太网使用)内的数据不能被直接写入闪存;
● 一次写入的字节数必须是256、512、1024或者4096。
数据校验:用户不必自己写程序每次对写入的数据进行检查,而是可以直接调用一个数据校验的IAP命令。
IAP过程中的中断
在擦除和编程操作过程中,片内闪存是不可访问的,当用户程序启动执行时,用户闪存区域的中断向量有效。在调用擦除和编程的IAP命令前,用户应当关闭中断或者确保中断向量表在SRAM中有效并且中断处理函数也位于SM中。
在大多数的LPC2000器件内部,存在着一个被称为“主启动加载程序(Primary Boot Loader)”的固件,它在每次上电或复位时被首先运行。本文所讲的“次级启动加载程序”实际上是一段用户自己写的代码(烧写在用户闪存区),在执行完主启动加载程序后被执行,提供给用户一个选择,是继续执行当前的应用程序还是对当前应用程序进行更新。
在应用编程(In Application Programming, IAP)是指在用户应用程序运行时,对内部闪存执行擦除或编程操作,它是对用户代码进行升级的一个关键技术。
LPC2000 IAP介绍
扇区(Sector)
IAP操作都是基于“扇区(Sector)”的,这就意味着即使仅仅需要更新一个字节的代码,也要将该字节所在的整个扇区擦除。因此,用户应该将待更新的代码和其它代码放在不同的扇区,以免误擦除。
IAP的应用领域
使用IAP技术,可以对用户代码进行升级,也可以把内部闪存当成类似EEPROM来存储数据。
当用户应用程序运行时,用户可以对程序的一部分进行更新,就像在线升级病毒库一样,而不必将硬件电路断电甚至将芯片取下来放到专门的编程器上去重新烧写代码。
当数据存储器使用,可以减少PCB板面积、降低成本。由于作为数据存储的扇区会被擦除,因此不能将这些扇区和存放用户应用程序的扇区重叠。另外,闪存的擦除和编程次数也是有一定限制的,过于频繁的擦除或编程会影响闪存的寿命。对于LPC2000芯片来说,至少可以稳定擦写十万次,数据至少可以保存20年。
如何使用IAP
关于IAP的详细说明、各种命令码、返回码和参数格式,可以参考LPC2000系列的用户手册。下面重点介绍一下如何使用IAP。
使用流程
图1是使用IAP对闪存进行擦写和编程的基本步骤。
![基于NXP LPC2000的次级启动加载程序解析](/uploads/allimg/171030/2362486-1G0301114322a.png)
定义系统参数:在调用IAP命令前,有一些参数必须事先设置好,这包括系统时钟、IAP调用的入口地址、存放输入参数和输出参数的变量。
选择扇区:在对任何扇区进行擦除或编程前,必须选择(准备)这些扇区,当然,也可以一次选择多个扇区。
擦除扇区:在对闪存的指定扇区进行编程前,必须先擦除这些扇区。如果这些扇区已经被擦除,则不必再擦除了。可以一次对多个扇区进行擦除。
编程扇区:在这个阶段,数据将被从SRAM写入闪存中的指定地址。这里有几个要特别注意的地方:
● 只能将位于片内SRAM内的数据写入片内闪存;
● 位于片内闪存的写入地址必须是256字节对齐;
● 片内SRAM必须位于局部总线(Local Bus),这就意味着有两块SRAM区域(供USB和以太网使用)内的数据不能被直接写入闪存;
● 一次写入的字节数必须是256、512、1024或者4096。
数据校验:用户不必自己写程序每次对写入的数据进行检查,而是可以直接调用一个数据校验的IAP命令。
IAP过程中的中断
在擦除和编程操作过程中,片内闪存是不可访问的,当用户程序启动执行时,用户闪存区域的中断向量有效。在调用擦除和编程的IAP命令前,用户应当关闭中断或者确保中断向量表在SRAM中有效并且中断处理函数也位于SM中。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- LPC86x SPI辅助引导加载程序
- LPC2000读写EEPROM
- 如何使用LPC2000微控制器进行嵌入式软件结构的设计 6次下载
- 基于NXP LPC21xx系列ARM芯片在ucos下启动程序分解 4次下载
- LPC2000系列的ARM参考价格 8次下载
- 飞得浦LPC2000系列微处理器介绍 11次下载
- LPC2000系列ARM参考价格 18次下载
- NXP LPC21xx系列ARM芯片在ucos下启动程序分解 75次下载
- LPC2000系列ARM参考价格 46次下载
- NXP单片机选型指南(英文版) 0次下载
- LPC2000系列单片机学习指导书(英文)
- LPC2000系列ARM硬件结构
- LPC2000系列的CAN总线验收滤波器应用
- LPC2300/LPC2400 TCP/IP Overvie
- LPC2000 pdf datasheet
- AN-2058: ADuCM355用户引导加载程序 1023次阅读
- 如何使用CAN引导加载程序在MAXQ7665A中加载用户应用代码 822次阅读
- 为MAXQ2000微控制器实现JTAG自举加载程序主控 1173次阅读
- 聊聊程序分散加载启动的奥秘 2400次阅读
- 一文了解window电脑控制面板的快速启动 8.3w次阅读
- 米尔科技NXP LPC1857 LPC1850 Cortex-M3开发板概述 4396次阅读
- 米尔科技NXP LPC4357 LPC4350 Cortex-M4/M0开发板介绍 5819次阅读
- 如何在树莓派4上安装新的引导加载程序 5865次阅读
- 基于ARM-Linux平台的FPGA程序加载模式浅析 1159次阅读
- 基于STM32单片机启动文件的作用和启动过程解析 2.8w次阅读
- 对lpc2000系列微控制器片内flash编程的方法 6398次阅读
- 基于网络加载的BootLoader的应用 1432次阅读
- 基于以太网BOOTP协议的DSP程序加载技术 1506次阅读
- nxp单片机汇总_lpc单片机选型 1.9w次阅读
- 成功安装Visual Studio2015后开启环境 提示FIX错误消息“包加载失败” 1618次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论