1.一種無線固件FOTA升級方法,其特征在于,所述方法包括:
建立分區(qū)升級信息標識表,并設置備份緩沖區(qū);其中,所述分區(qū)升級信息標識表用于存儲各分區(qū)的升級狀態(tài)信息;
分區(qū)升級前,將需要升級的分區(qū)內的系統(tǒng)文件存儲到所述備份緩沖區(qū)中;
根據FOTA升級包內的分區(qū)升級文件依次對每個需要升級的分區(qū)進行升級;
當分區(qū)升級失敗時,從所述分區(qū)升級信息標識表中獲取升級失敗的分區(qū)的分區(qū)信息,根據獲得的升級失敗的分區(qū)的分區(qū)信息獲取備份緩沖區(qū)內存儲的原分區(qū)系統(tǒng)文件,恢復所述升級失敗的分區(qū)。
2.根據權利要求1所述的方法,其特征在于,對于每個需要升級的分區(qū),當分區(qū)升級成功時,將升級成功的信息存儲到分區(qū)升級信息標識表中;
當升級失敗的分區(qū)恢復完成后,重新對所述升級失敗的分區(qū)進行升級;重新升級成功后,將升級成功的信息存儲到分區(qū)升級信息標識表中。
3.根據權利要求1所述的方法,其特征在于,所述將需要升級的分區(qū)內的系統(tǒng)文件存儲到所述備份緩沖區(qū)中包括:將當前需要升級的分區(qū)內的系統(tǒng)文件存儲到所述備份緩沖區(qū)中;或者,將各需要升級的分區(qū)內的系統(tǒng)文件按分區(qū)分別存儲到獨立的備份緩沖區(qū)中,并記錄每個備份緩沖區(qū)備份的系統(tǒng)文件所屬的分區(qū)信息。
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:下載FOTA升級包,并校驗下載的FOTA升級包的有效性;
所述建立分區(qū)升級信息標識表為:根據下載的FOTA升級包內需要升級的各分區(qū)名稱建立分區(qū)升級信息標識表。
5.根據權利要求1所述的方法,其特征在于,所述分區(qū)升級信息標識表存儲的初始狀態(tài)信息為相應分區(qū)未升級或升級失敗的狀態(tài)信息;
將所述升級完成的信息存儲到分區(qū)升級信息標識表中為:在一個分區(qū)升級成功完成后,將當前分區(qū)升級完成的信息更新到分區(qū)升級信息標識表中相應分區(qū)的名稱或分區(qū)號下。
6.根據權利要求1所述的方法,其特征在于,所述需要升級分區(qū)至少包括recovery分區(qū)。
7.根據權利要求1至6任一項所述的方法,其特征在于,所述分區(qū)升級信息標識表存儲于非易失性隨機訪問存儲器NVRAM中;
所述方法還包括:分區(qū)升級失敗后,檢測位于NVRAM中的分區(qū)升級信息標識表獲得各分區(qū)的名稱和相應的分區(qū)升級狀態(tài)。
8.根據權利要求1至6任一項所述的方法,其特征在于,所述方法還包括:所有需要升級的分區(qū)均升級成功后,刪除分區(qū)升級信息標識表和FOTA升級包;并刪除所述備份緩沖區(qū),將備份緩沖區(qū)恢復為存儲區(qū)。
9.根據權利要求1至6任一項所述的方法,其特征在于,所述方法還包括:建立引導加載分區(qū),所述引導加載分區(qū)用于存儲所述分區(qū)升級信息標識表,并將引導加載分區(qū)內的指針程序指向所述備份緩沖區(qū);
分區(qū)升級失敗后,所述引導加載分區(qū)檢測所述分區(qū)升級信息標識表,得到所述升級失敗的分區(qū)的分區(qū)信息;所述引導加載分區(qū)內的指針程序指向備份緩沖區(qū),并將備份緩沖區(qū)作為系統(tǒng)分區(qū)啟動系統(tǒng);系統(tǒng)啟動后,將作為系統(tǒng)分區(qū)的備份緩沖區(qū)內的分區(qū)系統(tǒng)文件恢復到升級失敗的分區(qū)。
10.一種FOTA升級系統(tǒng),其特征在于,所述系統(tǒng)包括:配置模塊、備份模塊、升級模塊和升級處理模塊;其中,
所述配置模塊,用于建立分區(qū)升級信息標識表,并設置備份緩沖區(qū);其中,所述分區(qū)升級信息標識表用于存儲各分區(qū)的升級狀態(tài)信息;
所述備份模塊,用于在分區(qū)升級前,將需要升級的分區(qū)內的系統(tǒng)文件存儲到所述備份緩沖區(qū)中;
所述升級模塊,用于根據FOTA升級包內的分區(qū)升級文件依次對每個需要升級的分區(qū)進行升級;
所述升級處理模塊,用于當分區(qū)升級失敗時,從所述分區(qū)升級信息標識表中獲取升級失敗的分區(qū)的分區(qū)信息,根據獲得的升級失敗的分區(qū)的分區(qū)信息獲取備份緩沖區(qū)內存儲的原分區(qū)系統(tǒng)文件,恢復所述升級失敗的分區(qū)。
11.根據權利要求10所述的系統(tǒng),其特征在于,
所述升級模塊,還用于根據所述升級處理模塊的指示對升級失敗的分區(qū)進行升級,并將升級結果送至所述升級處理模塊;
所述升級處理模塊,還用于對于每個需要升級的分區(qū),分區(qū)升級成功時,將升級完成的信息存儲到分區(qū)升級信息標識表中;當升級失敗的分區(qū)恢復完成后,指示所述升級模塊重新對所述升級失敗的分區(qū)進行升級。
12.根據權利要求10所述的系統(tǒng),其特征在于,所述備份模塊,具體用于將當前需要升級的分區(qū)內的系統(tǒng)文件存儲到所述備份緩沖區(qū)中;或者,將各需要升級的分區(qū)內的系統(tǒng)文件按分區(qū)分別存儲到獨立的備份緩沖區(qū)中,并記錄每個備份緩沖區(qū)備份的系統(tǒng)文件所屬的分區(qū)信息。
13.根據權利要求10所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括:下載模塊,用于下載FOTA升級包,并校驗下載的FOTA升級包的有效性,將下載的FOTA升級包內需要升級的分區(qū)名稱發(fā)送給配置模塊;
所述配置模塊,具體用于根據下載的FOTA升級包內需要升級的各分區(qū)名稱建立分區(qū)升級信息標識表。
14.根據權利要求10所述的系統(tǒng),其特征在于,所述配置模塊,具體用于將所述分區(qū)升級信息標識表存儲的初始狀態(tài)信息配置為相應分區(qū)未升級或升級失敗的狀態(tài)信息;
所述升級處理模塊,具體用于在分區(qū)升級成功后,將升級完成的信息更新到分區(qū)升級信息標識表中相應分區(qū)的名稱或分區(qū)號下。
15.根據權利要求10至14任一項所述的系統(tǒng),其特征在于,所述分區(qū)升級信息標識表存儲于NVRAM中。
16.根據權利要求10至14任一項所述的系統(tǒng),其特征在于,所述升級處理模塊,還用于在所有需要升級分區(qū)均升級成功后,刪除分區(qū)升級信息標識表和FOTA升級包;并刪除所述備份緩沖區(qū),將備份緩沖區(qū)恢復為存儲區(qū)。
17.根據權利要求10至14任一項所述的系統(tǒng),其特征在于,所述配置模塊,還用于建立引導加載分區(qū);所述引導加載分區(qū)用于存儲所述分區(qū)升級信息標識表并將引導加載分區(qū)內的指針程序指向所述備份緩沖區(qū);
所述升級處理模塊,還用于在分區(qū)升級失敗后,通過所述引導加載分區(qū)檢測所述分區(qū)升級信息標識表,得到所述升級失敗的分區(qū)的分區(qū)信息;所述引導加載分區(qū)通過所述升級失敗的分區(qū)的分區(qū)信息,將引導加載分區(qū)內的指針程序指向相應的備份緩沖區(qū),并將備份緩沖區(qū)作為系統(tǒng)分區(qū)啟動系統(tǒng);系統(tǒng)啟動后,將作為系統(tǒng)分區(qū)的備份緩沖區(qū)內的分區(qū)系統(tǒng)文件恢復到升級失敗的分區(qū)。