56F8013程序Flash的在線可編程特性及應用
假設IntFlash組件名稱是IFsh1,PE將自動生成的文件IFsh1.c中,其中提供了接口函數(shù)完成對Flash的訪問,用戶調用函數(shù)包括:
本文引用地址:http://www.ex-cimer.com/article/134970.htm (1)byte IFsh1_SetWordFlash(Addr, Data):將字Data寫入Flash中Addr單元;
(2)word readflash(Addr):返回Flash中地址為Addr處的內(nèi)容;
IFsh1_SetWordFlash函數(shù)將58F8013的Flash編程細節(jié)都已經(jīng)封裝好,編程流程圖如下圖所示。程序自動將Flash編程指令放在RAM中進行執(zhí)行。由于對Flash擦除只能對整頁Flash進行擦除,該函數(shù)在對需要擦除再寫的情況時,對于整頁的內(nèi)容都進行了備份,擦除頁之后再進行恢復。所以該函數(shù)可以對于Flash中的任意地址中的字按照任意順序進行修改?! ?/p>
利用上面Flash編程函數(shù),可以用于保存單片機程序的參數(shù)。在車??刂瞥绦蜷_發(fā)過程中,對于需要整定的參數(shù)保存在特定的Flash參數(shù)區(qū)域,這部分區(qū)域地址與用戶程序不重疊。這樣便可以將程序更新和參數(shù)更新分開。由于參數(shù)的數(shù)量相對較少,所以更改起來非常方便,甚至可以通過速率比較慢的無線通信的方式進行現(xiàn)場更改,這可以大大提高程序開發(fā)和調試的速度。
自舉程序(Bootloader)設計
實現(xiàn)IAP過程中,一般將更新程序功能的代碼設計成獨立的自舉程序(Bootloader)模塊。將它燒寫在單片機內(nèi)部特定的位置。下面通過UART串口實現(xiàn)IAP功能為例,說明Bootloader設計方法,通過其它通訊方式實現(xiàn)IAP與此類似。
通過自舉程序下載單片機程序的系統(tǒng)硬件連接如下圖所示:
c語言相關文章:c語言教程
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
評論