<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM-Linux的高清數(shù)字機(jī)頂盒軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

          基于ARM-Linux的高清數(shù)字機(jī)頂盒軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2010-06-18 來(lái)源:網(wǎng)絡(luò) 收藏

          Builder主要支持3種搜索方式:
          (1)盲掃。根據(jù)預(yù)置頻點(diǎn)搜索節(jié)目信息,建立完整節(jié)目數(shù)據(jù)庫(kù)。
          (2)網(wǎng)絡(luò)搜索。根據(jù)輸入頻點(diǎn)搜索NIT表,根據(jù)網(wǎng)絡(luò)信息搜索該網(wǎng)絡(luò)的所有節(jié)目信息,建立完整的網(wǎng)絡(luò)節(jié)目信息數(shù)據(jù)庫(kù)。
          (3)手動(dòng)搜索。根據(jù)輸入頻點(diǎn)搜索該頻點(diǎn),建立該頻點(diǎn)完整的節(jié)目信息數(shù)據(jù)庫(kù)。
          2.2 PSI模塊
          PSI模塊需要Demux模塊提供Section數(shù)據(jù)的搜索功能,其建立在Demux驅(qū)動(dòng)之上,為EPG、Builder等模塊提供完整表及條件捕獲接口。PSI模塊結(jié)構(gòu)圖如圖3所示。

          PSI模塊提供2種得到表方式:
          GetTable:通過該功能接口,直接得到表數(shù)據(jù)返回,如果超時(shí)沒有得到表數(shù)據(jù),返回超時(shí)。
          Capture:通過該功能接口,先提出表申請(qǐng),通過異步通信方式獲得表結(jié)構(gòu)并通知應(yīng)用模塊。
          在捕獲方式中都有3種模式:
          (1)Update Mode:在得到版本更新時(shí)通知應(yīng)用模塊。
          (2)Complete Mode:當(dāng)?shù)玫酵暾斫Y(jié)構(gòu)時(shí)通知應(yīng)用模塊。
          (3)Section Mode:當(dāng)接收到Section數(shù)據(jù)時(shí)候就立即通知應(yīng)用模塊。
          2.3 DBaseMgr模塊
          該模塊是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),主要功能是對(duì)頻道、頻點(diǎn)、系統(tǒng)信息、EPG等信息的存儲(chǔ)與管理,以及對(duì)節(jié)目頻點(diǎn)的添加、刪除、排序、查找、編輯等。該模塊主要與Builder、EPG、USIF、Player 4個(gè)模塊交互,并通過與Flash交互進(jìn)行物理操作。為了保證數(shù)據(jù)元素操作的效率,避免產(chǎn)生大量的內(nèi)存碎片,也為了元素操作方便,該以靜動(dòng)結(jié)合的思路采用靜態(tài)雙向鏈表的數(shù)據(jù)結(jié)構(gòu)。在多個(gè)進(jìn)程或線程同時(shí)對(duì)同一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),要考慮同步互斥機(jī)制了。在對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何操作之前先對(duì)數(shù)據(jù)庫(kù)加鎖,當(dāng)數(shù)據(jù)庫(kù)操作完成之后,再解鎖,這樣就保證了數(shù)據(jù)庫(kù)操作的一致性。數(shù)據(jù)庫(kù)模塊結(jié)構(gòu)如圖4所示。

          數(shù)據(jù)庫(kù)管理系統(tǒng)功能特點(diǎn)主要有以下幾點(diǎn):
          (1)功能完備。該模塊需要提供完備的功能接口,包括數(shù)據(jù)庫(kù)的創(chuàng)建、管理以及刪除等基本操作。另還需要滿足多視窗操作。
          (2)多用戶操作。本系統(tǒng)采用的是嵌入式Linux系統(tǒng),它是一個(gè)多用戶分時(shí)系統(tǒng),所以該數(shù)據(jù)庫(kù)需要保證同時(shí)滿足多用戶操作需要,保證系統(tǒng)的安全。
          (3)數(shù)據(jù)完整。本系統(tǒng)屬于嵌入式系統(tǒng),該模塊必須保證掉電后數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性。
          從前幾節(jié)的內(nèi)容可以看出,有關(guān)節(jié)目的操作與PSI表的處理有著十分密切的關(guān)系。這是因?yàn)镻SI表的分析管理直接影響到節(jié)目數(shù)據(jù)庫(kù)的內(nèi)容,而節(jié)目的各種操作又都是與數(shù)據(jù)庫(kù)緊密相連的。節(jié)目操作管理部分的軟件主要可分成3大部分:PSI表處理模塊、節(jié)目數(shù)據(jù)庫(kù)模塊和節(jié)目操作模塊。其中PSI處理模塊主要完成PSI表的各種操作,如表的獲取、分析及管理等;節(jié)目數(shù)據(jù)庫(kù)模塊主要完成關(guān)于數(shù)據(jù)庫(kù)的操作,如數(shù)據(jù)庫(kù)的初始化、建立、內(nèi)容的讀寫及更新等;節(jié)目操作模塊則有關(guān)節(jié)目的操作,如節(jié)目的搜索、刪除、恢復(fù)、選擇等。這3部分有機(jī)結(jié)合起來(lái)就形成了節(jié)目操作的整體軟件模塊。
          3 機(jī)應(yīng)用程序的開發(fā)
          機(jī)應(yīng)用程序主要用戶交互選單的顯示等功能,因此選擇MiniGUI開源軟件開發(fā)機(jī)應(yīng)用程序。
          MiniGUI作為嵌入式Linux系統(tǒng)下的一個(gè)輕量級(jí)圖形用戶界面支持系統(tǒng)已被應(yīng)用到很多實(shí)際項(xiàng)目中。與其他嵌入式GUI相比,其具有系統(tǒng)資源消耗小、可配置和可定制性高、穩(wěn)定性高、可移植性好等優(yōu)勢(shì)。
          MiniGUI具有良好的軟件架構(gòu),通過抽象層IAL、GAL將MiniGUI上層和底層操作系統(tǒng)隔離開來(lái)。MiniGUI的應(yīng)用程序一般通過支持庫(kù)、操作系統(tǒng)和驅(qū)動(dòng)程序接口以及MiniGUI自身提供的API來(lái)實(shí)現(xiàn)自己的功能。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();