專利名稱:開機快速啟動并顯示的td-scdma手機及其實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動通信終端的技術(shù)領(lǐng)域,更具體地說是涉及到TD-SCDMA手機開機啟動的技術(shù)。
背景技術(shù):
現(xiàn)有的TD-SCDMA手機可以同時支持多種內(nèi)存,很多手機都是采用非掉電易失性內(nèi)存用來存儲嵌入式程序,這里的非掉電易失性內(nèi)存主要是指NANDFLASH閃存存儲器。由于NAND FLASH閃存存儲器本身固有的特征,手機程序不能在NAND FLASH中運行,必須將代碼拷貝到移動終端的SRAM/SDRAM存儲器中來運行。所以在手機設(shè)備內(nèi)通常還具有一小塊內(nèi)部緩存或者無需進行初始化的內(nèi)存(RAM隨機存儲器),用來將存儲在非掉電易失性內(nèi)存中的引導(dǎo)單元復(fù)制過來,進行系統(tǒng)加載。
手機的代碼量越大所需要的拷貝時間越長,由于目前TD-SCDMA手機不能夠在加載程序中進行按鍵檢查和LCD畫面顯示,只能在拷貝完主程序后,主程序開機時才能進行按鍵等開機條件的檢查和開機畫面的顯示,這樣就導(dǎo)致手機開機啟動時間長,從用戶按下開機鍵到顯示開機LCD畫面及點亮按鍵背光的時間高達10秒以上,使得用戶使用起來極其不方便,會誤解為手機存在故障,非常不符合用戶使用手機的習(xí)慣。
當(dāng)前的手機啟動一般采用兩級加載的方法,首先執(zhí)行固化在系統(tǒng)內(nèi)部的只讀存儲器中(ROM)的程序或者硬件,由這個程序把加載程序1(也稱為BOOTLOADER程序)拷貝到內(nèi)部的緩存中運行引導(dǎo)程序,或者通過硬件拷貝。在加載程序1中,對系統(tǒng)的其他主內(nèi)存例如SDRAM進行初始化,并拷貝加載程序2到主內(nèi)存。然后在主內(nèi)存中運行加載程序2,由加載程序2完成手機主程序的拷貝。
NAND FLASH閃存存儲器由很多BLOCK塊組成,由于NAND FLASH本身存在壞塊的影響,現(xiàn)在NAND FLASH的制造廠商僅僅保證第一塊BLOCK的正確性。上述加載程序1由硬件固化程序來拷貝,所以存放的位置和大小不能超過固化程序拷貝的范圍。而加載程序1程序量的限制無法實現(xiàn)NAND FLASH存儲器的管理,進行有效的壞塊檢查。因此為了保證加載程序1和加載程序2的可靠性,我們將加載程序限制在16K字節(jié)之內(nèi),因為NAND FLASH的一個BLOCK為16K字節(jié)的容量。如果加大加載程序2的代碼量,則加載程序超過16K字節(jié),就必須放置NAND FLASH第一個BLOCK以外的BLOCK中,有可能會出現(xiàn)存儲壞塊,而在加載程序存放的位置上出現(xiàn)了壞塊,手機就無法得到正確的加載程序,從而出現(xiàn)無法開機并無法修理的嚴重故障,手機存在極大的質(zhì)量風(fēng)險。
為了保證手機的程序正確性和手機性能的穩(wěn)定性,必須將加載程序存放在NAND FLASH的第一個BLOCK中。而NAND FLASH的一個BLOCK只有16K字節(jié)的容量,而手機顯示屏LCD進行顯示的數(shù)據(jù)量都在40K字節(jié)以上,所以BLOCK容量的限制使手機無法在加載程序中進行更多的數(shù)據(jù)處理并進行LCD的顯示,而手機的大代碼量所需要的拷貝時間比較長,這樣就存在從用戶按下開機鍵到顯示開機LCD畫面及點亮按鍵背光的時間高達10秒,手機開機啟動時間長的缺點。
發(fā)明內(nèi)容
本發(fā)明的目的,就在于解決用戶開機時從用戶按下開機鍵到顯示開機LCD畫面及點亮按鍵背光的時間過長的問題,提出了一種能夠開機快速啟動的TD-SCDMA手機及其實現(xiàn)方法,實現(xiàn)了手機開機的快速反應(yīng),并且將加載程序總的代碼量保持在16KB以內(nèi),從而保證了手機主程序的正確性和手機性能的穩(wěn)定性。
為了達到上述目的,本發(fā)明包括手機存儲程序的非掉電易失性存儲器NAND FLASH、執(zhí)行程序的主內(nèi)存、外設(shè)和微處理器,還包括手機開機的加載程序放置在NAND FLASH存儲器的第一個塊,手機開機顯示畫面數(shù)據(jù)在NANDFLASH存儲器的放置位置非包含于手機主程序內(nèi)。
所述的加載程序包括第一加載程序和第二加載程序。手機開機顯示畫面數(shù)據(jù)放置在NAND FLASH存儲器手機主程序位置之前的6個塊內(nèi)。
TD-SCDMA手機開機快速啟動的方法,其特征在于包括以下步驟手機開機后執(zhí)行微處理器內(nèi)部固化啟動程序,把第一加載程序拷貝到手機內(nèi)部緩存的步驟;執(zhí)行第一加載程序,把第二加載程序拷貝到手機主內(nèi)存的步驟;執(zhí)行第二加載程序,讀出存儲在NAND FLASH中的畫面顯示數(shù)據(jù)在LCD屏上顯示,拷貝主程序到手機主內(nèi)存的步驟;處理器指針指向主程序開始地址并執(zhí)行的步驟。
所述的第一加載程序和第二加載程序容量保持16KB空間內(nèi),放置在NAND FLASH存儲器的第一個塊。手機開機顯示畫面數(shù)據(jù)放置在NAND FLASH存儲器手機主程序位置之前的6個塊內(nèi)。
上述的第一加載程序包括以下步驟啟動ARM并初始化主內(nèi)存、時鐘的步驟;拷貝第二加載程序到手機主內(nèi)存的步驟;置處理器指針指向第二加載程序起始地址并執(zhí)行的步驟。
上述的第二加載程序包括以下步驟檢測手機各種開機條件,如果不滿足條件則關(guān)閉電源并關(guān)機的步驟;滿足條件,則初始化LCD顯示屏的步驟;讀出存儲在NAND FLASH中的畫面數(shù)據(jù),顯示開機畫面并打開背光燈的步驟;拷貝主程序到手機主內(nèi)存并顯示拷貝進度的步驟;處理器指針指向主程序開始地址并執(zhí)行的步驟。
手機第二加載程序檢測開機條件包括是否有長按電源鍵、是否插入充電器、是否有RTC中斷。
應(yīng)用本發(fā)明可以快速啟動TD-SCDMA手機,用戶按電源鍵2秒后手機即啟動并顯示畫面,手機并可以支持RTC定時和插入充電器充電等多種開機模式。
下面結(jié)合附圖和實施例對本發(fā)明作進一步的描述。
圖1是本發(fā)明的硬件連接方框圖;圖2是加載程序1和加載程序2組成一個加載程序的示意圖;圖3是加載程序1與加載程序2在NAND FLASH存儲器內(nèi)的位置示意圖;圖4是手機開機進行系統(tǒng)加載的流程圖;圖5是開機畫面顯示的數(shù)據(jù)在NAND FLASH存儲器內(nèi)的位置示意圖;圖6是加載程序2和手機主程序在手機主內(nèi)存的相對位置示意圖;圖7是加載程序1的流程圖;
圖8是加載程序2的流程圖;具體實施方式
如圖1所示,是手機內(nèi)的存儲器、外接設(shè)備與微處理器的連接方式,手機中的存儲器分別為非掉電易失性內(nèi)存(NAND FLASH)、主內(nèi)存(SDRAM)和微處理器的內(nèi)部緩存(SRAM)、手機中固化的只讀存儲器(ROM或者EPROM)。手機中固化的EPROM是用來把NAND FLASH中的加載程序1拷貝到內(nèi)部緩存中,也有的微處理器用硬件復(fù)制的方式將NAND FLASH中的加載程序1拷貝到內(nèi)部緩存。手機主內(nèi)存可以是SDRAM或者SRAM等。外部設(shè)備包括LCD液晶顯示屏和鍵盤。
如圖2所示,NAND FLASH閃存存儲器由很多BLOCK塊所組成,由于NANDFLASH本身存在壞塊不穩(wěn)定的問題,現(xiàn)在NAND FLASH的制造廠商只能保證第一塊BLOCK的正確性。因此,手機加載程序1和加載程序2組成一個組合加載程序,存儲在NAND FLASH的第一個塊內(nèi)部,其中加載程序1要小于4個PAGE,加載程序2要小于28個PAGE,他們共同組成一個程序,中間沒有程序的地方填充數(shù)據(jù)0XFF,最后保證組合加載程序的大小限制是16KB之內(nèi)不超出NAND FLASH第一個塊的容量。
通過編寫的PC機軟件將加載程序1和加載程序2合并稱一個組合加載程序通過下載工具寫入NAND FLASH的第一個BLOCK中,其中加載程序限制在4個PAGE(頁),NAND FLASH存儲器中一個BLOCK一般有32個PAGE組成,每個頁包括512個字節(jié),并放置在前面位置,加載程序2占28個PAGE放在加載程序1的后面。
如圖3所示,說明了加載程序1和加載程序2以及組合加載程序所在NAND FLASH的位置。我們將加載程序1放在第一個BLOCK的前4個PAGE中,將加載程序2放置在第一個BLOCK的后28個PAGE中。并可以根據(jù)加載程序1和加載程序2的具體大小,來調(diào)節(jié)加載程序1和加載程序2在NAND FLASH的位置,但是組合加載程序的總程序量不能超過16KB,這樣使手機的穩(wěn)定性有極大的保證,降低了手機由于NAND FLASH壞塊而產(chǎn)生的故障率,同時降低了產(chǎn)品的風(fēng)險。
如圖4所示,是手機加載執(zhí)行程序的順序,用戶按鍵后手機啟動,先執(zhí)行微處理器內(nèi)部ROM中固化的程序,完成加載程序1拷貝到微處理器的內(nèi)部緩存中,這一個過程在也可以由微處理器中的硬件來完成。加載程序1拷貝到微處理器內(nèi)部的緩存后,在內(nèi)部緩存中執(zhí)行加載程序1,由加載程序1拷貝加載程序2到手機的主內(nèi)存中,拷貝完成后執(zhí)行加載程序2,由加載程序2完成主程序的拷貝。
如圖5所示,手機開機啟動后,為了快速在LCD上出現(xiàn)顯示信息,本發(fā)明把LCD顯示屏上需要顯示的圖片數(shù)據(jù)單獨放在NAND FLASH存儲器的一個特定位置,不包括在手機主程序內(nèi)??梢酝ㄟ^PC軟件在主程序的開始位置之前加上6個BLOCK的數(shù)據(jù)共96KB用于放置圖片數(shù)據(jù),空余的位置添上0XFF。如果對于超大顯示屏,圖片顯示的數(shù)據(jù)量超過96K還可以擴充這個存儲空間。
如圖6所示,是加載程序2和主程序在主內(nèi)存中的相對位置示意,這里加載程序2和主程序的開始位置必須是其程序定位時的開始位置,加載程序2在拷貝主程序時,主程序不能覆蓋到加載程序2,也就是說要有恰好的存儲空間放置主程序。在主內(nèi)存中,放置主程序的位置大小不能超過加載程序2的開始位置,加載程序2開始到主內(nèi)存的結(jié)束要有足夠的空間來滿足其運行,包括ZI數(shù)據(jù)和棧的空間。
如圖7所示,是加載程序1的流程圖,由于手機啟動時手機的主內(nèi)存還沒有初始化,因此首先要對手機的主內(nèi)存初始化。當(dāng)主內(nèi)存可以工作后,將加載程序2拷貝到手機的主內(nèi)存中。完成了加載程序2的拷貝后,加載程序1將處理器的程序指針強制指向加載程序2的開始地址,處理器從加載程序2開始執(zhí)行程序。
加載程序1要對手機的主內(nèi)存、系統(tǒng)時鐘CLK進行初始化,其目的使主內(nèi)存能夠正常工作。
加載程序1將存放在NAND FLASH第一個BLOCK中的后28個PAGE的加載程序2拷貝到主內(nèi)存中。
如圖8所示,是加載程序2的流程圖,在加載程序2中首先初始化按鍵,充電和RTC(實時時鐘)充電,然后檢測開機條件,例如是否有用戶長按開機鍵的行為,是否插入充電器,是否有RTC中斷。如果不滿足開機條件,則關(guān)閉手機的各路電源,完成關(guān)機。如果滿足開機條件,手機開始顯示初始化LCD,并讀取存放在NAND FLASH的顯示數(shù)據(jù),完成LCD的顯示并打開背光燈,接下來加載程序2拷貝主程序到手機的主內(nèi)存,并顯示拷貝過程的進度,讓手機用戶很清晰地知曉當(dāng)前手機的運行狀況,在拷貝主程序過程中,主程序在主內(nèi)存中不能覆蓋當(dāng)前執(zhí)行的加載程序2,當(dāng)主程序拷貝結(jié)束后,將微處理器的程序指針強制指向主程序的開始位置,在主內(nèi)存中執(zhí)行主程序。而且在上述拷貝過程中可以進行對NAND FLASH存儲器的管理,用來檢測并跳過NAND FLASH的壞塊。
手機的開機畫面的圖片用一個PC機的程序添加到手機的主程序的開始部分進行存儲,一般來說采用在手機的主程序開始部分添加96KB(6個BLOCK)的數(shù)據(jù),在這96KB的空間中前面是需要顯示的畫面,后面沒有數(shù)據(jù)的部分用FF來代替。這個空間根據(jù)硬件的需要可以隨時調(diào)整。
加載程序2拷貝主程序到主內(nèi)存過程中,主程序不能覆蓋加載程序2所在的位置,當(dāng)主程序加載完成后系統(tǒng)啟動主程序。
在主程序執(zhí)行中不需要做開機條件的檢測,只需要判斷當(dāng)前的是什么開機狀態(tài),而且在開機過程中不要初始化LCD和相關(guān)的GPIO等,主要使屏幕上的開機畫面不要消失。
權(quán)利要求
1.開機快速啟動并顯示的TD-SCDMA手機,包括手機存儲程序的非掉電易失性存儲器NAND FLASH、執(zhí)行程序的主內(nèi)存、外設(shè)和微處理器,其特征在于還包括手機開機的加載程序放置在NAND FLASH存儲器的第一個塊,手機開機顯示畫面數(shù)據(jù)在NAND FLASH存儲器的放置位置非包含于手機主程序內(nèi)。
2.根據(jù)權(quán)利要求1所述的開機快速啟動并顯示的TD-SCDMA手機,其特征在于所述的加載程序包括第一加載程序和第二加載程序。
3.根據(jù)權(quán)利要求1或者2所述的開機快速啟動并顯示的TD-SCDMA手機,其特征在于所述的手機開機顯示畫面數(shù)據(jù)放置在NAND FLASH存儲器手機主程序位置之前的6個塊內(nèi)。
4.TD-SCDMA手機開機快速啟動的方法,其特征在于包括以下步驟手機開機后執(zhí)行微處理器內(nèi)部固化啟動程序,把第一加載程序拷貝到手機內(nèi)部緩存的步驟;執(zhí)行第一加載程序,把第二加載程序拷貝到手機主內(nèi)存的步驟;執(zhí)行第二加載程序,讀出存儲在NAND FLASH中的畫面顯示數(shù)據(jù)在LCD屏上顯示,拷貝主程序到手機主內(nèi)存的步驟;處理器指針指向主程序開始地址并執(zhí)行的步驟。
5.根據(jù)權(quán)利要求4所述的TD-SCDMA手機開機快速啟動的方法,其特征在于第一加載程序和第二加載程序容量保持16KB空間內(nèi),放置在NAND FLASH存儲器的第一個塊。
6.根據(jù)權(quán)利要求4所述的TD-SCDMA手機開機快速啟動的方法,其特征在于手機開機顯示畫面數(shù)據(jù)放置在NAND FLASH存儲器手機主程序位置之前的6個塊內(nèi)。
7.根據(jù)權(quán)利要求4、5或者6所述的TD-SCDMA手機開機快速啟動的方法,其特征在于第一加載程序包括以下步驟啟動ARM并初始化主內(nèi)存和系統(tǒng)時鐘的步驟;拷貝第二加載程序到手機主內(nèi)存的步驟;置處理器指針指向第二加載程序起始地址并執(zhí)行的步驟。
8.根據(jù)權(quán)利要求4、5或者6所述的TD-SCDMA手機開機快速啟動的方法,其特征在于第二加載程序包括以下步驟檢測手機各種開機條件,如果不滿足條件則關(guān)閉電源并關(guān)機的步驟;滿足條件,則初始化LCD顯示屏的步驟;讀出存儲在NAND FLASH中的畫面數(shù)據(jù),顯示開機畫面并打開背光燈的步驟;拷貝主程序到手機主內(nèi)存并顯示拷貝進度的步驟;處理器指針指向主程序開始地址并執(zhí)行的步驟。
9.根據(jù)權(quán)利要求8所述的TD-SCDMA手機開機快速啟動的方法,其特征在于手機第二加載程序檢測開機條件包括是否有長按電源鍵、是否插入充電器、是否有RTC中斷。
全文摘要
本發(fā)明公開了一種開機快速啟動并顯示的TD-SCDMA手機及其實現(xiàn)方法,包括手機存儲程序的非掉電易失性存儲器NAND FLASH、執(zhí)行程序的主內(nèi)存、外設(shè)和微處理器,手機開機的加載程序放置在NAND FLASH存儲器的第一個塊,手機開機顯示畫面數(shù)據(jù)在NAND FLASH存儲器的放置位置非包含于手機主程序內(nèi),應(yīng)用本發(fā)明,用戶按電源鍵2秒后手機即啟動并顯示畫面,并可支持RTC定時和插入充電器充電等多種開機模式。
文檔編號H04M1/725GK1946210SQ20061006946
公開日2007年4月11日 申請日期2006年10月17日 優(yōu)先權(quán)日2006年10月17日
發(fā)明者潘艾明, 毛洪波 申請人:青島海信移動通信技術(shù)股份有限公司