中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于dsPIC33F系列單片機的應(yīng)用程序升級方法

        基于dsPIC33F系列單片機的應(yīng)用程序升級方法

        作者: 時間:2011-04-12 來源:網(wǎng)絡(luò) 收藏


        2.2 關(guān)鍵細節(jié)的實現(xiàn)
        (1)啟用“備用中斷向量表”。設(shè)置INTCON2寄存器中ALTIVT控制位的值,其值設(shè)置為“1”則啟用“備用中斷向量表”;設(shè)置為“0”則啟用“中斷向量表”。
        (2)程序首址的設(shè)置。在以上流程的說明中談到引導(dǎo)程序的首址為0x400,而的首址為0xc800,則設(shè)置程序的首址可通過修改鏈接描述文件(.gld文件)實現(xiàn)。以J256GP710為例,將引導(dǎo)程序首址改為0x400,其實現(xiàn)步驟為:打開p33FJ256GP710.gld文件,將其中的“program(xr):ORIGIN=0x200,LENGTH=0x2AA00”改為“pro-gram(xr) :ORIGIN=0x400,LENGTH=0x2A900”;將“_ _CODE_ BASE=0x200”改為“_ _CODE_BASE=0x400”。首址的修改也采用相同。
        (3)讀/寫程序存儲器。在參考文獻中有很完整的原理說明,也有完整的源代碼,可直接使用。
        (4)軟件復(fù)位CPU。在運行過程中發(fā)現(xiàn)需程序或在引導(dǎo)程序中程序完畢時,均需對CPU進行軟件復(fù)位,這可通過提供的“reset”指令實現(xiàn),可在程序相應(yīng)位置執(zhí)行“reset”指令即可。

        3 實際應(yīng)用中若干問題的探討
        3.1 程序正確性問題
        上文僅重點說明了程序升級的,未對程序升級的正確性展開討論,但在實際應(yīng)用中,由于傳輸干擾的存在,接收的新程序數(shù)據(jù)可能出錯,這時如果沒有相應(yīng)的應(yīng)對措施,顯然會影響到產(chǎn)品的正常運行。為了保證程序升級的正確性,常用的應(yīng)對措施有以下幾種:
        (1)對每幀數(shù)據(jù)進行嚴格的校驗(如CRC校驗),校驗通過后再更新相應(yīng)的程序存儲區(qū);更新程序存儲區(qū)后,重新讀出程序存儲區(qū)數(shù)據(jù),并與接收到的數(shù)據(jù)進行比較。只有當(dāng)數(shù)據(jù)比較無誤后才開始接收下一幀數(shù)據(jù)。
        (2)若不考慮硬件成本,也可外置一個數(shù)據(jù)存儲器,將所有新程序數(shù)據(jù)完全接收并校驗通過后才統(tǒng)一更新程序存儲器,最后把整個程序存儲器的數(shù)據(jù)與接收到的數(shù)據(jù)逐一比對,若比對無誤則升級結(jié)束。
        (3)若應(yīng)用程序占用空間不大,也可將程序存儲器中應(yīng)用程序區(qū)再分為兩部分。程序升級時輪流覆蓋這兩部分,這種操作方式使程序存儲器同時保存舊版本和新版本兩個應(yīng)用程序,當(dāng)新版本程序因某種原因運行不正常時,可由引導(dǎo)程序?qū)?yīng)用程序切換到舊版本。
        第(1)種最容易實現(xiàn),但是應(yīng)用程序只有在整個升級過程完全結(jié)束后才可以正常運行,若升級過程因某種原因通信中斷,則應(yīng)用程序一直無法運行,這是該方法最大的缺陷。
        第(2)種方法也很容易實現(xiàn),而且由于它是在新程序數(shù)據(jù)全部接收后才開始升級,因此克服了第(1)種方法的缺陷,但是該方法需增加硬件成本,且要占用更多的硬件資源(用于與外部存儲器之間的交互)。
        第(3)種方法也可以克服第(1)種方法的缺陷,而且不需增加硬件成本,但是該方法的實現(xiàn)顯然比前兩種方法復(fù)雜得多。以上3種方法各有優(yōu)缺點,在實際應(yīng)用中可根據(jù)實際情況選擇。
        3.2 斷點續(xù)傳問題
        在實際應(yīng)用中,可能因某種原因(如斷電復(fù)位)而需重新開始程序升級,這時如果還是從第1幀數(shù)據(jù)開始傳輸,則會造成時間上的浪費,而且對于一些以流量計費的通信網(wǎng)絡(luò)(如GPRS)還會造成通信費用的浪費,因此在實際應(yīng)用中有必要實現(xiàn)“斷點續(xù)傳”功能。這可通過模仿FTP斷點續(xù)傳原理來實現(xiàn),即單片機每正確接收并存儲一幀數(shù)據(jù)則刷新存儲于外部非易失性存儲器(如EEPROM)中的升級信息(含當(dāng)前幀號),若重新開始程序升級,則將當(dāng)前升級信息發(fā)給服務(wù)器,服務(wù)器可從“斷點”開始發(fā)送數(shù)據(jù),從而實現(xiàn)了“斷點續(xù)傳”功能。

        4 結(jié)語
        單片機的應(yīng)用程序升級方法已在開發(fā)設(shè)計的IPPhone和安防系統(tǒng)等產(chǎn)品中成功應(yīng)用,且運行穩(wěn)定可靠。雖然本文討論的程序升級方法是dsPIC33F單片機,但其基本原理同樣適用于其他具備運行時自編程或有應(yīng)用編程(In Appplication Program,IAP)功能的單片機中。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉