-
大小: 76KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-06-06
- 語言: 其他
- 標簽: 51單片機??bootloader??IAP??
資源簡介
關于8051系列單片機用bootloader實現IAP的方法做了詳細說明,并提供了一個工程模板

代碼片段和文件信息
#include
//用戶程序起始地址
#define?USER_APP_ADDR?0x1000
char?power_on_test(void);
char?check_upgrade_request(void);
char?upgrade(void);
?
void?main(void)
{
//定義一個函數指針,用于跳轉到用戶程序
void?(*boot)()?=?USER_APP_ADDR;
//bootloader里不能開啟中斷
EA?=?0;
//添加系統初始化代碼
if(power_on_test()){ //開機自檢
upgrade(); ?
}else?if(check_upgrade_request()){ //檢查是否有升級需求
upgrade();
}
//如果不需要升級,或者升級已經完成,執行下面的代碼進入用戶程序
(*boot)();
//正常情況下不會運行到這里,以防萬一
while(1);
}
?
char?power_on_test(void)
{
//添加開機自檢代碼,如果自檢錯誤,進入升級模式
return?0;
}
char?check_upgrade_request(void)
{
//添加檢查用戶是否有升級要求的代碼,例如輸入命令或按下按鍵,如果有,則進入升級模式
return?0;
}
char?upgrade(void)
{
//添加傳輸升級文件和升級用戶程序區的代碼
return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1158??2013-01-10?10:08??bootloader\bootloader.Opt
?????文件????????174??2013-01-10?10:08??bootloader\bootloader.plg
?????文件???????2159??2013-01-10?09:00??bootloader\bootloader.Uv2
????.......??????1156??2013-01-10?09:02??bootloader\bootloader_Opt.Bak
????.......??????2172??2013-01-09?23:17??bootloader\bootloader_Uv2.Bak
?????文件????????952??2013-01-10?09:02??bootloader\Main.c
?????文件???????7087??2013-01-09?17:07??bootloader\STARTUP.A51
?????文件????????187??2013-01-10?09:08??userapp\Main.c
?????文件???????6376??2005-03-22?15:22??userapp\STARTUP.A51
?????文件???????1158??2013-01-10?10:01??userapp\userapp.Opt
?????文件????????332??2013-01-10?10:01??userapp\userapp.plg
?????文件???????2192??2013-01-10?10:01??userapp\userapp.Uv2
????.......??????1158??2013-01-10?09:33??userapp\userapp_Opt.Bak
????.......??????2191??2013-01-10?09:07??userapp\userapp_Uv2.Bak
?????文件??????93696??2013-01-10?10:09??說明.doc
?????目錄??????????0??2013-01-10?10:08??bootloader
?????目錄??????????0??2013-01-10?10:01??userapp
-----------?---------??----------?-----??----
???????????????122148????????????????????17
評論
共有 條評論