專利名稱:一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動(dòng)通訊技術(shù)領(lǐng)域,涉及一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,特別是一種Linux智能手機(jī)中BootLoader的設(shè)計(jì)方法,可以方 便地與Windows系統(tǒng)互聯(lián),通過(guò)BootLoader進(jìn)行硬件檢測(cè)和下載手 機(jī)軟件的方法。
背景技術(shù):
對(duì)于計(jì)算機(jī)系統(tǒng)來(lái)說(shuō),從開(kāi)機(jī)上電到操作系統(tǒng)啟動(dòng)需要一個(gè)引導(dǎo) 過(guò)程。目前應(yīng)用于智能手機(jī)中的嵌入式Linux系統(tǒng)同樣離不開(kāi)引導(dǎo)程 序,這個(gè)引導(dǎo)程序就叫作Bootloader。 Bootloader (引導(dǎo)裝載程序) 是在Linux操作系統(tǒng)運(yùn)行之前執(zhí)行的一段小程序,是軟件開(kāi)發(fā)的第一 個(gè)重要環(huán)節(jié)。通過(guò)這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存 空間的映射表,從而建立適當(dāng)?shù)南到y(tǒng)軟硬件環(huán)境,為最終調(diào)用操作系 統(tǒng)內(nèi)核做好準(zhǔn)備。另外它還有重要的作用,完成Linux手機(jī)中資源的 下載,如內(nèi)核、根文件系統(tǒng)和上層應(yīng)用軟件。支持Linux系統(tǒng)的 BootLoader都具有加載啟動(dòng)Limix內(nèi)核和下載手機(jī)側(cè)軟件的功能。 如果要控制手機(jī)進(jìn)入下載模式,首先要要從PC端通過(guò)SSH或Telnel 登陸到手機(jī),在BootLoader啟動(dòng)時(shí),輸入鍵盤消息,BootLoader收 到此消息后便進(jìn)入下載模式,數(shù)據(jù)的傳輸可以通過(guò)UART或USB,完 成之后需要敲命令完成燒寫,如果輸入錯(cuò)誤的話,有時(shí)會(huì)導(dǎo)致十分危 險(xiǎn)的后果?,F(xiàn)在支持Linux系統(tǒng)的手機(jī)都是智能機(jī)或高端機(jī),需要下載的軟 件分為好幾部分,而且很大,這樣的下載過(guò)程遠(yuǎn)遠(yuǎn)不能滿足大規(guī)模生 產(chǎn)的需要。另外,BootLoader的功能也較為單一,只實(shí)現(xiàn)了一些基 本的功能,不能進(jìn)行一些手機(jī)側(cè)實(shí)質(zhì)性的工作,如屏幕的測(cè)試或flash壞塊的管理。所以,設(shè)計(jì)一個(gè)功能實(shí)用的BootLoader十分重要,不僅能在滿 足加載啟動(dòng)Linux內(nèi)核的基本功能,而且可以滿足工廠生產(chǎn)的需要, 也可以幫助在手機(jī)開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)問(wèn)題。發(fā)明內(nèi)容本發(fā)明的目的在于克服上述己有技術(shù)的缺陷,提供一種Linux智 能手機(jī)中BootLoader的設(shè)計(jì)方法,不僅可以實(shí)現(xiàn)手機(jī)上電后初始化 設(shè)備,然后完成Linux內(nèi)核的加載啟動(dòng),而且可以方便與Windows系 統(tǒng)互聯(lián),通過(guò)USB2.0協(xié)議實(shí)現(xiàn)系統(tǒng)軟件的簡(jiǎn)單快速下載,支持多個(gè) USB下載同時(shí)進(jìn)行和每個(gè)USB通道中的批量和自動(dòng)下載,適合大規(guī)模 生產(chǎn)的需要,另外還能幫助開(kāi)發(fā)人員方便的進(jìn)行一些底層軟硬件的調(diào) 試。更進(jìn)一步講,本發(fā)明提供的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法是一種 Linux智能手機(jī)中BootLoader的設(shè)計(jì)方法,在BootLoader進(jìn)行調(diào)試 和下載時(shí),Linux智能手機(jī)同Windows操作軟件通過(guò)USB線相連,遵 循USB2.0協(xié)議,加強(qiáng)Linux與Windows系統(tǒng)的互操作性,提高軟件 下載速度,增加BootLoader的硬件測(cè)試功能。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方 法技術(shù)方案是Linux智能手機(jī)和Windows操作軟件通過(guò)USB線相連, 先通過(guò)工具JTAG或者Jflash將BootLoader燒寫到手機(jī)中flash的 第0個(gè)分區(qū),然后進(jìn)入Bootloader啟動(dòng)的兩個(gè)階段,第一階段Stagel 使用匯編語(yǔ)言,如匯編語(yǔ)言Start. S,編譯后容量小于4K。手機(jī)啟動(dòng) 后可借助三星芯片,如S3C2442的"St印pingstone"技術(shù)啟動(dòng)Start. S, 完成CPU和內(nèi)存的初始化,為加載第二階段的代碼準(zhǔn)備空間,并將第 二階段代碼拷貝到指定的SDRAM中,并跳轉(zhuǎn)到第二階段代碼入口地 址。第二階段stage2則使用C語(yǔ)言,首先執(zhí)行boot—start, c中的 boot—first函數(shù),這個(gè)函數(shù)會(huì)初始化一些列硬件設(shè)備,如CPU、Board、 中斷和RAM的初始化,還會(huì)進(jìn)行NAND、 I2C總線和電源管理芯片的初始化,判斷開(kāi)機(jī)原因?yàn)閁SB充電開(kāi)機(jī)還是按鍵正常開(kāi)機(jī),這是通過(guò) I2C總線訪問(wèn)電源管理芯片所獲得的結(jié)果,如果為USB充電開(kāi)機(jī)則置 一個(gè)標(biāo)志位,設(shè)置等待時(shí)間最少為2s, 一般可以設(shè)計(jì)為2-10s,初始 化為USB Device設(shè)備并打開(kāi)USBD中斷等待數(shù)據(jù),否則置設(shè)置等待時(shí) 間為Os。這時(shí)進(jìn)入main—loop函數(shù),判斷等待時(shí)間是否為0,如果為 0則從指定的地址完成內(nèi)核的加載和跳轉(zhuǎn);如果不為0即USB充電 開(kāi)機(jī),則會(huì)在設(shè)置時(shí)間中等待Windows端USB的握手?jǐn)?shù)據(jù)。如果需要進(jìn)入硬件測(cè)試模式或數(shù)據(jù)下載模式,運(yùn)行Windows端工 具,輪詢到手機(jī)端USB Device準(zhǔn)備好,則通過(guò)USB發(fā)送握手信號(hào), 當(dāng)BootLoader在2s內(nèi)收到正確的握手信號(hào)則停止跳轉(zhuǎn)Linux內(nèi)核, 放棄正常啟動(dòng),點(diǎn)亮鍵盤燈,進(jìn)入測(cè)試和下載模式。這時(shí)用戶便可以 通過(guò)Windows端的工具完全控制手機(jī),如通過(guò)對(duì)話框選擇進(jìn)行需要下 載的手機(jī)軟件選擇,或者通過(guò)點(diǎn)擊選項(xiàng)進(jìn)行硬件的測(cè)試如鍵盤燈測(cè) 試,點(diǎn)亮屏幕,顯示圖篇等測(cè)試和flash的壞塊管理等。與現(xiàn)有技術(shù)相比,本發(fā)明提供的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法的 有益效果是實(shí)現(xiàn)了 Linux智能手機(jī)中BootLoader初始化硬件,加 載Linux內(nèi)核并跳轉(zhuǎn)執(zhí)行內(nèi)核等基本功能,又加入了新的元素。通過(guò) BootLoader進(jìn)行調(diào)試和下載時(shí),手機(jī)只需和Windows端通過(guò)USB線 連接就行,遵循USB2.0協(xié)議,加強(qiáng)了與Windows的互操作性,簡(jiǎn)化 了使用的難度,提高了下載速度,使大規(guī)模生產(chǎn)Linux手機(jī)成為可能; 另外,還可以幫助開(kāi)發(fā)人員進(jìn)行底層硬件的測(cè)試,增加了 BootLoader 的功能,加快了開(kāi)發(fā)的速度。下面,結(jié)合附圖和實(shí)施例詳細(xì)說(shuō)明依據(jù)本發(fā)明提出方法的細(xì)節(jié)及 工作情況。
圖1是本發(fā)明BootLoader的第一階段中Start. S的啟動(dòng)流程圖; 圖2是本發(fā)明BootLoader的第二階段中Boot—first 0的啟動(dòng)流程圖;圖3是本發(fā)明BootLoader中判斷是否充電開(kāi)機(jī)的流程圖; 圖4是本發(fā)明BootLoader中USBD device通過(guò)中斷接收數(shù)據(jù)流 程圖;圖5是本發(fā)明Windows端測(cè)試和下載工具的軟件界面圖。
具體實(shí)施方式
下面,結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明,但不應(yīng)以此限 制本發(fā)明的保護(hù)范圍。本發(fā)明提供的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法優(yōu)選實(shí)施例提供的 一種Linux智能手機(jī)中BootLoader的設(shè)計(jì)方法,Linux智能手機(jī)和 Windows操作軟件通過(guò)USB線相連,該方法包括下列步驟步驟(l):進(jìn)入Bootloader啟動(dòng)的Stagel;手機(jī)開(kāi)機(jī)后,首先會(huì) 由三星芯片如S3C2442的"St印pingstone"技術(shù)運(yùn)行放在nand flash 中的前4KB程序,即放在0 block的BootLoader的Start. S或者直 接在NOR flash中運(yùn)行BootLoader,這里講述從nand flash啟動(dòng) BootLoader 。 Stagel的代碼與CPU的體系結(jié)構(gòu)有關(guān),用匯編語(yǔ)言編 寫。啟動(dòng)流程如圖l所示系統(tǒng)復(fù)位后執(zhí)行BootLoader stagel階段代碼,首先完成設(shè)置異 常向量,接著進(jìn)行屏蔽中斷,設(shè)置系統(tǒng)時(shí)鐘,配置內(nèi)存區(qū)控制寄存器, 然后為stage2階段代碼分配內(nèi)存空間并拷貝stage2階段的代碼到此 內(nèi)存區(qū),完成后跳轉(zhuǎn)到stage2的代碼入口處。步驟(2):進(jìn)入Bootloader啟動(dòng)的stage2;首先執(zhí)行boot—first () 函數(shù),啟動(dòng)流程如圖2所示。首先完成一些主要設(shè)備的初始化,包括 CPU的初始化,終端的初始化,RAM的初始化等;接著進(jìn)行flash的 初始化,內(nèi)存操作函數(shù)的初始化;然后進(jìn)行系統(tǒng)參數(shù)的初始化;主要是根據(jù)配置文件獲得必要的環(huán)境變量,如內(nèi)存、flash大小,啟動(dòng)內(nèi) 核時(shí)一些必須的參數(shù);外圍器件的初始化,包括I2C總線的初始化, 電源管理芯片的初始化,這些主要是為了下面的是否USB充電開(kāi)機(jī)檢 測(cè)和點(diǎn)亮手機(jī)鍵盤燈準(zhǔn)備的;以及LCD的初始化。步驟(3):在完成設(shè)備的初始化后,根據(jù)從電源管理芯片獲得是否 是USB充電開(kāi)機(jī)的條件進(jìn)行判斷,設(shè)置啟動(dòng)等待時(shí)間,其流程如圖3 所示。首先通過(guò)I2C總線訪問(wèn)電源管理芯片,獲得此時(shí)是否處于USB充 電開(kāi)機(jī)狀態(tài),如果是則置位boot_charge,并初始化手機(jī)為USB device 設(shè)備,允許USBD中斷,設(shè)置啟動(dòng)等待時(shí)間最少為2s,否則設(shè)置為0s; 進(jìn)入main—loop (),判斷等待時(shí)間是否為0,如果為O,則拷貝Linux 內(nèi)核到指定地址并跳轉(zhuǎn)執(zhí)行Linux內(nèi)核,否則檢測(cè)是否有握手標(biāo)志 位。握手標(biāo)志位是在USBD中斷里設(shè)置的,當(dāng)Windows端軟件檢測(cè)到 手機(jī)端初始化完成的USB device,便通過(guò)USB端口發(fā)送握手信號(hào),在 BootLoader中斷程序中檢測(cè)到有握手信號(hào)過(guò)來(lái),便置握手標(biāo)志位為 1,在main—loop中檢測(cè)到此標(biāo)志位并正確握手就放棄內(nèi)核的啟動(dòng), 進(jìn)入下載模式。步驟(4):握手成功后進(jìn)入下載或測(cè)試模式;在USB device中斷中數(shù)據(jù)的接收流程如圖4所示。IRQ USBD中斷到來(lái),進(jìn)入中斷處理函數(shù),首先判斷USB device 中斷的具體觸發(fā)原因,如USB device RESET、 RESUM或SUSPND中斷, 或輸出端口或輸入端口中斷。如果為輸出中斷,首先判斷是否已完成 握手,如果沒(méi)有則接收數(shù)據(jù),并置位握手標(biāo)志位。由于mainjoop() 會(huì)在while循環(huán)中等待2s,所以會(huì)檢測(cè)到次標(biāo)志位,然后檢測(cè)握手信 號(hào)是否正確,如果正確則停止啟動(dòng),進(jìn)入下載模式,接收命令。上述命令分為兩類, 一類是操作數(shù)據(jù)命令,需要進(jìn)入數(shù)據(jù)傳輸模式; 一類是測(cè)試、調(diào)試或查詢命令。數(shù)據(jù)首先由Windows端工具打包 成一定的格式再按照USB協(xié)議發(fā)送,每個(gè)包的格式為手機(jī)端需要把 數(shù)據(jù)存放的內(nèi)存地址(4byte) +數(shù)據(jù)包的長(zhǎng)度(4byte) +數(shù)據(jù) +cheCkSum(4byte);如果是調(diào)試或査詢命令,則不需要進(jìn)入下載模式, 在main_looP()中直接執(zhí)行命令。支持的命令包括flash壞塊管理, LCD點(diǎn)亮測(cè)試,鍵盤燈控制,聲音測(cè)試等。步驟(5):執(zhí)行命令,操作數(shù)據(jù),如燒寫flash;數(shù)據(jù)發(fā)送完后,在mairuloop()中會(huì)解析這些數(shù)據(jù),得到執(zhí)行命 令時(shí)必須的參數(shù),如燒寫的block、數(shù)據(jù)的長(zhǎng)度、數(shù)據(jù)存放的內(nèi)存地 址等并根據(jù)之前的命令,并最終完成數(shù)據(jù)的燒寫。本發(fā)明的BootLoader方法中接收數(shù)據(jù)或命令都是在USB中斷中 完成,然后在mainJoop()中處理,由main—loop ()決定中斷中接受 的數(shù)據(jù)怎么處理,數(shù)據(jù)的發(fā)送過(guò)程都是將大的二進(jìn)制文件分成小包發(fā) 送,不受內(nèi)存大小的限制,而且數(shù)據(jù)的意義,如它是kernel或rootfs 都是由Windows端工具來(lái)決定,提高了 BootLoader的兼容性;每個(gè) 數(shù)據(jù)包和命令都是經(jīng)過(guò)checksum校驗(yàn)的,具有自動(dòng)重發(fā)機(jī)制。本發(fā)明的BootLoader方法需要windows操作軟件工具的配合。 此工具在Windows操作系統(tǒng)下用MFC庫(kù)實(shí)現(xiàn),采用開(kāi)源USB驅(qū)動(dòng),其 用戶界面如圖5所示,其工作流程與手機(jī)端USBD流程相對(duì)應(yīng),兩端配 合完成數(shù)據(jù)的傳輸和下載燒寫。工具支持單個(gè)文件下載與批處理下 載,并支持一些擴(kuò)展命令,另外Log窗口能清楚的顯示每一步動(dòng)作的 過(guò)程。Windows端工具要先于手機(jī)上電之前啟動(dòng),然后在一個(gè)線程中不 斷輪詢手機(jī)所初始化成的USB device,如果檢測(cè)到,便發(fā)送握手信號(hào), 停住BootLoade的啟動(dòng),然后根據(jù)用戶的選擇,打包數(shù)據(jù),并傳輸給 BootLoader。支持的功倉(cāng)b有下載bootLoader, kernel, rootfs禾口上層GUI;擦除NAND塊;測(cè)試硬件功能,包括屏幕測(cè)試,鍵盤燈測(cè)試,flash壞塊管理等;支持更通用命令管理,如獲得BootLoader 版本信息,環(huán)境變量信息等。本發(fā)明提供的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法不僅實(shí)現(xiàn)了 Linux 智能手機(jī)中的BootLoder,實(shí)現(xiàn)了拷貝Linux內(nèi)核并啟動(dòng)內(nèi)核的功能, 而且實(shí)現(xiàn)了通過(guò)Windows工具更新Linux手機(jī)軟件的功能,克服了 Linux系統(tǒng)不友好與windows不兼容等缺陷;數(shù)據(jù)經(jīng)USB2. 0協(xié)議傳 輸,Windows工具支持8個(gè)USB通道,提高了下載速度;每個(gè)數(shù)據(jù)包 都經(jīng)過(guò)Checksum校驗(yàn),具有錯(cuò)誤數(shù)據(jù)包重發(fā)機(jī)制,調(diào)高了系統(tǒng)糾錯(cuò) 能力;具有硬件測(cè)試功能,加開(kāi)了項(xiàng)目的開(kāi)發(fā)速度。
權(quán)利要求
1、一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特征在于該方法是一種Linux智能手機(jī)中BootLoader的設(shè)計(jì)方法,在BootLoader進(jìn)行調(diào)試和下載時(shí),Linux智能手機(jī)同Windows操作軟件通過(guò)USB線相連,遵循USB2.0協(xié)議,加強(qiáng)Linux與Windows系統(tǒng)的互操作性,提高軟件下載速度,增加BootLoader的硬件測(cè)試功能。
2、根據(jù)權(quán)利要求l所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于該方法包括下列步驟步驟(l):進(jìn)入Bootloader啟動(dòng)的Stagel;手機(jī)開(kāi)機(jī)后,首先 運(yùn)行放在nand flash中的前4KB程序,即放在0 block的BootLoader 的Start. S;系統(tǒng)復(fù)位后執(zhí)行BootLoader stage 1階段代碼,首先完 成設(shè)置異常向量,接著進(jìn)行屏蔽中斷,設(shè)置系統(tǒng)時(shí)鐘,配置內(nèi)存區(qū)控 制寄存器,然后為stage2階段代碼分配內(nèi)存空間并拷貝stage2階段 的代碼到此內(nèi)存區(qū),完成后跳轉(zhuǎn)到stage2的代碼入口處;步驟(2):進(jìn)入Boot loader啟動(dòng)的stage2 ; 首先執(zhí)行 boot—first ()函數(shù),完成一些主要設(shè)備的初始化,包括CPU的初始化, 終端的初始化,RAM的初始化等;接著進(jìn)行flash的初始化,內(nèi)存操 作函數(shù)的初始化;然后進(jìn)行系統(tǒng)參數(shù)的初始化;主要是根據(jù)配置文件 獲得必要的環(huán)境變量,如內(nèi)存、flash大小,啟動(dòng)內(nèi)核時(shí)一些必須的 參數(shù);外圍器件的初始化,包括I2C總線的初始化,電源管理芯片的 初始化,這些主要是為了下面的是否USB充電開(kāi)機(jī)檢測(cè)和點(diǎn)亮手機(jī)鍵 盤燈準(zhǔn)備的;以及LCD的初始化;步驟(3):在完成設(shè)備的初始化后,根據(jù)從電源管理芯片獲得是 否是USB充電開(kāi)機(jī)的條件進(jìn)行判斷,設(shè)置啟動(dòng)等待時(shí)間;首先通過(guò) I2C總線訪問(wèn)電源管理芯片,獲得此時(shí)是否處于USB充電開(kāi)機(jī)狀態(tài), 如果是則置位boot—charge,并初始化手機(jī)為USB device設(shè)備,允許USBD中斷,設(shè)置啟動(dòng)等待時(shí)間最少為2s,否則設(shè)置為0s;進(jìn)入 main—lo叩(),判斷等待時(shí)間是否為0,如果為0,則拷貝Linux內(nèi)核到 指定地址并跳轉(zhuǎn)執(zhí)行Linux內(nèi)核,否則檢測(cè)是否有握手標(biāo)志位;步驟(4):握手成功后進(jìn)入下載或測(cè)試模式;IRQ USBD中斷到來(lái), 進(jìn)入中斷處理函數(shù),首先判斷USB device中斷的具體觸發(fā)原因,如 USB device RESET、 RESUM或SUSPND中斷,或輸出端口或輸入端口 中斷;如果為輸出中斷,首先判斷是否已完成握手,如果沒(méi)有則接收 數(shù)據(jù),并置位握手標(biāo)志位;由于main—loop()會(huì)在while循環(huán)中等 待2s,所以會(huì)檢測(cè)到次標(biāo)志位,然后檢測(cè)握手信號(hào)是否正確,如果正 確則停止啟動(dòng),進(jìn)入下載模式,接收命令;步驟(5):執(zhí)行命令,操作數(shù)據(jù),;數(shù)據(jù)發(fā)送完后,在mainJoop() 中會(huì)解析這些數(shù)據(jù),得到執(zhí)行命令時(shí)必須的參數(shù),如燒寫的block、 數(shù)據(jù)的長(zhǎng)度、數(shù)據(jù)存放的內(nèi)存地址等并根據(jù)之前的命令,并最終完成 數(shù)據(jù)的燒寫。
3、 根據(jù)權(quán)利要求2所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于所述的握手標(biāo)志位是在USBD中斷里設(shè)置的,當(dāng)Windows端軟 件檢測(cè)到手機(jī)端初始化完成的USB device,便通過(guò)USB端口發(fā)送握手 信號(hào),在BootLoader中斷程序中檢測(cè)到有握手信號(hào)過(guò)來(lái),便置握手 標(biāo)志位為1,在main—loop中檢測(cè)到此標(biāo)志位并正確握手就放棄內(nèi)核 的啟動(dòng),進(jìn)入下載模式。
4、 根據(jù)權(quán)利要求2所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于所述的接受命令分為兩類, 一類是操作數(shù)據(jù)命令,需要進(jìn)入數(shù) 據(jù)傳輸模式; 一類是測(cè)試、調(diào)試或查詢命令;數(shù)據(jù)首先由Windows端 工具打包成一定的格式再按照USB協(xié)議發(fā)送,每個(gè)包的格式為手機(jī) 端需要把數(shù)據(jù)存放的內(nèi)存地址(4byte)+數(shù)據(jù)包的長(zhǎng)度(4byte) +數(shù)據(jù) +checksum(4byte);如果是調(diào)試或査詢命令,則不需要進(jìn)入下載模式, 在mainjoop()中直接執(zhí)行命令;支持的命令包括flash壞塊管理, LCD點(diǎn)亮測(cè)試,鍵盤燈控制,聲音測(cè)試等。
5、 根據(jù)權(quán)利要求2所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于BootLoader方法中接收數(shù)據(jù)或命令都是在USB中斷中完成, 然后在main—loop()中處理,由main—loop ()決定中斷中接受的數(shù)據(jù) 怎么處理,數(shù)據(jù)的發(fā)送過(guò)程都是將大的二進(jìn)制文件分成小包發(fā)送,不 受內(nèi)存大小的限制,而且數(shù)據(jù)的意義,如它是kernel或rootfs都是 由Windows端工具來(lái)決定,提高了 BootLoader的兼容性;每個(gè)數(shù)據(jù) 包和命令都是經(jīng)過(guò)checksum校驗(yàn)的,具有自動(dòng)重發(fā)機(jī)制。
6、 根據(jù)權(quán)利要求2所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于BootLoader方法同Windows操作軟件工具相配合,此工具在 Windows操作系統(tǒng)下用MFC庫(kù)實(shí)現(xiàn),采用開(kāi)源USB驅(qū)動(dòng),其工作流程 與手機(jī)端USBD流程相對(duì)應(yīng),兩端配合完成數(shù)據(jù)的傳輸和下載燒寫;工 具支持單個(gè)文件下載與批處理下載,并支持一些擴(kuò)展命令,另外Log 窗口能清楚的顯示每一步動(dòng)作的過(guò)程。
7、 根據(jù)權(quán)利要求2所述的一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,其特 征在于Windows端工具要先于手機(jī)上電之前啟動(dòng),然后在一個(gè)線程中 不斷輪詢手機(jī)所初始化成的USB device,如果檢測(cè)到,便發(fā)送握手信 號(hào),停住BootLoade的啟動(dòng),然后根據(jù)用戶的選擇,打包數(shù)據(jù),并傳 輸給BootLoader;支持的功能有下載bootLoader, kernel, rootfs和上層GUI;擦除NAND塊;測(cè)試硬件功能,包括屏幕測(cè)試,鍵盤 燈測(cè)試,flash壞塊管理等;支持更通用命令管理,如獲得BootLoader 版本信息,環(huán)境變量信息等。
全文摘要
本發(fā)明屬于移動(dòng)通訊技術(shù)領(lǐng)域,涉及一種手機(jī)啟動(dòng)引導(dǎo)的構(gòu)建方法,特別是一種Linux智能手機(jī)中BootLoader的設(shè)計(jì)方法,本發(fā)明的方法不僅可以實(shí)現(xiàn)手機(jī)上電后初始化設(shè)備然后完成Linux內(nèi)核的加載啟動(dòng),而且可以方便與Windows系統(tǒng)互聯(lián),通過(guò)USB2.0協(xié)議實(shí)現(xiàn)系統(tǒng)軟件的簡(jiǎn)單快速下載,支持多個(gè)USB下載同時(shí)進(jìn)行和每個(gè)USB通道中的批量和自動(dòng)下載,適合大規(guī)模生產(chǎn)的需要,另外還能幫助開(kāi)發(fā)人員方便的進(jìn)行一些底層軟硬件的調(diào)試。
文檔編號(hào)G06F9/445GK101267623SQ20081003596
公開(kāi)日2008年9月17日 申請(qǐng)日期2008年4月11日 優(yōu)先權(quán)日2008年4月11日
發(fā)明者誠(chéng) 王, 偉 謝 申請(qǐng)人:上海聞泰電子科技有限公司