機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
在PIC18單片機中使用BootLoader
在PIC18單片機中使用BootLoader
 更新時間:2008-8-19 13:25:04  點擊數(shù):96
【字體: 字體顏色
進入BootLoader;
  BOOT_SIGNAL_PORT——定義電平觸發(fā)啟動方式檢測用的引腳;
  BOOT_SIGNAL_LEVEL——定義檢測電平1=高電平觸發(fā),0=低電平觸發(fā);
  BOOT_TIME_DELAY——使用超時方式進入BootLoader,這個參數(shù)和上面的BOOT_SIGNAL不能同時使用;
  USE_EXTEND_HEX——是否接收擴展的HEX代碼,不使用可以節(jié)省代碼,建議不用;
  USEWDT——是否在BootLoader中使用看門狗,建議使用;
  CONFIRM_TIME——聯(lián)機同步字節(jié)數(shù),在超時方式中使用多字節(jié)進行同步;
  CONFIRM_DATA——用戶可定義的聯(lián)機數(shù)據(jù);
  USE_ECHOBACK——編程時是否回應(yīng),使用可以增加下載時的安全性,建議使用。

  使用了BOOT_SIGNAL方式后,與超時方式相關(guān)的部分都不再起作用。這時可以定義使用任意引腳來判定是否需要進入BootLoader。在使用BOOT_TIME_DELAY(超時方式)時,增加了一些與之相關(guān)的內(nèi)容,如CONFIRM_DATA,可以使用任何特定的字符串來確認是否需要進入BootLoader狀態(tài),增加了BootLoader程序的安全性,避免受到干擾而誤進入程序升級狀態(tài)。

  (3) 其他改進的建議和方法

   ① HI-TECH的BootLoader程序接收的是標(biāo)準的HEX文件。這在很多時候是不夠安全的,不利于程序的加密,容易被反匯編和破解。可以對HEX進行加密處理,變成不能直接查看的數(shù)據(jù)。

   ② 使用超級終端進行程序下載速度比較慢,同時,如果下載中出現(xiàn)錯誤,超級終端程序不能及時發(fā)現(xiàn)停止下來,而是一直把文件發(fā)送完才能停下來。這時BootLoader程序會反復(fù)進入BootLoader狀態(tài),對單片機有一定的損傷。最好是自行編寫一個計算機端的專用下載程序,不但可以提高下載的速度,也可以提高下載的成功率。

   ③ 使用RS422/485方式。有些時候,使用的并不是RS232串口,而是RS422/RS485串口。它們實際是類似的,只是在接口方式上有些區(qū)別。RS422/RS485需要控制發(fā)送,所以在BootLoader程序中增加一個發(fā)送控制就可以了。

   ④ 在BootLoader中,將波特率設(shè)置得很高并沒有太大的用處,它并不能夠提高下載整體的速度,而只能加快數(shù)據(jù)傳輸?shù)乃俣。因為整個下載分為數(shù)據(jù)通信(數(shù)據(jù)傳輸)和Flash寫入/擦除(數(shù)據(jù)等待)兩個部分。程序代碼Flash空間的擦除和寫入速度是比較慢的(典型值是3~4 ms),太快了反而容易丟失數(shù)據(jù),造成下載失敗。使用9600 bps的波特率時,傳輸1字節(jié)的數(shù)據(jù)大約是1 ms,接收一個緩沖區(qū)8字節(jié)大約需要8 ms,大于寫入延時,所以不需要延時;當(dāng)通信速率超過9600 bps時,接收8字節(jié)緩沖區(qū)的時間可能會小于寫入時間,需要在通信中延時。實際使用的測試結(jié)果是:使用9600 bps比使用14 400 bps時慢50%,使用57 600 bps比9600 bps快一倍,而使用115 200 bps時與57 600 bps幾乎沒有任何區(qū)別。如果使用超級終端下載,就更沒有必要設(shè)置高波特率了。因為在使用最常用的三線方式通信時(沒有控制信號),超級終端采用了比較保守的方式發(fā)送數(shù)據(jù),本身就比較慢。
 
結(jié)語

  一個良好的BootLoader程序應(yīng)該具有良好的可維護性并可以正確處理異常情況,不會因為意外情況引起系統(tǒng)的損壞和崩潰。

  可以在http://shaoziyang.logchina.com/blog/article_156363.936124.html處下載改進后的BootLoader程序(這個程序已經(jīng)在實際工程中使用了較長時間,很穩(wěn)定),以及一個替換超級終端的PIC18專用下載程序(這個程序的下載速度比超級終端快很多,可以自行定義波特率和聯(lián)機的字符串,具有BootLoader區(qū)代碼保護功能和下載錯誤檢測功能)。

 。ň幷咦ⅲ罕疚臑槠诳s寫版,全文請見本刊網(wǎng)站www.dpj.com.cn。)

參考文獻

  1 Microchip.PIC18F1220/1320/2320/6620/6621數(shù)據(jù)手冊
  2 Microchip應(yīng)用說明AN851:A Flash Bootloader for PIC16 and PIC18 Devices
  3 HI-TECH的PICC18(ver8.35pl2)軟件的BootLoader程序代碼和程序說明

上一頁  [1] [2] [3] 
  • 上一篇: 基于ADuC841的膜片鉗放大器的設(shè)計
  • 下一篇: Proteus軟件調(diào)試實現(xiàn)的數(shù)字式指針溫度計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1