基于網絡加載的嵌入式BootLoader的設計與實現
該方案的執行邏輯可以用圖2所示。本文引用地址:http://www.104case.com/article/148141.htm
2 基于網絡加載的BootLoader的應用實現
本文設計的基于網絡加載的嵌入式BootLoader應用于DVB-C電視機頂盒產品中,在DVB-C機頂盒中,一般有網口用于與內容服務器進行交互,如VOD及網頁瀏覽器等功能。其硬件框圖組成如圖3所示。
該DVB-C電視機頂盒中,CPU是Sunplus公司生產的32位雙核RISC微控制器SPH1003。此外,系統還集成有Semsung公司的Tuner,其功能是從cable中調制出TS流,其內容為電視節目流及電視節目輔助信息(如EPG,電視圖文信息)等。通過電視機頂盒的集成網口可以實現電視機頂盒軟件(主要是嵌入式Linux內核,根文件系統及應用程序三個部分)的下載與啟動。
在該DVB—C機頂盒中,BootLoader的裝載程序主要是實現從網絡下載嵌入式Linux內核并且啟動系統。在由BootLoader完成系統的硬件初始化后,程序將會跳轉到網絡Loader程序中,由它驅動網卡,并啟動tftp請求,從網絡服務器端通過tftp協議下載指定文件,并運行起來,其軟件運行如1.3部分。這種應用可以有效在利用機盒中的網卡網絡結構,從而降低機頂盒的整體成本(少去flash/ROM芯片及其周邊控制硬件等),同時也有利于及時更新應用程序及嵌入式內核等,實現機頂盒瘦客戶端目的和及時維護功能。
3 BootLoader引導裝載過程的測試與分析
3.1 測試用例設計
在DVB-C機頂盒引導裝載過程的測試中,主要包括單元測試與集成測試兩個方面。因此在設計測試用倒時,主要有單元測試用例及集成測試用例。其測試用例設計如表1、表2所示。
3.2 測試結果分析
根據上表測試用例的設計,分析結果如下:
1)在單元測試中,根據每個函數的功能及測試結果要求,分別進行代碼覆蓋率的測試、參數邊界值測試及函數運行結果的測試,其測試結果全都能達到程序要求;
2)在集成測試中,對網絡環境的測試主要集中在:正常的網絡環境,運行不正常的網絡環境兩方面,程序對這兩種情況能夠正確地識別且做出不同的響應;對不同的目標文件進行了下載測試,分別比較原文件與下載到SDRAM的內容,兩者完全一致,且在多次下載測試中成功率達到100%;對DVB-C機頂盒的啟動過程及時間進行了專項測試,這項測試是BootLoader引導裝載程序最重要的性能測試,其啟動過程的成功率達到100%,啟動時間大致為1 s。
4 結束語
文中介紹的基于網絡加載的BootLoader整套設計與解決方案,具有良好的模塊結構和可擴展性,為應用于其它系統奠定了基礎。同時,在實際產品設計中已大量應用在DVB-C機頂盒中,該DVB-C機頂盒與一般機頂盒相比,節省20元左右,在批量生產中(十萬臺左右),可實現上百萬元的經濟效益,因此該方案具有很強的市場競爭力。
評論