LPC1100處理器通過SD卡實(shí)現(xiàn)IAP功能
下面先介紹LPC1100處理器IAP的基礎(chǔ)知識(shí):
1. LPC1100處理器(LPC1114)Flash分配:LPC1114一共有32K Flash,共分為8個(gè)扇區(qū),每個(gè)扇區(qū)的大小為4K,具體如下:
2.NXP的IAP命令都一樣,一共有9條:
3.IAP命令是通過寄存器R0和R1進(jìn)行參數(shù)傳遞的,R0傳遞參數(shù),R1傳遞返回值:
IAP功能應(yīng)用:
1.定義IAP程序的入口地址
代碼:
#define
2.定義參數(shù)
代碼:
uint32
uint32
3.定義函數(shù)類型指針
代碼:
void (*IAP_Entry)(uint32 *param_tab, uint32 *result_tab) =
(void(*)())IAP_ENTER_ADR; // 定義函數(shù)指針
4.注意事項(xiàng):
①按照上面函數(shù)類型調(diào)用IAP函數(shù)即可,不過要注意函數(shù)的參數(shù)。
②由于在擦寫操作期間,片上Flash存儲(chǔ)器不可訪問。IAP代碼不能使用或禁止中斷。
③Flash編程命令使用片上RAM頂端32字節(jié),用戶程序不能使用此空間。
IAP命令應(yīng)用(代碼來自周工):
IAP有多個(gè)命令,這里我們只把編程常用的幾個(gè)命令函數(shù)貼出來,如果網(wǎng)友需要其他代碼可以在網(wǎng)絡(luò)上自行搜索。
1.準(zhǔn)備寫操作扇區(qū)
代碼:
uint32 SectorPrepare(uint8 sec1, uint8 sec2)
{
}
2.將RAM 內(nèi)容復(fù)制到Flash
代碼:
uint32 RamToFlash(uint32 dst, uint32 src, uint32 no)
{
}
3.擦除扇區(qū)
代碼:
uint32 SectorErase(uint8 sec1, uint8 sec2)
{
}
4.扇區(qū)查空
評(píng)論