新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于GPRS的51單片機固件升級系統設計

        基于GPRS的51單片機固件升級系統設計

        作者: 時間:2011-11-22 來源:網絡 收藏

        2.1 升級系統軟件設計
        本系統軟件由兩部分組成:主程序和升級程序,分別對應于Main工程和Update工程。Main工程負責與遠端服務器進行通信,接收服務器發送的指令并進行相應操作;而Update工程編譯、鏈接時,在其編譯器鏈接選項中設置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可將Upd-ate工程編譯、鏈接后生成的hex文件燒寫到單片機內部Flash以0xE000作為起始地址處,同時默認地將Main工程編譯、鏈接生成的二進制文件燒寫到內部Flash的起始地址處。單片機在執行主程序過程中,檢測到升級標志置1后,單片機跳轉到升級程序地址處執行固件升級程序;升級完畢后,復位單片機,程序又從內部Flash的零地址開始執行更新的固件程序。圖4為主程序流程,圖5為相應的固件升級程序流程。主程序在運行過程中受遠程服務器的實時控制。當固件程序需要更新時,在服務器端將準備更新的固件編譯、鏈接后生成的hex或bin文件放入某一固定目錄內,啟用FTP服務器(如FtpMan),通過TCP/IP協議發送遠程升級指令給測試終端;終端收到升級指令后啟動相應的FTP接收功能,將遠端文件分解成多個數據包并逐個存儲在外部Flash中;存儲完畢后,主程序會對該接收文件進行CRC校驗,若校驗無誤,則通過函數指針跳轉到升級程序功能區,啟動升級程序,將二進制文件從外部Flash中轉移到內部Flash對應的地址空間中去。單片機復位重啟后,就可以從內部Flash的起始地址處執行更新完畢的程序。


        2.2 函數指針應用
        當主程序檢測到升級標志后,主程序跳轉到升級程序地址處執行升級固件程序,此處使用了函數指針的功能。

        結語
        本文設計了基于網絡傳輸的終端,給出了合理的芯片選型,以及獨立的固件升級程序。該升級系統已應用到實際產品應用中,并取得了很好的效果。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 依安县| 沾化县| 正镶白旗| 焦作市| 大方县| 沧州市| 南澳县| 措美县| 龙江县| 桂东县| 昌宁县| 盐源县| 信宜市| 平乐县| 都江堰市| 郧西县| 嘉禾县| 南召县| 河源市| 营山县| 靖西县| 江都市| 永新县| 崇文区| 重庆市| 海南省| 突泉县| 五华县| 昌图县| 恩施市| 竹北市| 讷河市| 沅陵县| 盐池县| 孝义市| 鹰潭市| 山东省| 福贡县| 隆德县| 彰化县| 泾川县|