56F8013程序Flash的在線可編程特性及應(yīng)用
56F8013電路板通過串口電平轉(zhuǎn)換器與上位計算機(jī)相連。這個串口既可以下載單片機(jī)應(yīng)用程序,同時也可以對單片機(jī)程序運(yùn)行進(jìn)行監(jiān)控。
本文引用地址:http://www.ex-cimer.com/article/134970.htm實(shí)現(xiàn)Bootloader功能包括單片機(jī)程序和上位計算機(jī)的下載程序兩部分,下面分別進(jìn)行介紹。
1.56F8013內(nèi)部Flash空間劃分
將56F8013內(nèi)部Flash內(nèi)部空間進(jìn)行如下的功能劃分?! ?/p>
將Bootloader代碼放在Flash空間的最高位地址空間0x1B00~0x1FFF。56F8013單片機(jī)在硬件復(fù)位復(fù)位和看門狗復(fù)位后分別從Flash的0x0000和0x0003讀取第一個執(zhí)行跳轉(zhuǎn)指令,因此在Flash的前四個字分別放置跳轉(zhuǎn)到Bootloader的指令。用戶程序代碼放在Flash的低位地址空間,用戶程序的起始地址放在0x1AFF。根據(jù)用戶程序需要還可以安排一定的程序參數(shù)存儲地址空間,這部分可以由用戶程序直接進(jìn)行修改,用于存儲程序參數(shù)。
2.Bootloader程序的功能描述和開發(fā)
根據(jù)上述代碼空間劃定,單片機(jī)在復(fù)位之后,首先執(zhí)行Bootloader程序,在Bootloader程序中,先檢查在一定時間內(nèi)(一般設(shè)置為100ms左右)是否接受到用戶通過串口發(fā)送的0x55數(shù)據(jù)。如果受到了0x55數(shù)據(jù),并在最后由0xaa數(shù)據(jù)結(jié)束,便進(jìn)入Bootloader命令狀態(tài),接受相應(yīng)的程序下載指令,進(jìn)行程序的更新。否則便從0x1AFF讀取用戶程序的起始地址,開始執(zhí)行用戶程序。具體的啟動過程如下面流程圖所示:
c語言相關(guān)文章:c語言教程
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評論