專利名稱:一種無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于無線通訊4支術(shù)領(lǐng)域,特別適應(yīng)于CDMA、 GSM、 PHS、 WCDMA、 TD-SCDMA、單模/多模等無線通訊終端產(chǎn)品,尤其涉及的是一 種無線通訊終端產(chǎn)品中可持續(xù)進行軟件下載的方法改進。
背景技術(shù):
在現(xiàn)有4支術(shù)終端的軟石更件平臺中,如基于高通MSM6000平臺的CDMA CDMA (Code Division Multiple Access,碼分復(fù)用)無線終端,存儲設(shè)備一 般使用NOR Flash (NOR閃存)。MSM6000 CPU本身不帶有Boot功能,高 通發(fā)布的DMSS程序(Dual-Mode Subscriber Software,是一種手機軟件包) 沒有獨立的Boot引導(dǎo)程序,如圖l所示,DMSS編譯完成以后是一個獨立 的應(yīng)用程序,其從起始地址0x00000000進行存^f諸。二次開發(fā)一般在DMSS 的基礎(chǔ)上進行,底層程序模塊沒有發(fā)生變化,在燒片過程中將整個應(yīng)用程 序燒錄到Flash中。程序在正常運行時,支持軟件升級功能。
但是,這種軟件系統(tǒng)經(jīng)常在用戶使用過程中,由于文件系統(tǒng)異常、程序 異常、死機等種種原因?qū)е孪螺d功能不能正常工作。這時需要使用專用的 仿真器或是下載板對終端進行升級,由于一般的售后網(wǎng)點不具備這些專業(yè) 設(shè)備,所以這種升級工作一般需要進行返廠維修,這樣就增加了售后成本 和維修的周期。
因此,現(xiàn)有^l支術(shù)還有待于改進和發(fā)展
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法, 針對上述現(xiàn)有技術(shù)的缺陷,為了保證終端在死機等情況下仍然能夠具備下 載功能,提出一種在終端Boot模塊的設(shè)計實現(xiàn)方法,在終端硬件特別是存 儲器硬件沒有損壞的前提下,保證終端的串口下載功能可以正常工作。
本發(fā)明的技術(shù)方案包括
一種無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法,其包括以下步驟
A、 在Flash芯片中設(shè)置與應(yīng)用程序獨立的Boot執(zhí)行程序,該Boot執(zhí) 行程序4又用于啟動應(yīng)用程序下載功能,并保存在該Flash芯片的起始位置;
B、 通過連接服務(wù)器端,上電并接收下載指令,進行應(yīng)用程序的下載功能。
所述的實現(xiàn)方法,其中,所述步驟A還包括修改應(yīng)用程序的啟動地 址在所述Boot執(zhí)行程序之后。
所述的實現(xiàn)方法,其中,所述Boot執(zhí)行程序的下載功能通過串口實現(xiàn)。
所述的實現(xiàn)方法,其中,所述步驟B之后還包括
Cl、通過仿真器或?qū)S玫南螺d板,分別將所述Boot執(zhí)行程序和應(yīng)用程 序下載到對應(yīng)的Flash芯片中,備份出來并做相應(yīng)的參數(shù)處理,以形成一可 用于燒片的生產(chǎn)版本。
所述的實現(xiàn)方法,其中,所述步驟B之后還包括
C2、將Boot執(zhí)行程序和應(yīng)用程序根據(jù)存儲位置連接到一起制成二進制 文件,以用于對Flash芯片的燒刻。
所述的實現(xiàn)方法,其中,所述步驟A還包括所述Boot執(zhí)行程序是通 過將所述應(yīng)用程序中除根下載入口之外的其他函數(shù)刪除并編譯后形成。
所述的實現(xiàn)方法,其中,所述步驟C還包括如果Boot執(zhí)行程序在運 行過程中沒有檢測到下載指令,也沒有檢測應(yīng)用程序存在時,則一直處在 下載狀態(tài),等待應(yīng)用程序軟件的下載。
所述的實現(xiàn)方法,其中,所述Boot執(zhí)行程序設(shè)置為壓縮到所述Flash芯片的一個區(qū)塊中。
所述的實現(xiàn)方法,其中,所述應(yīng)用程序的起始位置從所述Boot執(zhí)行程 序存儲位置之后的一個獨立的區(qū)塊開始。
所述的實現(xiàn)方法,其中,所述步驟B還包括 在所述無線終端正常啟動時還執(zhí)行以下步驟
Bl、上電后判斷是否有收到串口指令,如無執(zhí)行跳轉(zhuǎn)到執(zhí)行應(yīng)用程序, 否則執(zhí)行下一步驟;
B2、判斷是否進入下載模式,如無執(zhí)行跳轉(zhuǎn)到執(zhí)行應(yīng)用程序,否則執(zhí) 行下一步驟;
B3、進入串口下載模式,執(zhí)行下載指令。
本發(fā)明所提供的一種無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法,由于采 用了在閃存物理存儲空間中設(shè)置的獨立Boot執(zhí)行程序,與現(xiàn)有技術(shù)相比, 實現(xiàn)了 Boot功能的模塊化,可以單獨運行,而不依賴主程序的運行結(jié)果, 由此實現(xiàn)了終端在死機等異常情況下時可以利用簡單設(shè)備完成軟件升級等 目的,節(jié)省了仿真器、專用下載板等固定資產(chǎn)投入,降低了維護成本;故 障終端可以就地進行軟件維修,在一般的維修中心即可維修,不必返到特 定的維修中心或是返廠,提高了終端的軟件維修速度,給生產(chǎn)、售后、運 營商或用戶升級軟件提供了一種簡單、快捷的實現(xiàn)方案。
以下結(jié)合附圖對本發(fā)明的較佳實施例加以說明,附圖中
圖1為現(xiàn)有技術(shù)的無獨立Boot執(zhí)行程序、僅一個可執(zhí)行的應(yīng)用程序在 Flash中的軟件存儲結(jié)構(gòu)示意圖2為本發(fā)明方法中增加獨立的Boot執(zhí)行程序、應(yīng)用程序起始地址往 后偏移的軟件存儲結(jié)構(gòu)示意圖3為本發(fā)明方法中閃存Boot執(zhí)行程序運行時的流程事宜圖。
具體實施方式
以下結(jié)合附圖,將對本發(fā)明的各較佳實施例進行更為詳細的說明。以CDMA無線終端產(chǎn)品為例,本發(fā)明Boot引導(dǎo)程序的實現(xiàn)方法是一種 Boot才莫塊的設(shè)計實現(xiàn)方案,其將原來NOR Flash中的一個應(yīng)用程序 (Application)分成Boot執(zhí)行程序和應(yīng)用程序(Applicationl)兩個部分,如圖2 所示。Boot執(zhí)行程序是一個獨立執(zhí)行程序,占用空間非常小,支持串口下 載功能。在Flash中應(yīng)用程序Applicationl的存儲位置同原先的應(yīng)用程序 Application不同。如果應(yīng)用程序Applicationl正常工作,則其自帶的下載功能可以正常使 用,無需Boot執(zhí)行程序的下載功能。如果Applicationl異常不支持下載功 能,則可以使用Boot執(zhí)行程序中的下載功能進行軟件下載。由于低端手機中的Flash空間有限,并且NOR Flash—般是按4K、 8K 字節(jié)、16K或64K字節(jié)大小的block(區(qū)塊)進行物理劃分,在執(zhí)行Flash Block Erase (區(qū)塊擦除操作,閃存在寫之前都必須執(zhí)行擦除操作)操作時, 一個 block的內(nèi)容全部擦除。因此本發(fā)明方法中的Boot執(zhí)行程序和應(yīng)用程序的 設(shè)計遵循以下原則一、Boot執(zhí)行程序應(yīng)盡可能的小,最好能夠壓縮到一 個block中;二、應(yīng)用程序的起始位置應(yīng)從一個獨立的block開始,以^更Boot 執(zhí)行程序和應(yīng)用Applicationl能夠在存儲位置上完全獨立,方便閃存的讀寫 操作。這樣兩個程序可以獨立升級,互不影響。Boot執(zhí)行程序與應(yīng)用程序Applicationl是兩個獨立的可運行程序,在 CPU上電運行過程中,Boot執(zhí)行程序會根據(jù)圖3中所示的流程圖,決定是 否起動應(yīng)用程序Applicationl的運行。在軟件升級過程, 一般保持Boot執(zhí)行程序不被更新,僅下載應(yīng)用程序 Applications這樣Boot執(zhí)行程序就可以一直穩(wěn)定可靠的工作,從而保證可 以持續(xù)的進行軟件下載功能。一般來說,應(yīng)用程序Applicationl的起始地址與Boot執(zhí)行程序的大小 有一定關(guān)系,但二者沒有必然的聯(lián)系,只要二者大小的滿足存儲空間的要 求,可以獨立設(shè)計,在設(shè)計上沒有必然的先后關(guān)系。本發(fā)明方法的具體步驟包括如下步驟一設(shè)計獨立的Boot可執(zhí)行程序,可將應(yīng)用程序中保留串口下載 功能,刪除的其他不必要的任務(wù)和模塊,并進行相應(yīng)的編譯鏈接。例如在 應(yīng)用程序main函數(shù)體中刪除其他的函數(shù),僅保留Boot_downloader下載入口 。為了保證可以正確處理PC側(cè)的指令,修改與串口下載相關(guān)的源文件, 以保證串口下載命令的正確處理。由于ARM編譯采用了優(yōu)化編譯選項,使 用本發(fā)明方法制作出來的Boot執(zhí)行程序其二進制文件為12K字節(jié),占用的 存儲空間可以接受。步驟二設(shè)計新的應(yīng)用程序Applicationl的起始地址。在scl( SCATTER LOADING DESCRIPTION FILE)文件中修改應(yīng)用程序的偏移地址,將應(yīng)用 程序的起始地址修改為實際存儲起始地址Addressl,重新編譯后應(yīng)用程序的 起始地址就從0x0變?yōu)锳ddress 1 。本發(fā)明方法的Boot執(zhí)行程序和應(yīng)用程序 的存儲結(jié)構(gòu)示意圖如圖2所示。步驟三在手機出現(xiàn)死機等異常情況時,應(yīng)用程序的下載功能就無法 使用,此時采用連4妄線連接服務(wù)器端如PC機和本發(fā)明方法的無線終端,開 啟PC側(cè)的下載工具,重新給該無線終端上電,這時CPU就啟動了閃存中 獨立保存的Boot執(zhí)行程序,而不管應(yīng)用程序出現(xiàn)什么樣的問題。由于Boot執(zhí)行程序支持串口下載功能,可以接收并處理PC側(cè)指令, 如果Boot執(zhí)行程序收到了 PC側(cè)的下載指令,該無線終端就進入下載模式, PC側(cè)軟件就可以^^艮據(jù)下載流程使所述無線終端完成程序下載,更新該無線 終端中Flash中的內(nèi)容,主要指應(yīng)用程序的代碼,完成應(yīng)用程序的軟件升級, 參考圖3所示的流程,這樣,在無線終端在硬件完好的前提下,在遇到應(yīng)用程序故障時,就可以在普通的維護中心,無須專用的仿真器等維護工具,實現(xiàn)對無線終端應(yīng)用程序的升級和維護。如果Boot執(zhí)4亍程序在運^f亍過程中 沒有檢測到PC側(cè)的下載指令,也沒有檢測到應(yīng)用程序存在,則其CPU可 以一直處在下載狀態(tài),等待應(yīng)用程序軟件的下載。需要說明的是,本發(fā)明Boot引導(dǎo)程序的實現(xiàn)方法中,可以在正常需要 對應(yīng)用程序維護和升級時采用,并不限于在應(yīng)用程序故障時才釆用本發(fā)明 方法實現(xiàn)。步驟四制作用于生產(chǎn)的軟件版本。本發(fā)明方法通過仿真器或是專用的 下載板,分別將Boot執(zhí)行程序和應(yīng)用Applicationl下載到對應(yīng)的閃存Flash 中,然后再備份出來并做相應(yīng)的參數(shù)處理,即是一個可用于燒片的生產(chǎn)版 本,可以在生產(chǎn)中燒刻到相應(yīng)的Flash中,進^f亍批量生產(chǎn)。也可以利用應(yīng)用 軟件將Boot執(zhí)行程序和應(yīng)用Applicationl根據(jù)存儲位置連接到一起制成二 進制文件,作為生產(chǎn)時寫入無線終端Flash的代碼。本發(fā)明方法在無線終端產(chǎn)品上實現(xiàn)了獨立Boot執(zhí)行程序的設(shè)計,本發(fā) 明無線終端具有可持續(xù)下載的功能,與現(xiàn)有技術(shù)相比,實現(xiàn)了Boot功能的 模塊化,可以單獨運行,不依賴與主程序即應(yīng)用程序的運行結(jié)果。本發(fā)明 無線終端在死機等異常情況下時可以利用簡單設(shè)備例如PC機完成應(yīng)用程 序軟件升級和更新維護等目的,節(jié)省了仿真器、專用下載板的專用維護設(shè) 備的成本投入;故障的無線終端可以使用就地的條件進行軟件維修,在一 般的維修中心即可實現(xiàn),不必返到特定的維修中心或是返廠,提高了無線 終端的軟件維修速度,給生產(chǎn)、售后、運營商或用戶升級軟件帶來簡單、 快捷的實現(xiàn)方式。由于本發(fā)明所述方法和技術(shù)具有較大的通用性,針對提供無線接入功 能的GSM、 PHS、 WCDMA、 TD-SCDMA、單模/多模等無線接入終端產(chǎn)品 均可以采用本發(fā)明方法的設(shè)計獨立方式的Boot執(zhí)行程序,并在Boot執(zhí)行程 序模塊中保持軟件下載等相應(yīng)的功能。特別是針對高通的MSM6000軟件系統(tǒng),本發(fā)明實現(xiàn)方法簡單,成本低; 發(fā)明方法適用范圍廣,簡單易行。應(yīng)當理解的是,上述針對本發(fā)明方法具體實施例的描述較為詳細,并不 能因此而認為是對本發(fā)明專利保護范圍的限制;對本發(fā)明技術(shù)所在領(lǐng)域的 普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其構(gòu)思進行相應(yīng)的等同 改變或替換,而所有這些改變或替換,都應(yīng)屬于本發(fā)明所附權(quán)利要求的保 護范圍。
權(quán)利要求
1、一種無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法,其包括以下步驟A、在Flash芯片中設(shè)置與應(yīng)用程序獨立的Boot執(zhí)行程序,該Boot執(zhí)行程序僅用于啟動應(yīng)用程序下載功能,并保存在該Flash芯片的起始位置;B、通過連接服務(wù)器端,上電并接收下載指令,進行應(yīng)用程序的下載功能。
2、 根據(jù)權(quán)利要求1所述的實現(xiàn)方法,其特征在于,所述步驟A還包 括修改應(yīng)用程序的啟動地址在所述Boot執(zhí)行程序之后。
3、 根據(jù)權(quán)利要求2所述的實現(xiàn)方法,其特征在于,所述Boot執(zhí)行 程序的下載功能通過串口實現(xiàn)。
4、 根據(jù)權(quán)利要求3所述的實現(xiàn)方法,其特征在于,所述步驟B之后 還包括Cl、通過仿真器或?qū)S玫南螺d板,分別將所述Boot執(zhí)行程序和應(yīng)用 程序下載到對應(yīng)的Flash芯片中,備份出來并做相應(yīng)的參數(shù)處理, 以形成一可用于燒片的生產(chǎn)版本。
5、 根據(jù)權(quán)利要求3所述的實現(xiàn)方法,其特征在于,所述步驟B之后 還包括C2、將Boot執(zhí)行程序和應(yīng)用程序根據(jù)存儲位置連接到一起制成二進 制文件,以用于對Flash芯片的燒刻。
6、 根據(jù)權(quán)利要求1所述的實現(xiàn)方法,其特征在于,所述步驟A還包 括所述Boot執(zhí)行程序是通過將所述應(yīng)用程序中除根下載入口之外的其他函數(shù)刪除并編-澤后形成。
7、 根據(jù)權(quán)利要求1所述的實現(xiàn)方法,其特征在于,所述步驟B還包 括如果Boot執(zhí)行程序在運行過程中沒有檢測到下載指令,也沒有檢測應(yīng) 用程序存在時,則一直處在下載狀態(tài),等待應(yīng)用程序軟件的下載。
8、 根據(jù)權(quán)利要求1至7任一所述的實現(xiàn)方法,其特征在于,所述 Boot執(zhí)行程序設(shè)置為壓縮到所述Flash芯片的一個區(qū)塊中。
9、 根據(jù)權(quán)利要求1至7任一所述的實現(xiàn)方法,其特征在于,所述應(yīng) 用程序的起始位置從所述Boot執(zhí)行程序存儲位置之后的一個獨立的區(qū)塊開 始。
10、 根據(jù)權(quán)利要求3所述的實現(xiàn)方法,其特征在于,所述步驟B還包括在所述無線終端正常啟動時還執(zhí)行以下步驟 Bl、上電后判斷是否有收到串口指令,如無^l行跳轉(zhuǎn)到執(zhí)行應(yīng)用程序,否則執(zhí)行下一步驟; B2、判斷是否進入下載模式,如無執(zhí)行跳轉(zhuǎn)到執(zhí)行應(yīng)用程序,否則執(zhí)行下一步驟; B3、進入串口下載模式,執(zhí)行下載指令。
全文摘要
本發(fā)明公開了一種CDMA無線終端產(chǎn)品Boot引導(dǎo)程序的實現(xiàn)方法,其包括以下步驟在flash芯片中設(shè)置與應(yīng)用程序獨立的boot執(zhí)行程序,該boot執(zhí)行程序僅用于啟動應(yīng)用程序下載功能,并保存在該flash芯片的起始位置;修改應(yīng)用程序的啟動地址在所述boot執(zhí)行程序之后;通過連接服務(wù)器端,上電并接收下載指令,進行應(yīng)用程序的下載功能。本發(fā)明方法由于采用了在閃存物理存儲空間中設(shè)置的獨立BOOT執(zhí)行程序,實現(xiàn)了BOOT功能的模塊化,可以單獨運行,而不依賴主程序的運行結(jié)果,降低了維護成本;提高了終端的軟件維修速度,給生產(chǎn)、售后、運營商或用戶升級軟件提供了一種簡單、快捷的實現(xiàn)方案。
文檔編號G06F9/445GK101246430SQ200810065579
公開日2008年8月20日 申請日期2008年3月13日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者張佳妮, 張明昊, 徐發(fā)國, 李琛琿, 王霄驪, 兵 陳, 金 韓 申請人:中興通訊股份有限公司