當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]摘要:隨著數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)的高速發(fā)展,建立在其基礎(chǔ)上的嵌入式系統(tǒng)也已經(jīng)廣泛應(yīng)用于人們生活、工作的各個領(lǐng)域。本文介紹了基于S3C2410和嵌入式Linux操作系統(tǒng)的電影列表系統(tǒng)設(shè)計(jì)的實(shí)現(xiàn)過程。該系統(tǒng)基于嵌入式

摘要:隨著數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)的高速發(fā)展,建立在其基礎(chǔ)上的嵌入式系統(tǒng)也已經(jīng)廣泛應(yīng)用于人們生活、工作的各個領(lǐng)域。本文介紹了基于S3C2410和嵌入式Linux操作系統(tǒng)的電影列表系統(tǒng)設(shè)計(jì)的實(shí)現(xiàn)過程。該系統(tǒng)基于嵌入式開發(fā)平臺搭建,以Framebuffer實(shí)現(xiàn)對JPEG格式圖片、文字的各種效果顯示和外設(shè)鼠標(biāo)的控制等。

引言

隨著新媒體的進(jìn)步,網(wǎng)絡(luò)媒體產(chǎn)品的日益發(fā)展,互聯(lián)網(wǎng)將“顛覆”電視的傳統(tǒng)地位。新媒體提供了豐富的媒體形態(tài)和多樣化的收視方式,如點(diǎn)播、回看、下載等,使其有了交互功能和更長的生命周期。因此,交互式網(wǎng)絡(luò)電視(IPTV)的出現(xiàn)是必然的結(jié)果。電影列表是IPTV中數(shù)字多媒體內(nèi)容最為關(guān)鍵的節(jié)目來源,即電視節(jié)目導(dǎo)航系統(tǒng),主要用來描述提供給電視觀眾的所有節(jié)目的信息,是構(gòu)成交互電視的重要技術(shù)之一。在IPTV業(yè)務(wù)中,用戶可通過電影列表功能來了解電視電影節(jié)目的名稱、播放時間和內(nèi)容梗概等相關(guān)信息,并實(shí)現(xiàn)對節(jié)目的快速檢索和訪問,進(jìn)行頻道選擇或視頻點(diǎn)播等操作。

1 系統(tǒng)環(huán)境的選擇與配置

1.1 系統(tǒng)軟硬件平臺選擇

嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶應(yīng)用程序4部分組成。本系統(tǒng)選擇x86處理器和

Linux操作系統(tǒng)作為系統(tǒng)開發(fā)環(huán)境,嵌入式ARM系列微處理器和嵌入式Linux操作系統(tǒng)作為系統(tǒng)運(yùn)行平臺。

作為學(xué)校實(shí)驗(yàn)室開放基金項(xiàng)目,本系統(tǒng)選擇學(xué)院實(shí)驗(yàn)室已有的JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。JXARM9-2410實(shí)驗(yàn)箱采用三星公司的S3C2410微處理器,是一款為手持設(shè)備設(shè)計(jì)的低功耗、高集成度的基于ARM920T核的微處理器。它集成了外部存儲器控制器、LCD控制器、ADC和觸摸屏接口等,現(xiàn)在廣泛應(yīng)用于PDA、移動通信、路由器、工業(yè)控制等領(lǐng)域。常見的通用型嵌入式操作系統(tǒng)有Linux、VxWorks、Win dows CE等。Linux是以Unix為基礎(chǔ)發(fā)展而成的操作系統(tǒng),能夠支持ARM、MIPS、ALPHA、x86、PowerPC等多種系列的嵌入式微處理器。Linux操作系統(tǒng)最大的特性就是開源性和可裁剪性,除此之外,Linux操作系統(tǒng)還有內(nèi)核高效穩(wěn)定、良好的可移植性、支持多種文件系統(tǒng)等優(yōu)點(diǎn),有利于Linux在嵌入式設(shè)備中的應(yīng)用。

1.2 編譯器的選擇與配置

本系統(tǒng)選用C語言編寫源碼、編譯生成在ARM平臺上的程序,因此需要在Linux環(huán)境下安裝標(biāo)準(zhǔn)的C開發(fā)環(huán)境和交叉編譯器arm-linux-gcc。使用命令sudo apt-getinstall gcc g++ libgccl libg++make gdb安裝C開發(fā)環(huán)境。安裝交叉編譯器步驟如下:

①下載編譯器源文件arm-linux-gcc-3.4.1.tar.bz2,使用tar命令進(jìn)行解壓此文件。

②將解壓后形成的arm文件夾拷貝到usr/local/目錄下,現(xiàn)在交叉編譯程序集都在/usr/local/arm/3.4.1/bin目錄下。

③修改環(huán)境變量,把交叉編譯器的路徑加入到PATH中,并使用命令source/root/.bashrc使新的環(huán)境變量生效。

2 ARM9嵌入式電影列表軟件設(shè)計(jì)

在本系統(tǒng)中主要完成的任務(wù)是對所存在的電影信息的目錄進(jìn)行檢索,通過解析生成電影節(jié)目菜單,將其可用信息主要以圖片和文字的方式通過列表的形式顯示出來,給用戶一個直觀的操作界面,以獲取節(jié)目的有用信息。

2.1 Framebuffer初始化

Framebuffer(幀緩沖)是Linux內(nèi)核的一種圖形設(shè)備驅(qū)動接口,提供了LCD控制器的抽象性描述。它將LCD控制器上的顯存抽象成一種字符設(shè)備,應(yīng)用程序通過定義好的接口可以訪問LCD控制器的顯存,直接對顯示緩沖區(qū)進(jìn)行讀/寫操作。用戶只需要直接向Framebuffer顯示緩沖區(qū)寫入數(shù)據(jù)就可以更新顯示屏的輸出。Framebuffer的設(shè)備文件一般是/dev/fb0、/dev/fb1等,其使用方法如下:

2.2 圖片顯示

本系統(tǒng)使用Libjpeg庫在Linux下顯示圖片。Libjpeg是一個被廣泛使用的jpeg壓縮/解壓縮函數(shù)庫,它能夠讀寫JPEG格式的圖像文件,通常這類文件是以.jpg或者.jpeg為后綴名的。通過Libjpeg庫,應(yīng)用程序可以每次從jpeg壓縮圖像中讀取一個或多個掃描線,而諸如顏色空間轉(zhuǎn)換、降采樣/增采樣、顏色量化等由Libjpeg完成。對于Libjpeg而言,圖像數(shù)據(jù)是一個二維的像素矩陣。對于彩色圖像,每個像素通常用三個分量表示,即R、G、B三個分量,每個分量用一個字節(jié)表示,因此每個分量的取值范圍為0~255;對于灰度圖像,每個像素通常用一個分量表示,一個分量同樣由一個字節(jié)表示,取值范圍為0~255。因此,本系統(tǒng)中只要將系統(tǒng)中需要顯示的JPEG圖片進(jìn)行解碼為bmp像素點(diǎn),再通過Framebuffer設(shè)備寫入應(yīng)用程序空間就可以實(shí)現(xiàn)圖片的顯示。通過Libjpeg對JPEG圖片進(jìn)行解碼的過程如下:

調(diào)用jpeg_start_decompress()函數(shù)之后需要為解壓后的掃描線上的所有像素點(diǎn)分配存儲空間,這個空間的大小由圖像輸出的寬度、高度和每個像素的字節(jié)數(shù)決定。JPEG解壓縮對象cinfo中output_width和output_height分別表示圖像輸出的寬度和高度,output_components表示字節(jié)數(shù)。

對掃描線的讀取是按照從上到下的順序進(jìn)行的,即圖像最上方的掃描線最先被jpeg_read_scanlines()讀入存儲空間中,緊接著是第二個掃描線,最后是圖像底邊的掃描線被讀入存儲空間中。

2.3 文字顯示

在Linux下顯示文字使用FreeType庫。FreeType庫是采用面向?qū)ο蟮乃枷敫叨饶K化的程序庫,是一個開源的、高質(zhì)量可移植的字體引擎。它提供了統(tǒng)一的接口來訪問多種字體格式文件,包括TrueType、OpenType、Type1、CID、CFF、Windows FON/FNT、X11 PCF等。本系統(tǒng)采用點(diǎn)陣的方式顯示字體,即要先取得漢字的點(diǎn)陣表示形式,然后根據(jù)點(diǎn)陣中每一位是否為1來決定是否對屏幕上相應(yīng)的像素賦值。FreeType庫里保存字體屬性的結(jié)構(gòu)體FT_Bitmap,包括位圖行、列、每行所占字節(jié)數(shù)等信息。對FreeType庫的使用步驟如下:

2.4 鼠標(biāo)事件

目前最常見的鼠標(biāo)有PS/2鼠標(biāo)和USB鼠標(biāo)。但就應(yīng)用層去看這兩種鼠標(biāo)其實(shí)沒有太大的區(qū)別,PS/2鼠標(biāo)有4種工作模式:復(fù)位模式、流模式、遙控模式、檢測模式。流模式是默認(rèn)的工作模式,在流模式下鼠標(biāo)的任何動作都會報(bào)告給主機(jī)。

(1)鼠標(biāo)的解析與繪制

鼠標(biāo)的設(shè)備文件為/dev/input/mice。當(dāng)鼠標(biāo)有動作(移動、按鍵、滾軸)的時候可以通過cat/dev/input/mice命令,獲得動作數(shù)據(jù)并顯示在屏幕上。但多數(shù)是亂碼,原因是讀到的鼠標(biāo)動作數(shù)據(jù),不一定是0~127的可見字符。

實(shí)現(xiàn)鼠標(biāo)解析的主要代碼如下:

通過上述對鼠標(biāo)協(xié)議數(shù)據(jù)的解析,獲取鼠標(biāo)的按鍵事件和x、y方向的相對增量,只要聲明一組變量,用來累加dx、dy即可獲取鼠標(biāo)在屏幕的絕對坐標(biāo)。

鼠標(biāo)的繪制首先需要定義一個鼠標(biāo)的標(biāo)志。在屏幕上繪制鼠標(biāo)標(biāo)志前,先保存屏幕相應(yīng)位置(鼠標(biāo)標(biāo)志大小)的原有圖像,而后再繪制鼠標(biāo)的標(biāo)志。當(dāng)鼠標(biāo)移動到一個新位置時,在原來位置就可以根據(jù)保存的原有圖像恢復(fù),而在新的位置繼續(xù)重復(fù)保存、繪制即可。

(2)鼠標(biāo)的按鍵事件控制

以按鈕A事件為例,其主要實(shí)現(xiàn)代碼如下:

通過解析的鼠標(biāo)信息。判斷D0,即左鍵的按鍵信息,當(dāng)為1時,表明左鍵按下,這時可以通過鼠標(biāo)是否按下的狀態(tài),調(diào)用相應(yīng)的功能。

3 系統(tǒng)實(shí)現(xiàn)

本系統(tǒng)主界面包括系統(tǒng)時間的顯示、電影海報(bào)排列、電影名、翻頁和結(jié)束按鈕,如圖1所示。點(diǎn)擊翻頁按鈕,可以進(jìn)入下一頁電影節(jié)目。點(diǎn)擊電影海報(bào)圖片進(jìn)入該影片的介紹欄,顯示該電影的詳細(xì)介紹,如圖2所示。點(diǎn)擊結(jié)束按鈕,程序進(jìn)入退出界面,3 s以后程序結(jié)束。

結(jié)語

本文主要介紹了在Linux操作系統(tǒng)下采用JXARM9-2410教學(xué)實(shí)驗(yàn)箱設(shè)計(jì)實(shí)現(xiàn)的電影列表產(chǎn)品。本系統(tǒng)實(shí)現(xiàn)了圖片和文字的顯示、鼠標(biāo)按鍵事件等功能,已經(jīng)完成了電影列表的基本功能。按鈕事件的實(shí)現(xiàn)為系統(tǒng)提供了交互功能,為后面IPTV的進(jìn)一步制作奠定了基礎(chǔ)。對于本系統(tǒng)后續(xù)研究設(shè)計(jì),仍有可以進(jìn)一步擴(kuò)展和改進(jìn)的地方,例如可以在本系統(tǒng)上擴(kuò)展USB功能、網(wǎng)絡(luò)通信功能和觸摸屏功能等,以進(jìn)一步完善上層操作界面的設(shè)計(jì)。作為學(xué)校實(shí)驗(yàn)室開放基金項(xiàng)目,本系統(tǒng)的實(shí)現(xiàn)與完成也給學(xué)院提供了更多的專業(yè)教學(xué)資料,有利于激勵本專業(yè)學(xué)生的學(xué)習(xí)積極性,提高教學(xué)質(zhì)量和水平。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉