新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LPC1100處理器通過SD卡實現(xiàn)IAP功能

LPC1100處理器通過SD卡實現(xiàn)IAP功能

作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏
隨著處理器的發(fā)展,IAP升級方式越來越受到歡迎。而IAP升級的方式也由很多,如:通過串口升級、GPRS遠程升級、SD卡升級等等。這里詳細介紹怎樣使用SD卡升級應用程序的方法.

本文引用地址:http://m.butianyuan.cn/article/201611/322352.htm

下面先介紹LPC1100處理器IAP的基礎知識:

1. LPC1100處理器(LPC1114)Flash分配:LPC1114一共有32K Flash,共分為8個扇區(qū),每個扇區(qū)的大小為4K,具體如下:

2.NXP的IAP命令都一樣,一共有9條:

3.IAP命令是通過寄存器R0和R1進行參數(shù)傳遞的,R0傳遞參數(shù),R1傳遞返回值:

IAP功能應用:

1.定義IAP程序的入口地址

代碼:

#defineIAP_ENTER_ADR 0x1FFF1FF1

2.定義參數(shù)

代碼:

uint32ParamIn[8];
uint32ParamOut[8];

3.定義函數(shù)類型指針

代碼:

void (*IAP_Entry)(uint32 *param_tab, uint32 *result_tab) =

(void(*)())IAP_ENTER_ADR; // 定義函數(shù)指針

4.注意事項:

①按照上面函數(shù)類型調(diào)用IAP函數(shù)即可,不過要注意函數(shù)的參數(shù)。

②由于在擦寫操作期間,片上Flash存儲器不可訪問。IAP代碼不能使用或禁止中斷。

③Flash編程命令使用片上RAM頂端32字節(jié),用戶程序不能使用此空間。

IAP命令應用(代碼來自周工):

IAP有多個命令,這里我們只把編程常用的幾個命令函數(shù)貼出來,如果網(wǎng)友需要其他代碼可以在網(wǎng)絡上自行搜索。

1.準備寫操作扇區(qū)

代碼:


uint32 SectorPrepare(uint8 sec1, uint8 sec2)
{
ParamIn[0] = IAP_Prepare;
ParamIn[1] = sec1;
ParamIn[2] = sec2;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

2.將RAM 內(nèi)容復制到Flash

代碼:


uint32 RamToFlash(uint32 dst, uint32 src, uint32 no)
{
ParamIn[0] = IAP_RAMTOFLASH;
ParamIn[1] = dst;
ParamIn[2] = src;
ParamIn[3] = no;
ParamIn[4] = IAP_FCCLK;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

3.擦除扇區(qū)

代碼:


uint32 SectorErase(uint8 sec1, uint8 sec2)
{
ParamIn[0] = IAP_ERASESECTOR;
ParamIn[1] = sec1;
ParamIn[2] = sec2;
ParamIn[3] = IAP_FCCLK;
(*IAP_Entry)(ParamIn, ParamOut);

return (ParamOut[0]);
}

4.扇區(qū)查空


上一頁 1 2 下一頁

評論


技術專區(qū)

關閉