基于GPRS的單片機固件升級系統設計
2.1 升級系統軟件設計
本系統軟件由兩部分組成:主程序和升級程序,分別對應于Main工程和Update工程。Main工程負責與遠端服務(wù)器進(jìn)行通信,接收服務(wù)器發(fā)送的指令并進(jìn)行相應操作;而Update工程編譯、鏈接時(shí),在其編譯器鏈接選項中設置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可將Upd-ate工程編譯、鏈接后生成的hex文件燒寫(xiě)到單片機內部Flash以0xE000作為起始地址處,同時(shí)默認地將Main工程編譯、鏈接生成的二進(jìn)制文件燒寫(xiě)到內部Flash的起始地址處。單片機在執行主程序過(guò)程中,檢測到升級標志置1后,單片機跳轉到升級程序地址處執行固件升級程序;升級完畢后,復位單片機,程序又從內部Flash的零地址開(kāi)始執行更新的固件程序。圖4為主程序流程,圖5為相應的固件升級程序流程。主程序在運行過(guò)程中受遠程服務(wù)器的實(shí)時(shí)控制。當固件程序需要更新時(shí),在服務(wù)器端將準備更新的固件編譯、鏈接后生成的hex或bin文件放入某一固定目錄內,啟用FTP服務(wù)器(如FtpMan),通過(guò)TCP/IP協(xié)議發(fā)送遠程升級指令給測試終端;終端收到升級指令后啟動(dòng)相應的FTP接收功能,將遠端文件分解成多個(gè)數據包并逐個(gè)存儲在外部Flash中;存儲完畢后,主程序會(huì )對該接收文件進(jìn)行CRC校驗,若校驗無(wú)誤,則通過(guò)函數指針跳轉到升級程序功能區,啟動(dòng)升級程序,將二進(jìn)制文件從外部Flash中轉移到內部Flash對應的地址空間中去。單片機復位重啟后,就可以從內部Flash的起始地址處執行更新完畢的程序。本文引用地址:http://dyxdggzs.com/article/173268.htm
2.2 函數指針應用
當主程序檢測到升級標志后,主程序跳轉到升級程序地址處執行升級固件程序,此處使用了函數指針的功能。
結語(yǔ)
本文設計了基于GPRS網(wǎng)絡(luò )傳輸的終端固件升級系統,給出了合理的芯片選型,以及獨立的固件升級程序。該升級系統已應用到實(shí)際產(chǎn)品應用中,并取得了很好的效果。
評論