LPC1100處理器通過SD卡實現(xiàn)IAP功能
代碼:本文引用地址:http://m.butianyuan.cn/article/201611/322352.htm
uint32 BlankChk(uint8 sec1, uint8 sec2)
{
}
5.比較<地址1><地址2><字節(jié)數(shù)>
代碼:
uint32 DataCompare(uint32 dst, uint32 src, uint32 no)
{
}
有上面的幾個函數(shù)后,下面就可以根據(jù)需要編寫SD卡升級函數(shù)了:
1.定義用戶程序地址
定義用戶程序的起始地址,用戶可以根據(jù)自己的實際情況設定,一般都從0x0000 0000開始存放IAP代碼,之后的空間才是存放用戶代碼的。
代碼:
#define APP_CODE_START_ADDR
2.從SD卡中讀寫bin文件更新升級
從SD卡中升級程序很簡單。流程是:從SD卡中打開升級文件,每次讀取512字節(jié),然后寫入Flash,直到編寫完成。
IAP支持256/512/1024/2048/4096等多字節(jié)編程方式,只是SD卡每扇區(qū)大小一般都是512字節(jié),所以這里使用512字節(jié)為單位進行編程。
代碼:
uint8 UCSDCardProgram(uint8 *fileName, uint8 *buf)
{
uint32 addr = 0;
FATFS fs;
FIL file;
UINT br;
FRESULT res;
}
3.主函數(shù):
主函數(shù)實現(xiàn)按鍵掃描,如果有按鍵,進行SD卡升級,如果沒有按鍵直接跳轉(zhuǎn)到應用程序。
代碼一開始判斷按鍵,所以一般都是需要按下按鍵后復位系統(tǒng),當然也可以適當循環(huán)掃描按鍵的次數(shù)。等待一定的時間。。。。。。。
代碼:
int main(void)
{
}
到此IAP程序完成了,下面就是編寫應用程序了。。。。。。。。。。。。。。。。。。。。。。
應用程序編寫:
應用程序編寫沒有什么特殊的,只是需要注意幾個地方的設置
1.設置編譯地址:
2.編譯設置
設置NO_CRP條件編譯,否則程序編譯會出錯,此字段在啟動代碼中使用,如果要加密代碼,此段號也需要設置。
3.生存bin文件
設置bin文件生成命令,具體的設置方法請看<
4.編寫應用程序,并把bin文件存放SD卡中,運行IAP升級程序。
具體的升級過程:
1.把IAP程序下載到板子上。
2.編寫并編譯好應用程序,需要是的bin文件。
3.把應用程序的bin文件拷貝到SD卡中。
4.在板子上插入SD卡,并按下按鍵重啟系統(tǒng)。
5.板子就會自動實現(xiàn)升級并跳轉(zhuǎn)到應用中運行。
評論