專利名稱:一種程序運(yùn)行方法及機(jī)頂盒的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機(jī)頂盒技術(shù)領(lǐng)域,尤其涉及一種程序運(yùn)行方法及機(jī)頂盒。
背景技術(shù):
機(jī)頂盒的硬件設(shè)計要求必須帶有FLASH存儲器,該FLASH存儲器用來存儲機(jī)頂盒的軟件程序,包括程序的代碼和數(shù)據(jù)。一般地,機(jī)頂盒的軟件程序包括兩個部分,基礎(chǔ)程序 (Loader)和主應(yīng)用程序(Main程序),Loader和Main程序可以為單獨(dú)的兩個程序,也可以將Loader嵌入Main程序。另外,機(jī)頂盒通常還包括業(yè)務(wù)應(yīng)用程序,執(zhí)行這些業(yè)務(wù)應(yīng)用程序可使機(jī)頂盒具備相應(yīng)的功能?,F(xiàn)有的機(jī)頂盒的程序運(yùn)行方案為機(jī)頂盒啟動時,機(jī)頂盒首先從FLASH存儲器中讀取Loader,并將Loader加載至內(nèi)存DDR (Double Data Rate,雙倍速率同步動態(tài)隨機(jī)存儲器);機(jī)頂盒再從FLASH存儲器中讀取Main程序,將Main程序加載至DDR中,然后再跳轉(zhuǎn)至程序起始位置執(zhí)行加載的程序。對各種業(yè)務(wù)應(yīng)用程序的執(zhí)行也采用類似的方式,首先從FLASH存儲器中讀取并加載至DDR中,然后跳轉(zhuǎn)到DDR執(zhí)行程序。現(xiàn)有方案中,運(yùn)行的所有軟件程序均從FLASH存儲器中進(jìn)行讀取和加載,這要求機(jī)頂盒的所有軟件程序均存儲于 FLASH存儲器中,對FLASH存儲器的存儲空間大小的要求較高;然而,機(jī)頂盒的硬件一旦固定,F(xiàn)LASH存儲器的存儲空間大小則相應(yīng)固定,有限的FLASH存儲空間將無法再適應(yīng)于機(jī)頂盒的應(yīng)用擴(kuò)展。為了解決FLASH存儲空間限制的技術(shù)問題,現(xiàn)有技術(shù)中采用壓縮技術(shù)來擴(kuò)充 FLASH存儲空間,具體為將機(jī)頂盒的所有軟件程序(包括數(shù)據(jù)和代碼)進(jìn)行壓縮后,再存儲于FLASH存儲器中。壓縮技術(shù)雖然能滿足部分FLASH存儲空間的擴(kuò)充需求,但任何壓縮技術(shù)都存在極限,其可擴(kuò)充的FLASH存儲空間也是有限的,無法真正解決FLASH存儲空間的限制問題;另外,采用壓縮技術(shù)后,需要額外增加解壓縮的時間,影響了機(jī)頂盒的啟動時間。如何通過改變機(jī)頂盒的程序運(yùn)行方式來解決FLASH存儲器的存儲空間限制問題成為一個研究方向。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種程序運(yùn)行方法及機(jī)頂盒,能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種程序運(yùn)行方法,包括
當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載至內(nèi)
存;
所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序; 所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。其中,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序,包括
所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn); 所述機(jī)頂盒在鎖定的頻點(diǎn)搜索NIT (Network Information Table,網(wǎng)絡(luò)信息表),查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)信息;
所述機(jī)頂盒在鎖定的頻點(diǎn)搜索PAT (Program Association Table,節(jié)目輔助表),在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PMT (Program Map Table,節(jié)目映射表); 所述機(jī)頂盒解析所述PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID (Packet IDdentifier,標(biāo)志碼傳輸包);
所述機(jī)頂盒根據(jù)所述PID和所述頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。其中,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序,包括
所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn);
所述機(jī)頂盒根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的
PID ;
所述機(jī)頂盒根據(jù)所述設(shè)置的PID,從所述鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序;
其中,所述機(jī)頂盒的FLASH存儲器預(yù)先存儲所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息。其中,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序之后,將獲取的所述應(yīng)用程序加載至內(nèi)存之前,還包括
所述機(jī)頂盒對獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn),當(dāng)所述機(jī)頂盒檢驗(yàn)成功后,執(zhí)行所述應(yīng)用程序的加載步驟。其中,所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。相應(yīng)地,本發(fā)明實(shí)施例還提供了一種機(jī)頂盒,包括
基礎(chǔ)加載模塊,用于當(dāng)機(jī)頂盒啟動時,讀取機(jī)頂盒內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載至內(nèi)存;
程序獲取模塊,用于執(zhí)行所述基礎(chǔ)加載模塊加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序;
程序執(zhí)行模塊,用于將所述程序獲取模塊獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。其中,所述程序獲取模塊包括
鎖頻單元,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn); 第一查找單元,用于在所述鎖頻單元鎖定的頻點(diǎn)搜索OTT,查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)信息;
第二查找單元,用于在所述鎖頻單元鎖定的頻點(diǎn)搜索PAT,在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PMT ;
PID獲取單元,用于解析所述第二查找單元查找到的PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID ;
程序獲取單元,用于根據(jù)所述PID獲取單元獲取的PID和所述第一查找單元查找的頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。其中,所述程序獲取模塊包括
鎖頻單元,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn); 設(shè)置單元,用于根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的
PID ;
程序接收單元,用于根據(jù)所述設(shè)置單元設(shè)置的PID,從所述鎖頻單元鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。其中,所述機(jī)頂盒還包括
校驗(yàn)?zāi)K,用于對所述程序獲取模塊獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)成功后,通知所述程序執(zhí)行模塊對所述應(yīng)用程序進(jìn)行加載和運(yùn)行。其中,所述機(jī)頂盒還包括
FLASH存儲器,用于存儲所述機(jī)頂盒的基礎(chǔ)程序,以及存儲所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息;
其中,所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。實(shí)施本發(fā)明實(shí)施例,具有如下有益效果
本發(fā)明實(shí)施例的在機(jī)頂盒啟動時,從機(jī)頂盒內(nèi)部的FLASH存儲器中讀取Loader并加載和運(yùn)行,再從網(wǎng)絡(luò)中獲取Loader對應(yīng)的機(jī)頂盒的其他應(yīng)用程序進(jìn)行加載運(yùn)行,由于FLASH 存儲器僅需要存儲機(jī)頂盒的基礎(chǔ)程序(Loader),機(jī)頂盒除Loader以外的其他應(yīng)用程序(包括Main程序和各種業(yè)務(wù)應(yīng)用程序)均可從網(wǎng)絡(luò)中獲取,從而節(jié)約了機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不再受到FLASH存儲器的存儲空間的限制,方便了機(jī)頂盒的應(yīng)用擴(kuò)展。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明的機(jī)頂盒的第一實(shí)施例的結(jié)構(gòu)示意圖; 圖2為本發(fā)明的機(jī)頂盒的第二實(shí)施例的結(jié)構(gòu)示意圖3為本發(fā)明的機(jī)頂盒的程序獲取模塊的第一實(shí)施例的結(jié)構(gòu)示意圖; 圖4為本發(fā)明的機(jī)頂盒的程序獲取模塊的第二實(shí)施例的結(jié)構(gòu)示意圖; 圖5為本發(fā)明的程序運(yùn)行方法的第一實(shí)施例的流程圖; 圖6為本發(fā)明的程序運(yùn)行方法的第二實(shí)施例的流程圖; 圖7為本發(fā)明的程序運(yùn)行方法的第三實(shí)施例的流程圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。請參見圖1,為本發(fā)明的機(jī)頂盒的第一實(shí)施例的結(jié)構(gòu)示意圖;所述機(jī)頂盒包括 基礎(chǔ)加載模塊10,用于當(dāng)機(jī)頂盒啟動時,讀取機(jī)頂盒內(nèi)部的FLASH存儲器中存儲的基
礎(chǔ)程序并加載至內(nèi)存。本實(shí)施例中,機(jī)頂盒內(nèi)部的FLASH存儲器中存儲了機(jī)頂盒的基礎(chǔ)程序(Loader), 所述基礎(chǔ)加載模塊10在機(jī)頂盒啟動時,即機(jī)頂盒上電時,自動從FLASH存儲器中讀取 Loader,并將Loader加載至DDR。所述基礎(chǔ)加載模塊10可以為機(jī)頂盒主芯片中的加載程序,其對Loader的讀取和加載過程與現(xiàn)有技術(shù)相同,在此不贅述。程序獲取模塊20,用于執(zhí)行所述基礎(chǔ)加載模塊10加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序 (Main程序)和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。以Main程序?yàn)槔龌A(chǔ)加載模塊10加載了所述Loader后,所述程序獲取模塊20開始執(zhí)行Loader,機(jī)頂盒同時初始化相關(guān)功能模塊,包括初始化調(diào)制解調(diào)模塊。Loader自動從網(wǎng)絡(luò)中獲取對應(yīng)的Main程序(即獲取與Loader屬于同一機(jī)頂盒的Main程序)??梢岳斫獾氖?,當(dāng)需要獲取機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序時可類似分析,在此不贅述。與現(xiàn)有技術(shù)不同,本實(shí)施例中Main程序和/或各種業(yè)務(wù)應(yīng)用程序不再存儲于機(jī)頂盒的FLASH存儲器中,而是存儲于網(wǎng)絡(luò)中,該網(wǎng)絡(luò)可以為廣電廣播網(wǎng)絡(luò)或其他互聯(lián)網(wǎng)。因此,機(jī)頂盒的FLASH存儲器的存儲空間大小僅需要滿足Loader的存放大小即可,大大減輕了對FLASH存儲器的存儲空間的需求。程序執(zhí)行模塊30,用于將所述程序獲取模塊20獲取的所述應(yīng)用程序加載至內(nèi)存, 并運(yùn)行加載的所述應(yīng)用程序。依上述例子,所述程序執(zhí)行模塊30將所述程序獲取模塊20獲取的Main程序加載至DDR,并將程序跳轉(zhuǎn)至DDR運(yùn)行加載的Main程序。所述程序執(zhí)行模塊30對Main程序的加載和運(yùn)行的過程與現(xiàn)有技術(shù)相同,在此不贅述??梢岳斫獾氖?,當(dāng)所述程序獲取模塊20 獲取的為其他業(yè)務(wù)應(yīng)用程序時,所述程序執(zhí)行模塊30對其他業(yè)務(wù)應(yīng)用程序的加載運(yùn)行過程可類似分析,在此不贅述。本發(fā)明實(shí)施例能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。請參見圖2,為本發(fā)明的機(jī)頂盒的第二實(shí)施例的結(jié)構(gòu)示意圖;與上一實(shí)施例相同, 所述機(jī)頂盒包括基礎(chǔ)加載模塊10、程序獲取模塊20和程序執(zhí)行模塊30。本實(shí)施例中,所述機(jī)頂盒還包括
校驗(yàn)?zāi)K40,用于對所述程序獲取模塊20獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)成功后,通知所述程序執(zhí)行模塊30對所述應(yīng)用程序進(jìn)行加載和運(yùn)行。
所述校驗(yàn)?zāi)K40校驗(yàn)所述程序獲取模塊20獲取的Main程序和/或各種業(yè)務(wù)應(yīng)用程序的完整性和正確性,具體地,所述校驗(yàn)?zāi)K40可采用CRC(Cyclic redundancy check, 循環(huán)冗余校驗(yàn))校驗(yàn)法,對應(yīng)用程序進(jìn)行校驗(yàn)。所述校驗(yàn)?zāi)K40采用CRC校驗(yàn)的過程與現(xiàn)有技術(shù)類似,在此不贅述。若所述校驗(yàn)?zāi)K40校驗(yàn)成功,所述程序執(zhí)行模塊30則對所述程序獲取模塊20獲取的所述應(yīng)用程序進(jìn)行加載和運(yùn)行;若所述校驗(yàn)?zāi)K40校驗(yàn)失敗,則所述程序獲取模塊20重新從網(wǎng)絡(luò)中獲取的應(yīng)用程序進(jìn)行后續(xù)操作。FLASH存儲器50,用于存儲所述機(jī)頂盒的基礎(chǔ)程序,以及存儲所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息。FLASH存儲器50為機(jī)頂盒硬件設(shè)計中必不可少的器件,與現(xiàn)有技術(shù)相同,本實(shí)施例中,F(xiàn)LASH存儲器50不再存儲機(jī)頂盒的所有軟件程序,僅需要存儲所述機(jī)頂盒的基礎(chǔ)程序Loader即可,大大節(jié)約了 FLASH存儲器空間。當(dāng)然,所述FLASH存儲器50還可用于存儲 Loader對應(yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息,以加快所述程序獲取模塊20對應(yīng)用程序的獲取,加快機(jī)頂盒程序的啟動速度。本發(fā)明實(shí)施例能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。為了更清楚地說明本發(fā)明,下面將對本發(fā)明的機(jī)頂盒的程序獲取模塊進(jìn)行詳細(xì)介紹。請參見圖3,為本發(fā)明的機(jī)頂盒的程序獲取模塊的第一實(shí)施例的結(jié)構(gòu)示意圖;所述程序獲取模塊20包括
鎖頻單元201,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn)。具體實(shí)現(xiàn)中,為了加快機(jī)頂盒程序的啟動過程,一般地,所述鎖頻單元201鎖定 Loader對應(yīng)的應(yīng)用程序的主頻點(diǎn),以Main程序?yàn)槔?,所述鎖頻單元201鎖定Main程序的主頻點(diǎn),該主頻點(diǎn)一般為廣電定義的固定頻點(diǎn),該主頻點(diǎn)也可以為用戶設(shè)置的頻點(diǎn);若所述鎖頻單元201鎖定Main程序的主頻點(diǎn)失敗,也可以鎖定Main程序的備用頻點(diǎn),該備用頻點(diǎn)可以為用戶設(shè)置的頻點(diǎn),也是可選的頻點(diǎn)。第一查找單元202,用于在所述鎖頻單元201鎖定的頻點(diǎn)搜索NIT,查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)信息。設(shè)定所述鎖頻單元201成功鎖定Main程序的主頻點(diǎn),所述第一查找單元202則在 Main程序的主頻點(diǎn)搜索NIT,找到Main程序?qū)?yīng)的頻點(diǎn)信息。第二查找單元203,用于在所述鎖頻單元201鎖定的頻點(diǎn)搜索PAT,在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PMT。所述第二查找單元203在Main程序的主頻點(diǎn)搜索PAT,找到當(dāng)前信息流中可以獲取Main程序的PMT。PID獲取單元204,用于解析所述第二查找單元203查找到的PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID。所述PID獲取單元204解析所述第二查找單元203查找到的PMT,獲取組成所述 Main程序的PID。程序獲取單元205,用于根據(jù)所述PID獲取單元204獲取的PID和所述第一查找單元202查找的頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。
所述程序獲取單元205根據(jù)所述PID獲取單元204獲取的PID,從網(wǎng)絡(luò)中獲取對應(yīng)的Main程序的數(shù)據(jù)包,并將該數(shù)據(jù)包與所述第一查找單元202查找到Main程序的頻點(diǎn)信息組合為完整的Main程序。請參見圖4,為本發(fā)明的機(jī)頂盒的程序獲取模塊的第二實(shí)施例的結(jié)構(gòu)示意圖;所述程序獲取模塊20包括
鎖頻單元206,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn)。以Main程序?yàn)槔瑸榱朔奖沆`活的獲取Main程序,可將Main程序相關(guān)的PID和頻點(diǎn)信息在相關(guān)信息表中進(jìn)行描述,該相關(guān)信息表被預(yù)先存儲于FLASH存儲器中,所述鎖頻單元206執(zhí)行Loader,Loader根據(jù)預(yù)存的相關(guān)信息表中Main程序的主頻點(diǎn),鎖定網(wǎng)絡(luò)中Main程序的主頻點(diǎn)??梢岳斫獾氖?,本實(shí)施例的鎖頻單元206與上一實(shí)施例的鎖頻單元 201可合并為同一單元。設(shè)置單元207,用于根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID。如前述,相關(guān)信息表中記載了 Main程序的相關(guān)頻點(diǎn)(特定頻點(diǎn))及相關(guān)的PID (特定頻點(diǎn)相關(guān)信息),所述設(shè)置單元207根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置組成Main程序的 PID。程序接收單元208,用于根據(jù)所述設(shè)置單元207設(shè)置的PID,從所述鎖頻單元206 鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。所述程序接收單元208根據(jù)所述設(shè)置單元207設(shè)置的PID,從網(wǎng)絡(luò)中鎖定的特定頻點(diǎn)接收Main程序。需要說明的是,本實(shí)施例中,包括Main程序的特定頻點(diǎn)(如主頻點(diǎn)或備用頻點(diǎn)) 和特定頻點(diǎn)相信息(如組成Main程序的PID)的相關(guān)信息表被預(yù)先存儲于機(jī)頂盒的FLASH 存儲器中,這些信息存儲后即被固定下來,每次進(jìn)行Main程序的獲取時,可跳過搜索直接設(shè)置PID進(jìn)行Main程序數(shù)據(jù)的接收,加快了機(jī)頂盒程序的啟動速度。上述兩個實(shí)施例中,均以機(jī)頂盒的Main程序?yàn)槔M(jìn)行說明,可以理解的是,當(dāng)需要啟動機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序時,可類似分析,在此不贅述。本發(fā)明實(shí)施例從網(wǎng)絡(luò)中獲取機(jī)頂盒的應(yīng)用程序,能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。為了更清楚地說明本發(fā)明,下面將對本發(fā)明的機(jī)頂盒所執(zhí)行的程序運(yùn)行方法進(jìn)行詳細(xì)介紹。請參見圖5,為本發(fā)明的程序運(yùn)行方法的第一實(shí)施例的流程圖;所述方法包括 S101,當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載
至內(nèi)存。本實(shí)施例中,機(jī)頂盒內(nèi)部的FLASH存儲器中存儲了機(jī)頂盒的基礎(chǔ)程序(Loader), 所述SlOl在機(jī)頂盒啟動時,即機(jī)頂盒上電時,自動從FLASH存儲器中讀取Loader,并將 Loader加載至DDR。所述SlOl可以采用機(jī)頂盒主芯片中的加載程序,其對Loader的讀取和加載過程與現(xiàn)有技術(shù)相同,在此不贅述。S102,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序 (Main程序)和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。以Main程序?yàn)槔鯯lOl加載了所述Loader后,所述S102開始執(zhí)行Loader,機(jī)頂盒同時初始化相關(guān)功能模塊,包括初始化調(diào)制解調(diào)模塊。Loader自動從網(wǎng)絡(luò)中獲取對應(yīng)的Main程序(即獲取與Loader屬于同一機(jī)頂盒的Main程序)??梢岳斫獾氖牵?dāng)需要獲取機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序時可類似分析,在此不贅述。與現(xiàn)有技術(shù)不同,本實(shí)施例中Main程序和/或各種業(yè)務(wù)應(yīng)用程序不再存儲于機(jī)頂盒的FLASH存儲器中,而是存儲于網(wǎng)絡(luò)中,該網(wǎng)絡(luò)可以為廣電廣播網(wǎng)絡(luò)或其他互聯(lián)網(wǎng)。因此,機(jī)頂盒的FLASH存儲器的存儲空間大小僅需要滿足Loader的存放大小即可,大大減輕了對FLASH存儲器的存儲空間的需求。S103,所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。依上述例子,所述S103將所述S102獲取的Main程序加載至DDR,并將程序跳轉(zhuǎn)至 DDR運(yùn)行加載的Main程序。所述S103對Main程序的加載和運(yùn)行的過程與現(xiàn)有技術(shù)相同, 在此不贅述??梢岳斫獾氖牵?dāng)所述程序獲取模塊20獲取的為其他業(yè)務(wù)應(yīng)用程序時,所述 S103對其他業(yè)務(wù)應(yīng)用程序的加載運(yùn)行過程可類似分析,在此不贅述。本發(fā)明實(shí)施例能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。請參見圖6,為本發(fā)明的程序運(yùn)行方法的第二實(shí)施例的流程圖;所述方法包括 S201,當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載
至內(nèi)存。本實(shí)施例中,所述S201與上一實(shí)施例的SlOl步驟相同,在此不贅述。S202,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn)。具體實(shí)現(xiàn)中,為了加快機(jī)頂盒程序的啟動過程,一般地,所述S202鎖定Loader對應(yīng)的應(yīng)用程序的主頻點(diǎn),以Main程序?yàn)槔?,所述S202鎖定Main程序的主頻點(diǎn),該主頻點(diǎn)一般為廣電定義的固定頻點(diǎn),該主頻點(diǎn)也可以為用戶設(shè)置的頻點(diǎn);若所述S202鎖定Main程序的主頻點(diǎn)失敗,也可以鎖定Main程序的備用頻點(diǎn),該備用頻點(diǎn)可以為用戶設(shè)置的頻點(diǎn),也是可選的頻點(diǎn)。S203,所述機(jī)頂盒在鎖定的頻點(diǎn)搜索OTT,查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)fn息。設(shè)定所述S202成功鎖定Main程序的主頻點(diǎn),所述S203則在Main程序的主頻點(diǎn)搜索NIT,找到Main程序?qū)?yīng)的頻點(diǎn)信息。S204,所述機(jī)頂盒在鎖定的頻點(diǎn)搜索PAT,在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PMT。所述S204在Main程序的主頻點(diǎn)搜索PAT,找到當(dāng)前信息流中可以獲取Main程序的 PMT。S205,所述機(jī)頂盒解析所述PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID。
所述S205解析所述S204查找到的PMT,獲取組成所述Main程序的PID。S206,所述機(jī)頂盒根據(jù)所述PID和所述頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。所述S206根據(jù)所述S205獲取的PID,從網(wǎng)絡(luò)中獲取對應(yīng)的Main程序的數(shù)據(jù)包,并將該數(shù)據(jù)包與所述S203查找到Main程序的頻點(diǎn)信息組合為完整的Main程序。本實(shí)施例中,所述S202-S206為上一實(shí)施例中的S102的具體細(xì)化步驟。S207,所述機(jī)頂盒對獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn)。所述S207校驗(yàn)所述S206獲取的Main程序的完整性和正確性,具體地,所述S207 可采用CRC校驗(yàn)法,對Main程序進(jìn)行校驗(yàn)。所述S207采用CRC校驗(yàn)的過程與現(xiàn)有技術(shù)類似,在此不贅述。S208,判斷校驗(yàn)是否成功,若判斷結(jié)果為是,轉(zhuǎn)入S209 ;否則,轉(zhuǎn)入S206。S209,所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。本實(shí)施例中,所述S209與上一實(shí)施例的S103步驟相同,在此不贅述。本實(shí)施例僅以機(jī)頂盒的Main程序?yàn)槔M(jìn)行說明,可以理解的是,當(dāng)需要啟動機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序時,可類似分析,在此不贅述。本發(fā)明實(shí)施例的在機(jī)頂盒啟動時,從機(jī)頂盒內(nèi)部的FLASH存儲器中讀取Loader 并加載和運(yùn)行,再從網(wǎng)絡(luò)中獲取Loader對應(yīng)的機(jī)頂盒的其他應(yīng)用程序進(jìn)行加載運(yùn)行,由于 FLASH存儲器僅需要存儲機(jī)頂盒的基礎(chǔ)程序(Loader),機(jī)頂盒除Loader以外的其他應(yīng)用程序(包括=Main程序和各種業(yè)務(wù)應(yīng)用程序)均可從網(wǎng)絡(luò)中獲取,從而節(jié)約了機(jī)頂盒的FLASH 存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不再受到FLASH存儲器的存儲空間的限制,方便了機(jī)頂盒的應(yīng)用擴(kuò)展。請參見圖7,為本發(fā)明的程序運(yùn)行方法的第三實(shí)施例的流程圖;所述方法包括 S301,當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載
至內(nèi)存。本實(shí)施例中,所述S301與圖5所示實(shí)施例中的SlOl步驟相同,在此不贅述。S302,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn)。以Main程序?yàn)槔?,為了方便靈活的獲取Main程序,可將Main程序相關(guān)的PID和頻點(diǎn)信息在相關(guān)信息表中進(jìn)行描述,該相關(guān)信息表被預(yù)先存儲于FLASH存儲器中,所述S302 執(zhí)行Loader,Loader根據(jù)預(yù)存的相關(guān)信息表中Main程序的主頻點(diǎn),鎖定網(wǎng)絡(luò)中Main程序的主頻點(diǎn)。S303,所述機(jī)頂盒根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID。如前述,相關(guān)信息表中記載了 Main程序的相關(guān)頻點(diǎn)(特定頻點(diǎn))及相關(guān)的PID (特定頻點(diǎn)相關(guān)信息),所述S303根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置組成Main程序的PID。S304,所述機(jī)頂盒根據(jù)所述設(shè)置的PID,從所述鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。所述S304根據(jù)所述S303設(shè)置的PID,從網(wǎng)絡(luò)中鎖定的特定頻點(diǎn)接收Main程序。需要說明的是,本實(shí)施例中,包括Main程序的特定頻點(diǎn)(如主頻點(diǎn)或備用頻點(diǎn))和特定頻點(diǎn)相信息(如組成Main程序的PID)的相關(guān)信息表被預(yù)先存儲于機(jī)頂盒的FLASH 存儲器中,這些信息存儲后即被固定下來,每次進(jìn)行Main程序的獲取時,可跳過搜索直接設(shè)置PID進(jìn)行Main程序數(shù)據(jù)的接收,加快了機(jī)頂盒程序的啟動速度。S305,所述機(jī)頂盒對獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn)。S306,判斷校驗(yàn)是否成功,若判斷結(jié)果為是,轉(zhuǎn)入S307 ;否則,轉(zhuǎn)入S304。S307,所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。本實(shí)施例中,所述S305-S307與上一實(shí)施例中的S207-S209步驟相同,在此不贅述。本實(shí)施例僅以機(jī)頂盒的Main程序?yàn)槔M(jìn)行說明,可以理解的是,當(dāng)需要啟動機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序時,可類似分析,在此不贅述。本發(fā)明實(shí)施例的在機(jī)頂盒啟動時,從機(jī)頂盒內(nèi)部的FLASH存儲器中讀取Loader 并加載和運(yùn)行,再從網(wǎng)絡(luò)中獲取Loader對應(yīng)的機(jī)頂盒的其他應(yīng)用程序進(jìn)行加載運(yùn)行,由于 FLASH存儲器僅需要存儲機(jī)頂盒的基礎(chǔ)程序(Loader),機(jī)頂盒除Loader以外的其他應(yīng)用程序(包括=Main程序和各種業(yè)務(wù)應(yīng)用程序)均可從網(wǎng)絡(luò)中獲取,從而節(jié)約了機(jī)頂盒的FLASH 存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不再受到FLASH存儲器的存儲空間的限制,方便了機(jī)頂盒的應(yīng)用擴(kuò)展。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random Access Memory, RAM)等。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種程序運(yùn)行方法,其特征在于,包括當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載至內(nèi)存;所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序; 所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。
2.如權(quán)利要求1所述的方法,其特征在于,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序,包括所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn); 所述機(jī)頂盒在鎖定的頻點(diǎn)搜索網(wǎng)絡(luò)信息表NIT,查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)信息;所述機(jī)頂盒在鎖定的頻點(diǎn)搜索節(jié)目輔助表PAT,在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的節(jié)目映射表PMT ;所述機(jī)頂盒解析所述PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的標(biāo)志碼傳輸包PID ;所述機(jī)頂盒根據(jù)所述PID和所述頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。
3.如權(quán)利要求1所述的方法,其特征在于,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序,包括所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn);所述機(jī)頂盒根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID ;所述機(jī)頂盒根據(jù)所述設(shè)置的PID,從所述鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序;其中,所述機(jī)頂盒的FLASH存儲器預(yù)先存儲所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息。
4.如權(quán)利要求1所述的方法,其特征在于,所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序之后,將獲取的所述應(yīng)用程序加載至內(nèi)存之前,還包括所述機(jī)頂盒對獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn),當(dāng)所述機(jī)頂盒檢驗(yàn)成功后,執(zhí)行所述應(yīng)用程序的加載步驟。
5.如權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。
6.一種機(jī)頂盒,其特征在于,包括基礎(chǔ)加載模塊,用于當(dāng)機(jī)頂盒啟動時,讀取機(jī)頂盒內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載至內(nèi)存;程序獲取模塊,用于執(zhí)行所述基礎(chǔ)加載模塊加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序;程序執(zhí)行模塊,用于將所述程序獲取模塊獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。
7.如權(quán)利要求6所述的機(jī)頂盒,其特征在于,所述程序獲取模塊包括 鎖頻單元,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的至少一個頻點(diǎn);第一查找單元,用于在所述鎖頻單元鎖定的頻點(diǎn)搜索OTT,查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的頻點(diǎn)信息;第二查找單元,用于在所述鎖頻單元鎖定的頻點(diǎn)搜索PAT,在當(dāng)前信息流中查找所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PMT ;PID獲取單元,用于解析所述第二查找單元查找到的PMT,獲取組成所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID ;程序獲取單元,用于根據(jù)所述PID獲取單元獲取的PID和所述第一查找單元查找的頻點(diǎn)信息,獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。
8.如權(quán)利要求6所述的機(jī)頂盒,其特征在于,所述程序獲取模塊包括 鎖頻單元,用于執(zhí)行加載的所述基礎(chǔ)程序,鎖定網(wǎng)絡(luò)中的特定頻點(diǎn);設(shè)置單元,用于根據(jù)預(yù)存的特定頻點(diǎn)相關(guān)信息,設(shè)置所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的PID ;程序接收單元,用于根據(jù)所述設(shè)置單元設(shè)置的PID,從所述鎖頻單元鎖定的特定頻點(diǎn)接收所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序。
9.如權(quán)利要求6所述的機(jī)頂盒,其特征在于,還包括校驗(yàn)?zāi)K,用于對所述程序獲取模塊獲取的所述應(yīng)用程序的完整性和正確性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)成功后,通知所述程序執(zhí)行模塊對所述應(yīng)用程序進(jìn)行加載和運(yùn)行。
10.如權(quán)利要求6-9任一項(xiàng)所述的機(jī)頂盒,其特征在于,還包括FLASH存儲器,用于存儲所述機(jī)頂盒的基礎(chǔ)程序,以及存儲所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序的特定頻點(diǎn)和特定頻點(diǎn)相關(guān)信息;其中,所述基礎(chǔ)程序與所述應(yīng)用程序?yàn)橥粰C(jī)頂盒的軟件程序,所述機(jī)頂盒的基礎(chǔ)程序?qū)?yīng)于所述機(jī)頂盒的至少一個應(yīng)用程序;所述應(yīng)用程序包括所述機(jī)頂盒的主應(yīng)用程序和/或所述機(jī)頂盒的各種業(yè)務(wù)應(yīng)用程序。
全文摘要
本發(fā)明實(shí)施例公開了一種程序運(yùn)行方法,包括當(dāng)機(jī)頂盒啟動時,機(jī)頂盒讀取其內(nèi)部的FLASH存儲器中存儲的基礎(chǔ)程序并加載至內(nèi)存;所述機(jī)頂盒執(zhí)行加載的所述基礎(chǔ)程序,從網(wǎng)絡(luò)中獲取所述基礎(chǔ)程序?qū)?yīng)的應(yīng)用程序;所述機(jī)頂盒將獲取的所述應(yīng)用程序加載至內(nèi)存,并運(yùn)行加載的所述應(yīng)用程序。本發(fā)明實(shí)施例還公開了一種機(jī)頂盒。本發(fā)明能夠節(jié)約機(jī)頂盒的FLASH存儲器的存儲空間,使機(jī)頂盒的程序運(yùn)行不受FLASH存儲器的存儲空間限制,方便機(jī)頂盒的應(yīng)用擴(kuò)展。
文檔編號H04N21/43GK102184114SQ201110130158
公開日2011年9月14日 申請日期2011年5月19日 優(yōu)先權(quán)日2011年5月19日
發(fā)明者葉新民 申請人:深圳創(chuàng)維數(shù)字技術(shù)股份有限公司