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