ARM7 LPC2378 远程升级----扇区
扫描二维码
随时随地手机看文章
这里有个时间概念,大家先了解一下: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__
#defineFAD00 0x00000000 //0x1000 4K Flash各扇区起始地址
#defineFAD01 0x00001000 //0x1000
#defineFAD02 0x00002000 //0x1000
#defineFAD03 0x00003000 //0x1000
#defineFAD04 0x00004000 //0x1000
#defineFAD05 0x00005000 //0x1000
#defineFAD06 0x00006000 //0x1000
#defineFAD07 0x00007000 //0x1000
#defineFAD08 0x00008000 //0x8000 32K
#defineFAD09 0x00010000 //0x8000
#defineFAD10 0x00018000 //0x8000
#defineFAD11 0x00020000 //0x8000
#defineFAD12 0x00028000 //0x8000
#defineFAD13 0x00030000 //0x8000
#defineFAD14 0x00038000 //0x8000
#defineFAD15 0x00040000 //0x8000
#defineFAD16 0x00048000 //0x8000
#defineFAD17 0x00050000 //0x8000
#defineFAD18 0x00058000 //0x8000
#defineFAD19 0x00060000 //0x8000
#defineFAD20 0x00068000 //0x8000
#defineFAD21 0x00070000 //0x8000
#defineFAD22 0x00078000 //0x1000 4k
#defineFAD23 0x00079000 //0x1000
#defineFAD24 0x0007A000 //0x1000
#defineFAD25 0x0007B000 //0x1000
#defineFAD26 0x0007C000 //0x1000
//这里定义#defineFMD00 8 ,是因为我在编程扇区的时候选择的是512字节
#defineFMD00 8 //该扇区为512字节的8倍(0x1000[4096==512*8]),所以可以编程8次
#defineFMD01 8
#defineFMD02 8
#defineFMD03 8
#defineFMD04 8
#defineFMD05 8
#defineFMD06 8
#defineFMD07 8
#defineFMD08 64
#defineFMD09 64
#defineFMD10 64
#defineFMD11 64
#defineFMD12 64
#defineFMD13 64
#defineFMD14 64
#defineFMD15 64
#defineFMD16 64
#defineFMD10 64
#defineFMD11 64
#defineFMD12 64
#defineFMD13 64
#defineFMD14 64
#defineFMD15 64
#defineFMD16 64
#defineFMD17 64
#defineFMD18 64
#defineFMD19 64
#defineFMD20 64
#defineFMD21 64
#defineFMD22 8
#defineFMD23 8
#defineFMD24 8
#defineFMD25 8
#defineFMD26 8
#endif
扇区的概念还是比较简单,下篇将介绍IAP和编写IAP的基本函数。