專利名稱:一種微波遠程室外單元軟件的更新方法
技術領域:
本發明涉及一種軟件的更新方法,特別涉及一種微波遠程室外單元軟件的更新方法。
背景技術:
由于通訊產品室外單元ODU是架于高空的鐵架上,在惡劣的高空對于封裝的產品如果需要更新應用程序Firmware,通過編譯器BDM或者Cyclone Pro編輯導入十六進制代碼S.19,需要打開外殼的螺絲和盒蓋,接入BDM數據線,同時需要背著筆記本上高空的鐵架去實施下載更新應用程序Firmware是比較困難的。如果是在出廠前把Boot先寫到室外單元ODU里,只要保證室外單元ODU里有了Boot,則只需要控制室內單元IDU下載更新應用程序Firmware,把目標代碼通過室內單元IDU下載更新到室外單元ODU的MCU里,從而達到更新的目的。
發明內容
本發明的技術問題是要提供一種微波遠程下載進行軟件更新的方法。
為了解決以上的技術問題,本發明提供了一種微波遠程室外單元軟件的更新方法,其工作步驟如下1)室外單元ODU供電;2)把需要更新Firmware新版本的代碼上傳到室內單元IDU.
3)室外單元ODU的控制器MCU的指針跳到Boot的起始地址,從EEPROM中讀出室外單元ODU的版本號,將版本號上傳給室內單元IDU;
4)室內單元IDU根據版本號判斷是否是更新命令;否,跳轉第13)步;5)如果室內單元IDU應答的是更新命令,則下載初始化命令;6)擦除Flash固定頁和分頁;7)室外單元ODU給室內單元IDU作出初始化應答;8)接收室內單元IDU的一組數據;9)組成數組;10)判斷接收的數組是否正確;否,不給室內單元IDU作應答等待重發;跳轉第8)步;11)判斷接收的這幀數據是否為結束幀;是,跳轉第13)步;12)寫完一幀數據;給室內單元IDU做出第幾幀接收應答后等待接收下一幀數據;跳轉到第8)步;13)跳轉到應用程序Firmware的起始地址,開始執行應用程序Firmware;14)結束。
Flash固定頁和分頁的擦除分為部分擦除和塊擦除。部分擦除是指一次能夠擦除512個字節;塊擦除是調用命令字一次可以擦除64K字節內容。對于大多數芯片固定頁的擦除操作,需要把代碼拷貝到Ram區進行擦除操作。
Flash固定頁和分頁的寫是指對于大多數芯片固定頁寫的操作,需要把代碼拷貝到Ram區進行擦除操作。
本發明的優越功效在于本發明把應用軟件一分為二,即分為Boot和Firmware兩部分,應用靈活,通常我們需要更新的是Firmware,這樣我們可以通過遠程網絡或者是微波就可以更新源代碼Firmware,特別適合于惡劣環境產品的軟件部分的更新。
附圖為本發明的工作流程圖。
具體實施例方式
請參閱附圖所示,對本發明作進一步地描述。
由于Firmware的版本升級了,現在需要更新室外單元ODU里Firmware的版本,室內單元IDU里的需要更新應用程序版本號為00.00.01.02。
Boot的應用代碼存放到MCU的固定頁3F(0xC000~0xFFFF),被下載Firmware的代碼存放到固定頁3E(0x4000~0x7FFF)頁和分頁Block1、Block2、Block3里。Boot的起始地址存放到0x0FFFE;Firmware的起始地址存放到0x7FFFE。其工作步驟為1)給室外單元ODU和室內單元IDU連線供電;2)把需要更新Firmware新版本00.00.01.02的代碼上傳到室內單元IDU。
3)室外單元ODU的控制器MCU的指針直接跳轉到Boot的起始地址0x0FFFE(存放的是起始地址0xC000),執行Boot的應用程序;4)Boot程序初始化后,首先從EEPROM的0x0B00地址開始讀出連續四個單元的數據為原Firmware版本號00.00.01.01上傳給室內單元IDU,等待室內單元IDU的響應;5)室內單元IDU根據室外單元ODU上報的版本號與室內單元IDU里存放需要更新Firmware版本號00.00.01.02版本進行比較,由于要更新的版本號較高,則需要更新,室內單元IDU應答的是更新命令下載初始化命令;6)室外單元ODU收到下載初始化命令需要下載更新,而不是跳轉Skip命令,則擦除3E(0x4000~0x7FFF)頁和分頁Block1、Block2、Block3;7)擦除干凈后室外單元ODU響應室內單元IDU,準備接收室內單元IDU發送的一幀數據;8)接收室內單元IDU發送的一幀數據并組成數組;9)判斷接收的數組是否正確,經過檢驗如果本幀數據不正確則不作應答,等待重發本幀數據;跳轉到第8)步;10)判斷接收的這幀數據是否為結束幀,是,跳到第12)步;11)寫完一幀數據后,做出正確應答并跳轉到第8)步;12)跳轉到應用程序Firmware的起始地址0x7FFE,開始執行應用程序Firmware;13)結束。
權利要求
1.一種微波遠程室外單元軟件的更新方法,其特征在于以下的工作步驟1)室外單元ODU供電;2)把需要更新Firmware新版本的代碼上傳到室內單元IDU。3)室外單元ODU的控制器MCU的指針跳到Boot的起始地址,從EEPROM中讀出室外單元ODU的版本號,將版本號上傳給室內單元IDU;4)室內單元IDU根據版本號判斷是否是更新命令;否,跳轉第13)步;5)如果室內單元IDU應答的是更新命令,則下載初始化命令;6)擦除Flash固定頁和分頁;7)室外單元ODU給室內單元IDU作出初始化應答;8)接收室內單元IDU的一組數據;9)組成數組;10)判斷接收的數組是否正確;否,不給室內單元IDU作應答等待重發;跳轉第8)步;11)判斷接收的這幀數據是否為結束幀;是,跳轉第13)步;12)寫完一幀數據;給室內單元IDU做出第幾幀接收應答后等待接收下一幀數據;跳轉到第8)步;13)跳轉到應用程序Firmware的起始地址,開始執行應用程序Firmware;14)結束。
全文摘要
本發明提供一種微波遠程室外單元軟件的更新方法,事先把Boot寫在室外單元ODU里,把目標代碼通過室內單元IDU下載更新到室外單元ODU的MCU里,從而達到更新。本發明把應用軟件分為Boot和Firmware兩部分,應用靈活,我們可通過遠程網絡或者是微波就可以更新源代碼Firmware,特別適合于惡劣環境產品的軟件部分的更新。
文檔編號H04L12/24GK101034359SQ20071003882
公開日2007年9月12日 申請日期2007年3月30日 優先權日2007年3月30日
發明者趙俊, 張勇 申請人:上海杰盛無線通訊設備有限公司