版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2016。保留一切權(quán)利。非經(jīng)本公司,任何和個(gè)人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何形式。商標(biāo)、海思和其他海思商標(biāo)均為市海思半導(dǎo)體的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的產(chǎn)品、服務(wù)或特性等應(yīng)受海思公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的或使用范圍之內(nèi)。除非合同另有約定,海思公司對(duì)本文檔內(nèi)容不做任何明示或默示的或保證。由于產(chǎn)品版本升級(jí)或其他原因,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不任何明示或暗示的擔(dān)保。市海思半導(dǎo)體市龍崗區(qū)坂田:518129地址:總部:http
2、:/客戶服務(wù)郵箱:supHiLoader前 言前言概述本文檔主要介紹的 Loader 整體結(jié)構(gòu)、業(yè)務(wù)開發(fā)。產(chǎn)品版本與本文檔相對(duì)應(yīng)的產(chǎn)品版本如下。讀者對(duì)象本文檔(本指南)主要適用于以下工程師:技術(shù)支持工程師開發(fā)工程師iii產(chǎn)品名稱產(chǎn)品版本Hi3716CV2XXHi3719CV1XXHi3719MV1XXHi3718CV1XXHi3718MV1XXHi3716MV4XXHI3796CV100Hi3796MV1XXHi3798CV1XX/V2XXHI3798MV1XXHiLoader前 言作者信息修訂修訂 內(nèi)容。累積了每次文檔更新的說明。版本的文檔包含以前所有文檔版本的更新iv修訂日期版本修訂說明2
3、013-07-3100B01第一次臨時(shí)版本發(fā)布。2013-12-2501修改 2.3 章節(jié)描述;增加 Hi3716MV400。2014-07-2502修改 1.6、2.6.2 章節(jié)。2015-01-2603修改 2.2.1 章節(jié)步驟 2 的配置項(xiàng)。2015-05-0804新增第 4 章,loader 升級(jí)協(xié)議(HISI、US),僅用于 2015-05-08 以后發(fā)布的 SDK 版本。2015-12-0905新增 HI3796M/HI3798M 及 HI3796C/HI3798C支持2016-03-2506Loader 重構(gòu)。章節(jié)號(hào)章節(jié)名稱作者信息全文全文L64565/G00277009HiLo
4、ader目 錄目錄前 言iii1 方案概述1-概述1-1重要概念1-1代碼. 1-1總體流程1-2協(xié)議類型和升級(jí)方式1-4系統(tǒng)分區(qū)1-5Loader 開發(fā)指引2-12.1 概述2-1Loader 的配置和編譯2-1BootLoader2-1AppLoader2-2Loader 打包工具的使用2-3Loader API 接口2-...6概述2-3觸發(fā)USB 升級(jí)2-3觸發(fā)信號(hào) OTA 升級(jí)2-3觸發(fā)有線信號(hào) OTA 升級(jí)2-4觸發(fā)地面信號(hào) OTA 升級(jí)2-5觸發(fā) IP 升級(jí)2-62.5應(yīng)用場(chǎng)景2-6APP
5、 觸發(fā) OTA 升級(jí)2-6手動(dòng)觸發(fā) OTA 升級(jí)2-7APP 觸發(fā) USB 升級(jí)2-8手動(dòng)觸發(fā) USB 升級(jí)2-8APP 觸發(fā) IP 升級(jí)2-9Loader 程序的調(diào)試2-9調(diào)試日志2-9模擬APP 觸發(fā)升級(jí)2-10vHiLoader目 錄2.6.3 強(qiáng)制升級(jí)2-103 Loader 移植指引3-概述3-1如何配置Tuner3-1如何配置. 3-1如何配置KEYLED3-1如何控制升級(jí)正確的版本3-2升級(jí)結(jié)束后如何處理3-2如何實(shí)現(xiàn)界面語言的切換3-2如何修改手動(dòng)觸發(fā)升級(jí)的方式3-2如何添加新的方式3-3如何添加新的協(xié)議類型3-3如何開發(fā)
6、界面3-3.4-14.1概述4-1TS 流協(xié)議棧4-1TS 流結(jié)構(gòu)4-1HISI OTA 升級(jí)流傳輸協(xié)議4-2HISI MPEG-2 私有分段結(jié)構(gòu)4-24.2.2 HISI數(shù)據(jù)流分段結(jié)構(gòu)圖4-3Download_Control_Section 結(jié)構(gòu)4-4Download_Info 結(jié)構(gòu)4-5Partition_Control_Section 結(jié)構(gòu)4-9Partition_Control 結(jié)構(gòu)4-10Datagram_Section 結(jié)構(gòu)4-12Datagram 結(jié)構(gòu)4-13OTA 升級(jí)流傳輸協(xié)議4-4.3.2MPEG-2 私有分段結(jié)構(gòu)4-15數(shù)據(jù)流分段結(jié)構(gòu)圖4-16Down
7、load_Server_Initiate 結(jié)構(gòu)4-18DownloadInfo_Indication 結(jié)構(gòu)4-21Download_DataBlock 結(jié)構(gòu)4-23U 盤/IP 升級(jí)的數(shù)據(jù)格式4-24viHiLoader插圖目錄插圖目錄圖 1-1 Loader 升級(jí)方案的總體流程1-3圖 1-2 數(shù)據(jù)流圖1-4圖 1-3 BootLoader 方案的系統(tǒng)分區(qū)1-5圖 1-4 AppLoader 方案系統(tǒng)分區(qū)1-5圖 2-1 設(shè)置 loglevel2-10圖 2-2 Loader sle2-10圖 4-1 協(xié)議棧4-1圖 4-2 HISI 升級(jí)數(shù)據(jù)流的格式4-3圖 4-3升級(jí)數(shù)據(jù)流的格式4-17
8、viiHiLoader1 方案概述1方案概述1.1 概述本章主要描述 Loader 相關(guān)的重要概念、總體流程、代碼結(jié)構(gòu)、支持的升級(jí)方式、支持的協(xié)議類型。1.2 重要概念Loader 升級(jí)程序和數(shù)據(jù)的一段程序,是 Loader 的主體。根據(jù) Loader負(fù)責(zé)處理數(shù)據(jù)、協(xié)議升級(jí)程序的運(yùn)行環(huán)境,Loader 分為 AppLoader 和BootLoader 兩種。AppLoaderLoader 升級(jí)程序運(yùn)行于 kernel 環(huán)境,kerner 和 rootfs 經(jīng)過裁剪后,與 Loader 升級(jí)程序及其依賴的驅(qū)動(dòng)組成 initramfs 鏡像,initramfs 鏡像單獨(dú)BootLoader于 lo
9、ader 分區(qū)。Loader 升級(jí)程序運(yùn)行于 boot 環(huán)境,boot、Loader 升級(jí)程序及其依賴的驅(qū)動(dòng)被編譯成BootLoader 鏡像,BootLoader 鏡像于 boot 分區(qū)。大系統(tǒng)SDK 默認(rèn)生成的系統(tǒng)鏡像(包括內(nèi)核、文件系統(tǒng)等)一般稱之為大系統(tǒng),這是相對(duì)AppLoader 來說的,后者往往被稱之為小系統(tǒng)。1.3 代碼Loader 由升級(jí)檢測(cè)程序、Loader 升級(jí)程序和 Loader API 三部分能、BootLoader 代碼路徑以及 AppLoader 代碼路徑如表 1-1 所示。這三部分的功1-1HiLoader1方案概述表1-1 Loader1.4 總體流程不管是 B
10、ootLoader 還是 AppLoader,總體流程如圖 1-1 所示,兩者之間的差異僅在于途中 Start Loader 的處理方式:BootLoader 直接調(diào)用 Loader 升級(jí)程序的函數(shù);AppLoaLoader 首先從 loader 分區(qū)執(zhí)行 Loader 升級(jí)程序的 APP。initramfs 鏡像到 DDR,然后啟動(dòng) initramfs,最后1-2項(xiàng)目功能BootLoader 路徑AppLoader 路徑升級(jí)檢測(cè)程序檢測(cè)是否有升級(jí)需求,則啟動(dòng)Loader 升級(jí)程序source/boot/product/ loader/schedule/source/boot/product/
11、 loader/schedule/Loader 升級(jí)程序1、 負(fù)責(zé)升級(jí)數(shù)據(jù),按協(xié)議數(shù)據(jù)并將后的數(shù)據(jù)到存儲(chǔ)設(shè)備2、 通過 KEYLED、IR 實(shí)現(xiàn)和loader 的配置交互3、 在輸出設(shè)備上(OSD)顯示升級(jí)的進(jìn)度信息、錯(cuò)誤信息、配置信息等source/boot/product/ loader/app/ponent/loader/app/Loader API提供 linux 環(huán)境下供 APP 調(diào)用的讀寫升級(jí)參數(shù)的接口ponent/loader/api/ponent/loader/api/HiLoader1方案概述圖1-1 Loader 升級(jí)方案的總體流程簡單的數(shù)據(jù)流如圖 1-2 所示。1-3Up
12、date Sign exist orNo Manual Trigger UpdateCall Loader API to Write Update Parameter after Checked UpdateRebootRebootFastbootUpdate CheckStart APPStart KernelYesClear Update Sign after Update sucsUpdate SystemSoftwareStart LoaderStartup SystemHiLoader1方案概述圖1-2 數(shù)據(jù)流圖1.5 協(xié)議類型和升級(jí)方式Loader 支持以下幾種協(xié)議。協(xié)議全稱 Sy
13、stem Software Updates,是歐洲數(shù)字廣播(DVB)標(biāo)準(zhǔn)制定的適用于 OTA升級(jí)的系統(tǒng)升級(jí)服務(wù)技術(shù)協(xié)議。HISI OTA 協(xié)議海思制定的適用于 OTA 升級(jí)的協(xié)議。HISI FILE 協(xié)議海思制定的適用用于 USB 和 IP 升級(jí)的協(xié)議,亦稱 US協(xié)議。AppLoader 支持 OTA、USB 和 IP 升級(jí),BootLoader 支持 OTA、USB 升級(jí)。各升級(jí)方式的特點(diǎn)如表 1-2 所示。表1-2 升級(jí)方式特點(diǎn)1-4升級(jí)方式觸發(fā)方式特點(diǎn)OTAAPP 觸發(fā)/前面板手動(dòng)觸發(fā)支持 HISI OTA 協(xié)議支持協(xié)議Call APIUpgradeSave upgrade parame
14、tersData(System Software)(4) Get upgrade datat upgrade paramters Save upgrade dataLoaderloaderdb(3) GeFlash(5) Upgrade data(Syste m Software)Loader APIAPPHiLoader1方案概述1.6 系統(tǒng)分區(qū)deviceinfo 分區(qū)用以保存 stb 私有的配置信息,如廠商信息,硬件版本信息等。loaderdb分區(qū)保存的是 Loader 升級(jí)必需的參數(shù)配置信息,為防止升級(jí)參數(shù)被異常破壞導(dǎo)致無法進(jìn)行升級(jí)操作,(可選)增加 loaderdbbak 分區(qū)對(duì) l
15、oaderdb 分區(qū)進(jìn)行備份。softwareinfo分區(qū)用于版本信息,包括版本號(hào),各分區(qū)版本號(hào),防回滾版本號(hào)。deviceinfo、loaderdb、loaderdbbak、softwareinfo 等分區(qū)flash block,不允許修改;如修改,必須改變相關(guān)代碼。名固定,大小約束為一個(gè)BootLoader 方案的系統(tǒng)分區(qū)劃分例舉如圖 1-3 所示, 用戶可根據(jù)自身需要?jiǎng)澐址謪^(qū)。圖1-3 BootLoader 方案的系統(tǒng)分區(qū)AppLoader 本身需要一個(gè) loader 分區(qū),如需升級(jí) Loader 自身,(可選)增加 loaderbak分區(qū)對(duì) loader 分區(qū)進(jìn)行備份,以防升級(jí)過程中
16、loader 分區(qū)被破壞時(shí)可以用 loaderbak 分區(qū)恢復(fù) loader 分區(qū)。ApptLoader 方案的系統(tǒng)分區(qū)劃分例舉如圖 1-4 所示, 用戶可根據(jù)自身需要?jiǎng)澐址謪^(qū)。圖1-4 AppLoader 方案系統(tǒng)分區(qū)1-5bootbootargsdeviceinfosoftwa reinfoloaderdbloaderdbbakloaderloaderbakbaseparamlogokernelrootfsbootloaderbootargsdeviceinfosoftware infoloaderdbloaderdbbakbaseparamlogokernelrootfs升級(jí)方式觸發(fā)方式
17、特點(diǎn)USBAPP 觸發(fā)/前面板手動(dòng)觸發(fā)支持 HISI FILE 協(xié)議支持 FAT32/NTFS/EXT2/EXT3/EXT4 文件系統(tǒng)格式的 USB 升級(jí)支持 APP 觸發(fā)升級(jí)指定路徑指定文件名的升級(jí)文件支持前面板手動(dòng)觸發(fā)升級(jí)根目錄下文件名為usb_update.bin 的升級(jí)文件IPAPP 觸發(fā)支持 TFTP 傳輸協(xié)議支持 FTP 傳輸協(xié)議支持 HTTP 傳輸協(xié)議HiLoader2 Loader 開發(fā)指引2 Loader 開發(fā)指引2.1 概述本章描述如何編譯、執(zhí)行及調(diào)試 Loader 程序。Loader 的配置和編譯BootLoader步驟 1步驟 2根據(jù)目標(biāo)單板類型選擇 SDK/confi
18、gs 目錄下的對(duì)應(yīng)配置文件替換 SDK/cfg.mak。執(zhí)行 makeBase -config 命令進(jìn)入配置界面,選中如下描述配置項(xiàng):* HiLoader Support - - HiLoader SupportSupport Loader Type (BootLoader) - Uboot -* Build Compressed Fastboot Image -*- Support Usb Drivers -*- Support FAT filesystemBuild Product Code in Fastboot - * BootLoader Config - BootLoader Co
19、nfig* USB Upgrade Support (NEW)Protocol Type (Hisi File Protocol) -* OTA Upgrade Support (NEW)Tuner Type (Cable) -Protocol Type (Hisi OTA Protocol) -執(zhí)行 make distclean & make build 命令,構(gòu)建成功結(jié)束后得到:BootLoader 鏡像(SDK/pub/類型/image/fastboot-burn.bin)2-1HiLoader2 Loader 開發(fā)指引Linux 下的 Loader 庫(ponent/loader/ap
20、i/libhiloader.a 和ponent/loader/api/libhiloader.so)Linux 下的 Loader Sle(SDK/ sle/loader/sle_loader)-結(jié)束2.2.2 AppLoader步驟 1步驟 2根據(jù)目標(biāo)單板類型選擇 SDK/configs 目錄下的對(duì)應(yīng)配置文件替換 SDK/cfg.mak。執(zhí)行 makeBase -config 命令進(jìn)入配置界面,選中如下描述配置項(xiàng): * HiLoader Support - HiLoader SupportSupport Loader Type (AppLoader) -步驟 3執(zhí)行 make distcle
21、an & make build 命令,構(gòu)建成功結(jié)束后得到Boot 鏡像(SDK/pub/Linux 下的 Loader 庫(類型/image/fastboot-burn.bin)ponent/loader/api/libhiloader.a 和ponent/loader/api/libhiloader.so)Linux 下的 Loader Sle(SDK/ sle/loader/sle_loader)等。步驟 4使用 AppLoader 私有 cfg.mak 替換 SDK/cfg.mak,執(zhí)行 make界面,選中如下描述配置項(xiàng):config 命令進(jìn)入配置Component -* AppLoad
22、er Config - AppLoader ConfigOSD Language Type (English) -* USB Upgrade Support (NEW)Protocol Type (Hisi File Protocol) -* IP Upgrade Support (NEW)Protocol Type (Hisi File Protocol) -* OTA Upgrade Support (NEW)Tuner Type (Cable) -(*) Tunort Index (0,3) (NEW)Protocol Type (Hisi OTA Protocol) -步驟 5執(zhí)行 m
23、ake distclean & make build 命令,構(gòu)建成功結(jié)束后得到AppLoader 鏡像(SDK/pub/-結(jié)束類型/image/ apploader.bin)2-2HiLoader2 Loader 開發(fā)指引如需支持 apploader,boot 要用步驟 3 編譯出來的 fastboot-burn.bin,不可用 apploader 配置文件編譯出來的 fastboot-burn.bin2.3 Loader 打包工具的使用關(guān)于如何使用打包工具的詳細(xì)信息請(qǐng)參考HiLoader 工具使用指南文檔。Loader API 接口概述Loader API 提供了一套供 APP 觸發(fā)升級(jí)和查
24、詢升級(jí)參數(shù)的接口。APP 調(diào)用這些接口可以設(shè)置和查詢升級(jí)參數(shù)、查詢版本信息、查詢?cè)O(shè)備信息。API 相互獨(dú)立,不依賴其他接口,不存在調(diào)用的先后順序。本節(jié)舉例說明如何使用 API 接口配置升級(jí)參數(shù)觸發(fā)升級(jí)。2.4.2 觸發(fā) USB 升級(jí)HI_VOID USB_Upgrade(HI_VOID) HI_CHAR *pcFileName = /usb/test/usb_update.bin; HI_LOADER_PARAM_S stLoadaram; memset(&stLoadaram, 0 x00, sizeof(stLoadaram); HI_LOADER_GetParameter(&stLoad
25、aram); stLoad stLoadaraarapgradeType = HI_LOADER_UPGRADE_TYPE_USB;pgradeMode = HI_LOADER_UPGRADE_MODE_BASIC; strncpy(char*)stLoadaram.unParam.stUSBParam.as8FileName,pcFileName, HI_LOADER_FILENAME_LEN - 1); HI_LOADER_SetParameter(&stLoad return;aram);2.4.3 觸發(fā)信號(hào) OTA 升級(jí)HI_VOID OTA_Saite_Upgrade(HI_VOID
26、) HI_LOADER_PARAM_S stLoadaram;2-3HiLoader2 Loader 開發(fā)指引 HI_LOADER_PARAM_OTA_S *pstOTAParam = HI_NULL_PTR; HI_LOADER_PARAM_SAT_S *pstSatParam = HI_NULL_PTR; memset(&stLoadaram, 0 x00, sizeof(stLoadaram); HI_LOADER_GetParameter(&stLoadaram); HI_LOADER_GetParameter(&stLoadaram); stLoad stLoadaraarapgra
27、deType = HI_LOADER_UPGRADE_TYPE_OTA;pgradeMode = HI_LOADER_UPGRADE_MODE_BASIC; pstOTAParam = &stLoadaram.unParam.stOTAParam; pstOTAParam-enSigType = HI_UNF_TUNER_SIG_TYPE_SAT; pstOTAParam-u32TunerID = 0; /*u32 = 7000; /* Tunarameter Config */ pstSatParam = &pstOTAParam-unParam.stSat; pstSatParam-u32
28、IsiID = 0; /*stConnectParam.u32Freq = 3840000; pstSatParam-stConnectParam.u32SymbolRate = 27500000; pstSatParam-stConnectParam.enPolar = HI_UNF_TUNER_FE_POLARIZATION_H; pstSatParam-stConnectParam.u32ScrambleValue = 0; pstSatParam-enLNBer = HI_UNF_TUNER_FE_LNB_ER_OFF; pstOTAParam-unParam.stSat.stLNBC
29、onfig.u32LowLO = 5105; pstOTAParam-unParam.stSat.stLNBConfig.u32HighLO = 5105; HI_LOADER_SetParameter(&stLoadaram);return;2.4.4 觸發(fā)有線信號(hào) OTA 升級(jí)HI_VOID OTA_Calbe_Upgrade(HI_VOID) HI_LOADER_PARAM_S stLoadaram; HI_LOADER_PARAM_OTA_S *pstOTAParam = HI_NULL_PTR; HI_LOADER_PARAM_CAB_S *pstCabParam = HI_NULL
30、_PTR; memset(&stLoadaram, 0 x00, sizeof(stLoadaram); HI_LOADER_GetParameter(&stLoadaram); stLoad stLoadaraarapgradeType = HI_LOADER_UPGRADE_TYPE_OTA;pgradeMode = HI_LOADER_UPGRADE_MODE_BASIC;2-4HiLoader2 Loader 開發(fā)指引 /* Tunarameter Config */ pstOTAParam = &stLoadaram.unParam.stOTAParam; pstOTAParam-e
31、nSigType = HI_UNF_TUNER_SIG_TYPE_CAB; pstOTAParam-u32TunerID = 0; /*u32 = 7000; pstCabParam = &pstOTAParam-unParam.stCab; pstCabParam-stConnectParam.u32Freq = 443000; pstCabParam-stConnectParam.u32SymbolRate = 6875000; pstCabParam-stConnectParam.enModType = HI_UNF_MOD_TYPE_QAM_64; pstCabParam-stConn
32、ectParam.bReverse = HI_FALSE; HI_LOADER_SetParameter(&stLoad return;aram);2.4.5 觸發(fā)地面信號(hào) OTA 升級(jí)HI_VOID OTA_Terestrial_Upgrade(HI_VOID) HI_LOADER_PARAM_S stLoadaram; HI_LOADER_PARAM_OTA_S *pstOTAParam = HI_NULL_PTR; HI_LOADER_PARAM_TER_S *pstTaram = HI_NULL_PTR; memset(&stLoadaram, 0, sizeof(stLoadaram
33、); HI_LOADER_GetParameter(&stLoadaram); stLoad stLoadaraarapgradeType = HI_LOADER_UPGRADE_TYPE_OTA;pgradeMode = HI_LOADER_UPGRADE_MODE_BASIC; /* Tunarameter Config */ pstOTAParam = &stLoadaram.unParam.stOTAParam; pstOTAParam-enSigType = HI_UNF_TUNER_SIG_TYPE_DVB_T; pstOTAParam-u32TunerID = 0; /*u32
34、= 7000; pstTaram = &pstOTAParam-unParam.stTer; pstT pstT pstT pstT pstT pstTaram-u32PL = 0; /*stConnectParam.u32Freq = 443000;aram-stConnectParam.u32BandWidth = 8000;aram-stConnectParam.enModType = HI_UNF_MOD_TYPE_QAM_64; aram-stConnectParam.bReverse = HI_FALSE;aram-stConnectParam.enChannelMode= HI_
35、UNF_TUNER_TER_MODE_BASE;2-5HiLoader2 Loader 開發(fā)指引 pstTaram-stConnectParam.enDVBTPrio= HI_UNF_TUNER_TS_PRIORITY_NONE; HI_LOADER_SetParameter(&stLoad return;aram);2.4.6 觸發(fā) IP 升級(jí)HI_VOID IP_Upgrade(HI_VOID)HI_LOADER_PARAM_S stLoadaram; memset(&stLoadaram, 0 x00, sizeof(stLoadaram); HI_LOADER_GetParameter
36、(&stLoadaram);stLoadstLoadaraarapgradeType = HI_LOADER_UPGRADE_TYPE_IP;pgradeMode = HI_LOADER_UPGRADE_MODE_BASIC;/* IP Parameter Config */ stLoad stLoad stLoad stLoadaram.unParam.stIPParam.enIPCfgType = HI_LOADER_IPCFG_SIC;aram.unParam.stIPParam.enProtType = HI_LOADER_IPPROT_HTTP;aram.unParam.stIPPa
37、ram.ipServer = inet_addr(8);aram.unParam.stIPParam.ipServort = 8080; strncpy(char*)stLoadaram.unParam.stIPParam.as8FileName,ip_update.bin, HI_LOADER_FILENAME_LEN - 1);HI_LOADER_SetParameter(&stLoadreturn;aram);2.5 應(yīng)用場(chǎng)景Loader 編譯完畢后,將 Loader 鏡像(BootLoader 或 AppLoader 鏡像,取決于使用BootLoader 還是 AppLoader)燒寫
38、到對(duì)應(yīng)的 Flash 分區(qū)上,就可以運(yùn)行升級(jí)程序了。2.5.1 APP 觸發(fā) OTA 升級(jí)場(chǎng)景說明APP 將 OTA 升級(jí)參數(shù)(包括頻點(diǎn)參數(shù)、分區(qū),重啟系統(tǒng)進(jìn)行 OTA 升級(jí)。等)以及 OTA 升級(jí)類型標(biāo)志寫入 loaderdb2-6HiLoader2 Loader 開發(fā)指引操作步驟步驟 1步驟 2步驟 3步驟 4步驟 5編譯 Loader 鏡像并燒入設(shè)備對(duì)應(yīng)分區(qū)。使用 HiLoader 工具將升級(jí)鏡像打包成升級(jí) TS 流。配置前端升級(jí)服務(wù)器,并升級(jí) TS 流。運(yùn)行 Loader sle 或運(yùn)行 APP 觸發(fā) OTA 升級(jí)。重啟系統(tǒng),系統(tǒng)自動(dòng)啟動(dòng) Loader 程序進(jìn)入升級(jí)過程,等待升級(jí)結(jié)束。
39、-結(jié)束注意事項(xiàng)無。示例APP 觸發(fā) OTA 升級(jí)代碼參考“2.4.3 觸發(fā)OTA 升級(jí)”章節(jié)。信號(hào) OTA 升級(jí)”、“2.4.4觸發(fā)有線信號(hào)2.5.2 手動(dòng)觸發(fā) OTA 升級(jí)場(chǎng)景說明設(shè)備重啟時(shí)通過前面板輸入強(qiáng)制升級(jí)組合鍵(例:+OK)進(jìn)入 loader 強(qiáng)制升級(jí)模式。如果包含有升級(jí)文件的 USB 設(shè)備被 loader 系統(tǒng)正確識(shí)別,則強(qiáng)制進(jìn)入 USB 升級(jí)模式;否則進(jìn)入 OTA 升級(jí)模式。用戶可以采用不接入 USB 設(shè)備或 USB 設(shè)備中不存放合法升級(jí)文件的方式強(qiáng)制進(jìn)入 OTA 升級(jí)模式。操作步驟步驟 1步驟 2步驟 3步驟 4步驟 5編譯 Loader 鏡像并燒入設(shè)備對(duì)應(yīng)分區(qū)。使用 HiLo
40、ader 工具將升級(jí)鏡像打包成升級(jí) TS 流。配置前端升級(jí)服務(wù)器,并升級(jí) TS 流。確保 USB 設(shè)備中沒有合法的 USB 升級(jí)文件,或直接移除 USB 設(shè)備。重啟設(shè)備,按下前面板強(qiáng)制升級(jí)組合鍵,USB 升級(jí)文件檢測(cè)失敗,進(jìn)入 OTA 升級(jí)模式。步驟 6根據(jù) OSD 的窗口提示配置升級(jí)參數(shù),按確認(rèn)鍵執(zhí)行升級(jí)。-結(jié)束注意事項(xiàng)NA2-7HiLoader2 Loader 開發(fā)指引實(shí)例NA2.5.3 APP 觸發(fā) USB 升級(jí)場(chǎng)景說明APP 將 USB 升級(jí)的文件路徑(含文件名)以及 USB 升級(jí)類型標(biāo)志寫入 loaderdb 分區(qū),重啟系統(tǒng)進(jìn)行 USB 升級(jí)。操作步驟步驟 1步驟 2編譯 Loade
41、r 鏡像并燒入設(shè)備對(duì)應(yīng)分區(qū)。使用 HiLoader 工具將升級(jí)鏡像打包成 USB 升級(jí)文件,假設(shè)文件名稱是usb_update.bin。將 usb_update.bin 拷貝到 USB 設(shè)備的特定目錄下,此目錄必須跟觸發(fā) USB 升級(jí)時(shí)配置步驟 3的目錄一致。假設(shè)拷貝到/usb 目錄,將 USB 設(shè)備到 USB 接口。步驟 4運(yùn)行 Loader sle 或運(yùn)行 APP 觸發(fā) USB 升級(jí),配置 USB 升級(jí)路徑為 USB 升級(jí)文件所在路徑。根據(jù)步驟 3 的假設(shè),配置 USB 升級(jí)文件名為/usb/usb_update.bin。步驟 5重啟系統(tǒng),系統(tǒng)自動(dòng)啟動(dòng) Loader 程序進(jìn)入升級(jí)過程,等待
42、升級(jí)結(jié)束。-結(jié)束注意事項(xiàng)APP 觸發(fā)的 USB 升級(jí)可以指定升級(jí)文件的名稱以及文件路徑。示例APP 觸發(fā) USB 升級(jí)的代碼參考“2.4.3 觸發(fā)信號(hào) OTA 升級(jí)”章節(jié)。2.5.4 手動(dòng)觸發(fā) USB 升級(jí)場(chǎng)景說明設(shè)備重啟時(shí)通過前面板輸入強(qiáng)制升級(jí)組合鍵(例:+OK)進(jìn)入 loader 強(qiáng)制升級(jí)模式。如果包含有升級(jí)文件的 USB 設(shè)備被 loader 系統(tǒng)正確識(shí)別,則強(qiáng)制進(jìn)入 USB 升級(jí)模式;否則進(jìn)入 OTA 升級(jí)模式。用戶在執(zhí)行強(qiáng)制升級(jí)前將包含有合法升級(jí)文件的 USB設(shè)備接入設(shè)備,可以強(qiáng)制進(jìn)入 USB 升級(jí)模式。操作步驟步驟 1 編譯 Loader 鏡像并燒入設(shè)備對(duì)應(yīng)分區(qū)。步驟 2 使用 H
43、iLoader 工具將升級(jí)鏡像打包成 USB 升級(jí)文件,并命名為 usb_update.bin。2-8HiLoader2 Loader 開發(fā)指引步驟 3步驟 4步驟 5將打包出來的 USB 升級(jí)文件拷入 USB 設(shè)備的根目錄。重啟設(shè)備,同時(shí)按下前面板強(qiáng)制升級(jí)組合鍵,系統(tǒng)將啟動(dòng) Loader 程序進(jìn)入升級(jí)過程。設(shè)備自動(dòng)檢測(cè) USB 升級(jí)文件,如果升級(jí)文件被識(shí)別,進(jìn)入 USB 強(qiáng)制升級(jí)模式。-結(jié)束注意事項(xiàng)NA2.5.5 APP 觸發(fā) IP 升級(jí)場(chǎng)景說明APP 將 IP 升級(jí)參數(shù)(包括傳輸協(xié)議、服務(wù)器 ip、升級(jí)文件名、本地 ip 及網(wǎng)關(guān)等)寫入loaderdb 分區(qū),重啟系統(tǒng)進(jìn)行 IP 升級(jí)。操作
44、步驟步驟 1步驟 2步驟 3步驟 4步驟 5編譯 Loader 鏡像并燒入設(shè)備對(duì)應(yīng)分區(qū)。使用 HiLoader 工具將升級(jí)鏡像打包成 USB 升級(jí)文件。配置前端升級(jí)服務(wù)器,并將打包出來的 USB 升級(jí)文件拷入升級(jí)服務(wù)器。運(yùn)行 Loader sle 或運(yùn)行 APP 配置 IP 升級(jí)參數(shù)。重啟系統(tǒng),系統(tǒng)自動(dòng)啟動(dòng) Loader 程序進(jìn)入升級(jí)過程,等待升級(jí)結(jié)束。-結(jié)束注意事項(xiàng)只有 AppLoader 支持 IP 升級(jí)。示例APP 觸發(fā) IP 升級(jí)的代碼參考“2.4.6 觸發(fā) IP 升級(jí)”章節(jié)。Loader 程序的調(diào)試調(diào)試日志在 BootLoader 方案中,可在 Fastboot令模式下更改 logl
45、evel(范圍:0-4)的值來調(diào)整log 的信息,loglevel 為 0 的時(shí)候關(guān)閉 log 信息,loglevel 為 4 的時(shí)候打開所有的 log 信息,如圖 2-1 所示。2-9HiLoader2 Loader 開發(fā)指引圖2-1 設(shè)置 loglevel在 AppLoader 方案中,可以使用 loglevel=4 ./loader 的方式運(yùn)行 loader,輸出調(diào)試日志。2.6.2 模擬 APP 觸發(fā)升級(jí)Loader 開發(fā)過程中,常常需要進(jìn)行調(diào)試,在系統(tǒng)還沒有集成 APP 的情況下,可運(yùn)行Loader sle 觸發(fā)升級(jí)來調(diào)試 Loader 程序,如圖 2-2 所示。圖2-2 Loade
46、r slesle_loader 的具體使用請(qǐng)參考 SDK/sle/loader 下的 readme 文檔描述。2.6.3 強(qiáng)制升級(jí)單板重啟時(shí)可通過前面板輸入+Ok 組合鍵進(jìn)入 loader 強(qiáng)制升級(jí)模式。如果包含有升級(jí)文件的 USB 設(shè)備被 loader 系統(tǒng)正確識(shí)別,則強(qiáng)制進(jìn)行 USB 升級(jí);否則進(jìn)入 OTA升級(jí)模式,用戶可通過紅外或前面板按鍵輸入 OTA 參數(shù)并進(jìn)行升級(jí)。2-10HiLoader3 Loader 移植指引3 Loader 移植指引3.1 概述不同的客戶對(duì) Loader 有不同的需求,本章描述如何在現(xiàn)有 Loader 方案的基礎(chǔ)上移植和開發(fā)(定制)客戶自己的 Loader。3
47、.2 如何配置 Tuner不同的單板 Tuner 硬件相關(guān)的屬性不同,請(qǐng)參考 download_ota.c 對(duì) Tuner 進(jìn)行配置。3.3 如何配置主要接口介紹uiIRInit ()IR 設(shè)備初始化。uiIRDeInit()IR 設(shè)備去初始化。uiIRGetValue ()獲取 IR 設(shè)備輸入鍵碼,該鍵碼與 UI_KEYVALUE_E 對(duì)應(yīng),通過修改UI_KEYVALUE_E 切換不同 IR 設(shè)備。3.4 如何配置 KEYLED主要接口介紹uiKEYLEDInit ()KEYLED 設(shè)備初始化,通過修改 UI_D_KEYLED_TYPE 宏定義配置 KEYLED 型號(hào)。uiKEYLEDDeI
48、nit () KEYLED 設(shè)備去初始化。3-1HiLoader3 Loader 移植指引uiKEYLEDKeyConvert()將 KEYLED 鍵碼轉(zhuǎn)化為 IR 鍵碼, KEYLED 鍵碼對(duì)外不可見,用戶可以通過擴(kuò)展UI_KEYVALUE_E 枚舉的方式將 KEYLED 鍵碼開放給上層應(yīng)用。uiKEYLEDGetValue () 獲取 IR 設(shè)備輸入鍵碼。 uiKEYLEDDisplay()在 KEYLED 設(shè)備上顯示這符串,通過 s_au8DigitalCode 數(shù)組配置不同型號(hào)設(shè)備的字符轉(zhuǎn)換碼。3.5 如何控制升級(jí)正確的版本loaderCheckVerMatch 是當(dāng)前系統(tǒng)版本與升級(jí)版
49、本的比較函數(shù)。如需要滿足一定的條件才能升級(jí),則修改此接口的實(shí)現(xiàn),返回 HI_SUCS 則升級(jí),否則不升級(jí)。本方案中沒有對(duì)當(dāng)前系統(tǒng)版本與升級(jí)版本做比較,檢測(cè)到升級(jí)版本就進(jìn)行升級(jí)。3.6 升級(jí)結(jié)束后如何處理修改接口 loaderUpgradeDone 實(shí)現(xiàn)對(duì)升級(jí)結(jié)束(失敗或成功)后的處理,是自動(dòng)重啟系統(tǒng)還是等待用戶掉電重啟。本方案中自動(dòng)重啟。3.7 如何實(shí)現(xiàn)界面語言的切換AppLoader 通過 makeComponent -config 命令來切換界面語言。* AppLoader Config - AppLoader ConfigOSD Language Type (English) -Boot
50、Loader 方案中實(shí)現(xiàn)英文顯示,如需其他語言顯示,需要擴(kuò)展字符輸出函數(shù)以支持其他語言的顯示。3.8 如何修改手動(dòng)觸發(fā)升級(jí)的方式修改接口 Loader_CheckManuForceUpgrade 來修改手動(dòng)觸發(fā)升級(jí)的方式。3.9 如何添加新的方式實(shí)現(xiàn)如下函數(shù),就可以添加一種新的方式(為方式名稱)。這些函數(shù)被協(xié)議類型的相關(guān)函數(shù)調(diào)用,可參考 Loader 已支持的協(xié)議類型中的方式調(diào)用這些函數(shù)。3-2HiLoader3 Loader 移植指引DOWNLOAD_Init方式初始化,執(zhí)行如內(nèi)存分配、建立與升級(jí)數(shù)據(jù)源端(前端或服務(wù)器)的連接等操作。DOWNLOAD_getdata從升級(jí)數(shù)據(jù)源端獲取數(shù)據(jù)。D
51、OWNLOAD_DeInit方式去初始化,執(zhí)行如內(nèi)存、銷毀與升級(jí)數(shù)據(jù)源端(前端或服務(wù)器)的連接等操作。DOWNLOAD_USB_GetFileSize獲取升級(jí)文件大小。3.10 如何添加新的協(xié)議類型實(shí)現(xiàn)如下函數(shù),就可以添加一種新的協(xié)議類型(為協(xié)議類型名稱)。這些函數(shù)被Loader 的主控流程調(diào)用,在 protocol.c 中增加新協(xié)議的適配代碼。PROT_Init協(xié)議初始化,可執(zhí)行內(nèi)存分配等操作,同時(shí)調(diào)用升級(jí)數(shù)據(jù)源端的連接。方式初始化接口建立系統(tǒng)與PROT_DeInit協(xié)議去初始化,可執(zhí)行內(nèi)存統(tǒng)與升級(jí)數(shù)據(jù)源端的連接。等操作,同時(shí)調(diào)用方式去初始化接口銷毀系PROT_GetVerInfo從數(shù)據(jù)源端
52、獲取升級(jí)數(shù)據(jù)的版本信息,會(huì)調(diào)用到方式的獲取數(shù)據(jù)的接口。PROT_GetPartitionInfo從數(shù)據(jù)源端獲取升級(jí)數(shù)據(jù)的鏡像分區(qū)信息,會(huì)調(diào)用到口。方式的獲取數(shù)據(jù)的接PROT_Pros從數(shù)據(jù)源端獲取升級(jí)鏡像的數(shù)據(jù),會(huì)調(diào)用到方式的獲取數(shù)據(jù)的接口。3.11 如何開發(fā)界面請(qǐng)參考 Loader APP 程序 ui 目錄代碼。ui_gfx.c 圖形組件封裝ui_display.c 顯示參數(shù)配置及顯示單元的初始化與去初始ui_window.c 窗口管理組件 ui_win_main.c 升級(jí)進(jìn)度窗口管理 ui_win_msgbox.c 提示信息窗口ui_win_setting.c 手動(dòng)升級(jí)配置界面3-3HiL
53、oader4.1 概述本章節(jié)將紹 OTA 升級(jí)流傳輸協(xié)議(包括 HISI OTA 及件協(xié)議。IP 升級(jí)文件與 U 盤升級(jí)文件協(xié)議一樣。OTA 兩種協(xié)議)與 U 盤升級(jí)文4.1.1 TS 流協(xié)議棧TS 流升級(jí)數(shù)據(jù)的封裝協(xié)議。協(xié)議棧如圖 4-1 所示。圖4-1 協(xié)議棧通過將目標(biāo)數(shù)據(jù)(data)分割成大小合適的多個(gè)小塊,將每個(gè)小塊打包成一個(gè)數(shù)據(jù)包(datagram),再將數(shù)據(jù)包組符合 MPEG-2 標(biāo)準(zhǔn)的私有分段,最后形成了 TS 流。4.1.2 TS 流結(jié)構(gòu)Loader 通過將升級(jí)數(shù)據(jù)打包封裝,最終形成符合 MPEG-2 標(biāo)準(zhǔn)的 TS(Transport Stream)流,TS 流格式詳細(xì)請(qǐng)參見“
54、ISO/IEC 13818-1”。4-1HiLoaderHISI OTA 升級(jí)流傳輸協(xié)議HISI MPEG-2 私有分段結(jié)構(gòu)HISI OTA 升級(jí)協(xié)議利用 MPEG-2 定義的私有分段(private section)作為數(shù)據(jù)的載體。采用的 MPEG-2 私有分段的結(jié)構(gòu)如表 4-1 所示。詳細(xì)描述請(qǐng)參見“ISO/IEC 13818-1 協(xié)議”。表4-1 HISI 私有分段4-2SyntaxNo.of bitsIdentifierprivate_section()-table_id8uimsbfsection_syntax_indicator1bslbf3bslbfprivate_section
55、_length12uimsbfif (section_syntax_indicator = 0)-for (i = 0; i N; i+)-private_data_byte8uimsbf-else-table_id_exten16uimsbf2bslbfver_number5uimsbfcurrent_next_indicator1bslbfsection_number8uimsbflast_section_number8uimsbffor (i = 0; i N; i+)-private_data_byte8bslbf-CRC3232rpchof-HiLoader注:section_syn
56、tax_indicator 字段為 1,表明在private_section_length 字段之后有table_id_exten字段,私有數(shù)據(jù)跟在last_section_number 字段之后。等4.2.2 HISI數(shù)據(jù)流分段結(jié)構(gòu)圖HISI 的數(shù)據(jù)分段定義如圖 4-2 所示。圖4-2 HISI 升級(jí)數(shù)據(jù)流的格式其中:每一個(gè)Partition 對(duì)應(yīng)于 Flash 的一個(gè)分區(qū),或?qū)?yīng) Flash 上某一個(gè)應(yīng)用程序。每一個(gè)Partition由若干個(gè)datagram 包,每個(gè)Partition 最多包含 512MB 數(shù)據(jù),Hiloader 打包工具做了拆包每個(gè)Partition 最大支持 4G。規(guī)
57、定每一個(gè)datagram 最多包含 8KB 有效數(shù)據(jù),每個(gè)datagram 包最多包含 8個(gè) SECTION,每個(gè) SECTION 最多包含 1024 個(gè)字節(jié)數(shù)據(jù)。升級(jí)數(shù)據(jù)包格式說明如下:1 個(gè)partition 對(duì)應(yīng)某 1 個(gè)待更新的的區(qū)域或應(yīng)用程序甚至 1 個(gè)文件,或者 1 個(gè) Flash1 個(gè)partition 由若干個(gè) datagram 包組成1 個(gè)datagram1 個(gè)到 8 個(gè)不等datagram section 組成(目前 HiLoader 只支持 1個(gè) datagram 包含 1 個(gè)datagram section,因此升級(jí)文件最大是 64MB)。最多有216 個(gè) exten_
58、table_id,一個(gè) exten_table_id 能接收 1 個(gè) section,所以當(dāng)前最大能接收 64MB,理論上 64*8MB。針對(duì)該限制,HiLoader 打包工具已經(jīng)做了內(nèi)部拆包,因此可以做打升級(jí)包時(shí)單分區(qū)的鏡像大小可最大支持 4G數(shù)據(jù)流分段如表 4-2 所示。表4-2 HISI 數(shù)據(jù)流分段4-3Table_idSection_numberTbl_Ext_IDMeaning/Usage0 xFE0 x000 x00Download_Control_SectionTable id specified in the download control section0 x010 x00
59、Partition_Control(partition 1)0 x01Datagram 10 x02Datagram 20 x03Datagram 3HiLoader以下的 SECTION 在同一個(gè) TS 流中,為相同的:table_id=0 xFE,section_number=0 x00,table_id_exten section 為 Download_Control_Section=0 x0000 這 3 個(gè)值決定該download_table_id=0,section_number=(1.n)partition_number,其中table_id_exten=0 x0000 決定該
60、section 為每個(gè) partition 數(shù)據(jù)區(qū)的包頭 SECTIONdownload_table_id=0,section_number=(1.n)partition_number,table_id_exten=(1.n)datagram_number,last_section_number(值小于等于8)表示每個(gè)datagram 數(shù)據(jù)包有 section 的個(gè)數(shù),在 SECTION 的內(nèi)容中Datagram_current_section_number 表示 datagram 數(shù)據(jù)包中的當(dāng)前 SECTION4.2.3 Download_Control_Section 結(jié)構(gòu)Download
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西電力職業(yè)技術(shù)學(xué)院《社會(huì)保障史》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉林體育學(xué)院《解剖和生理(生理)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南食品藥品職業(yè)學(xué)院《高等數(shù)理統(tǒng)計(jì)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南大眾傳媒職業(yè)技術(shù)學(xué)院《國際物流與供應(yīng)鏈管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】《壓強(qiáng)》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版(2024)初中物理八年級(jí)下冊(cè)
- 高考物理總復(fù)習(xí)《力與物體的平衡》專項(xiàng)測(cè)試卷含答案
- 年產(chǎn)5萬臺(tái)模塊化操動(dòng)機(jī)構(gòu)及高壓斷路器生產(chǎn)線項(xiàng)目可行性研究報(bào)告寫作模板-備案審批
- 鄭州軟件職業(yè)技術(shù)學(xué)院《鋼結(jié)構(gòu)設(shè)計(jì)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江電力職業(yè)技術(shù)學(xué)院《光電技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長安大學(xué)《個(gè)體防護(hù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 污水土地處理系統(tǒng)中雙酚A和雌激素的去除及微生物研究
- HG-T+21527-2014回轉(zhuǎn)拱蓋快開人孔
- JTS-167-2-2009重力式碼頭設(shè)計(jì)與施工規(guī)范
- DBJ-T15-81-2022 建筑混凝土結(jié)構(gòu)耐火設(shè)計(jì)技術(shù)規(guī)程
- GB/T 22849-2024針織T恤衫
- 山東省淄博市2023-2024學(xué)年高二上學(xué)期教學(xué)質(zhì)量檢測(cè)化學(xué)試題
- 人工智能在電影與影視制作中的創(chuàng)新與效果提升
- 新生兒腸絞痛的課件
- 酒店民宿自媒體營銷策劃
- 消除母嬰傳播培訓(xùn)課件
- 通用電子嘉賓禮薄
評(píng)論
0/150
提交評(píng)論