ARM7 LPC2378 遠(yuǎn)程升級----扇區(qū)
這里有個(gè)時(shí)間概念,大家先了解一下:LPC2378單個(gè) Flash 扇區(qū)或整個(gè)芯片擦除的時(shí)間為 400ms,256 字節(jié)編程的時(shí)間為 1ms,對IAP的操作時(shí)間有個(gè)大概的了解。
再回到扇區(qū),扇區(qū)數(shù):有些 IAP 和 ISP 命令根據(jù)“扇區(qū)”進(jìn)行操作并指定扇區(qū)數(shù)。下圖列出了 LPC2300 系列器件的扇區(qū)數(shù)和存儲器地址之間的對應(yīng)關(guān)系,這些器件包括含 64KB、 128KB、 256KB 和512KB Flash 的器件在內(nèi)。 IAP、 ISP 和 RealMonitor 程序都位于 boot 區(qū)。 boot 區(qū)位于所有器件中地址 0x0007 E000 到 0x0007 FFFF 處。 ISP 和 IAP 命令不允許對 boot 扇區(qū)執(zhí)行寫/擦除/運(yùn)行操作。 由于 boot 區(qū)的原因, 在 512kB Flash 器件中只有 500kB Flash 可供用戶程序和數(shù)據(jù)使用。
根據(jù)上圖,可在你遠(yuǎn)程升級的工程中,創(chuàng)建一個(gè)flash.h文件,方便我們使用扇區(qū):
#ifndef__FLASH_H__
#define__FLASH_H__
#defineFAD00 0x00000000 //0x1000 4K Flash各扇區(qū)起始地址
#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 ,是因?yàn)槲以诰幊躺葏^(qū)的時(shí)候選擇的是512字節(jié)
#defineFMD00 8 //該扇區(qū)為512字節(jié)的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
扇區(qū)的概念還是比較簡單,下篇將介紹IAP和編寫IAP的基本函數(shù)。