这里有个时间概念,大家先了解一下:LPC2378单个 Flash 扇区或整个芯片擦除的时间为 400ms,256 字节编程的时间为 1ms,对IAP的操作时间有个大概的了解。
再回到扇区,扇区数:有些 IAP 和 ISP 命令根据“扇区”进行操作并指定扇区数。下图列出了 LPC2300 系列器件的扇区数和存储器地址之间的对应关系,这些器件包括含 64KB、 128KB、 256KB 和512KB Flash 的器件在内。 IAP、 ISP 和 RealMonitor 程序都位于 boot 区。 boot 区位于所有器件中地址 0x0007 E000 到 0x0007 FFFF 处。 ISP 和 IAP 命令不允许对 boot 扇区执行写/擦除/运行操作。 由于 boot 区的原因, 在 512kB Flash 器件中只有 500kB Flash 可供用户程序和数据使用。
根据上图,可在你远程升级的工程中,创建一个flash.h文件,方便我们使用扇区:
#ifndef __FLASH_H__
#define __FLASH_H__
#define FAD00 0x00000000 //0x1000 4K Flash各扇区起始地址
#define FAD01 0x00001000 //0x1000
#define FAD02 0x00002000 //0x1000
#define FAD03 0x00003000 //0x1000
#define FAD04 0x00004000 //0x1000
#define FAD05 0x00005000 //0x1000
#define FAD06 0x00006000 //0x1000
#define FAD07 0x00007000 //0x1000
#define FAD08 0x00008000 //0x8000 32K
#define FAD09 0x00010000 //0x8000
#define FAD10 0x00018000 //0x8000
#define FAD11 0x00020000 //0x8000
#define FAD12 0x00028000 //0x8000
#define FAD13 0x00030000 //0x8000
#define FAD14 0x00038000 //0x8000
#define FAD15 0x00040000 //0x8000
#define FAD16 0x00048000 //0x8000
#define FAD17 0x00050000 //0x8000
#define FAD18 0x00058000 //0x8000
#define FAD19 0x00060000 //0x8000
#define FAD20 0x00068000 //0x8000
#define FAD21 0x00070000 //0x8000
#define FAD22 0x00078000 //0x1000 4k
#define FAD23 0x00079000 //0x1000
#define FAD24 0x0007A000 //0x1000
#define FAD25 0x0007B000 //0x1000
#define FAD26 0x0007C000 //0x1000
//这里定义#define FMD00 8 ,是因为我在编程扇区的时候选择的是512字节
#define FMD00 8 //该扇区为512字节的8倍(0x1000[4096==512*8]),所以可以编程8次
#define FMD01 8
#define FMD02 8
#define FMD03 8
#define FMD04 8
#define FMD05 8
#define FMD06 8
#define FMD07 8
#define FMD08 64
#define FMD09 64
#define FMD10 64
#define FMD11 64
#define FMD12 64
#define FMD13 64
#define FMD14 64
#define FMD15 64
#define FMD16 64
#define FMD10 64
#define FMD11 64
#define FMD12 64
#define FMD13 64
#define FMD14 64
#define FMD15 64
#define FMD16 64
#define FMD17 64
#define FMD18 64
#define FMD19 64
#define FMD20 64
#define FMD21 64
#define FMD22 8
#define FMD23 8
#define FMD24 8
#define FMD25 8
#define FMD26 8
#endif
扇区的概念还是比较简单,下篇将介绍IAP和编写IAP的基本函数。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』