56F8013程序Flash的在線(xiàn)可編程特性及應用
假設IntFlash組件名稱(chēng)是IFsh1,PE將自動(dòng)生成的文件IFsh1.c中,其中提供了接口函數完成對Flash的訪(fǎng)問(wèn),用戶(hù)調用函數包括:
本文引用地址:http://dyxdggzs.com/article/134970.htm (1)byte IFsh1_SetWordFlash(Addr, Data):將字Data寫(xiě)入Flash中Addr單元;
(2)word readflash(Addr):返回Flash中地址為Addr處的內容;
IFsh1_SetWordFlash函數將58F8013的Flash編程細節都已經(jīng)封裝好,編程流程圖如下圖所示。程序自動(dòng)將Flash編程指令放在RAM中進(jìn)行執行。由于對Flash擦除只能對整頁(yè)Flash進(jìn)行擦除,該函數在對需要擦除再寫(xiě)的情況時(shí),對于整頁(yè)的內容都進(jìn)行了備份,擦除頁(yè)之后再進(jìn)行恢復。所以該函數可以對于Flash中的任意地址中的字按照任意順序進(jìn)行修改?! ?/p>

利用上面Flash編程函數,可以用于保存單片機程序的參數。在車(chē)??刂瞥绦蜷_(kāi)發(fā)過(guò)程中,對于需要整定的參數保存在特定的Flash參數區域,這部分區域地址與用戶(hù)程序不重疊。這樣便可以將程序更新和參數更新分開(kāi)。由于參數的數量相對較少,所以更改起來(lái)非常方便,甚至可以通過(guò)速率比較慢的無(wú)線(xiàn)通信的方式進(jìn)行現場(chǎng)更改,這可以大大提高程序開(kāi)發(fā)和調試的速度。
自舉程序(Bootloader)設計
實(shí)現IAP過(guò)程中,一般將更新程序功能的代碼設計成獨立的自舉程序(Bootloader)模塊。將它燒寫(xiě)在單片機內部特定的位置。下面通過(guò)UART串口實(shí)現IAP功能為例,說(shuō)明Bootloader設計方法,通過(guò)其它通訊方式實(shí)現IAP與此類(lèi)似。
通過(guò)自舉程序下載單片機程序的系統硬件連接如下圖所示:

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論