版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、移動設(shè)備網(wǎng)絡(luò)視頻播放器的實現(xiàn)摘要隨著手機等移動設(shè)備的廣泛普及以及國內(nèi)3g推廣在即,屆時無線網(wǎng)絡(luò)的速度將明顯提高,這為在移動終端上實現(xiàn)視頻傳播提供了現(xiàn)實可能,并且由于基于嵌入式的移動設(shè)備在市場上的占有率不斷提高并逐漸成為發(fā)展的主流趨勢,有必要對基于嵌入式移動設(shè)備網(wǎng)絡(luò)視頻播放器的實現(xiàn)方案進行研究,并提出一種高效的可行方案。本課題目的是在arm-linux嵌入式環(huán)境下實現(xiàn)網(wǎng)絡(luò)功能,系統(tǒng)主要由硬件層、內(nèi)核層、應用層三部分構(gòu)成。為了達到網(wǎng)路播放的功能,本文通過對基于arm9的up-tech嵌入式開發(fā)平臺硬件以及mplayer解碼及播放功能的研究提供了一種在嵌入式開發(fā)平臺上實現(xiàn)網(wǎng)絡(luò)播放的可行方案。本方案在
2、arm920t硬件結(jié)構(gòu)體系下通過移植經(jīng)過裁剪的linux內(nèi)核、根文件系統(tǒng)、mplayer以及播放器圖形界面。通過整合硬件層、內(nèi)核層以及應用程,在嵌入式環(huán)境下利用ftp傳輸協(xié)議實現(xiàn)網(wǎng)絡(luò)播放功能。本項目最后已在宿主機中實現(xiàn)網(wǎng)絡(luò)播放功能,但在嵌入式開發(fā)平臺中運行時仍有不足之處,需要進一步完善。通過這一課題的研究了解移動設(shè)備網(wǎng)絡(luò)視頻播放器的實現(xiàn)主要技術(shù),并提供一款低成本、實用性高的無線網(wǎng)絡(luò)視頻播放器,這對嵌入式移動設(shè)備領(lǐng)域的研究來說具有重要意義。關(guān)鍵期:嵌入式;arm-linux;qt;mplayer;網(wǎng)絡(luò)播放器the design of mp3 player base on embedded lin
3、ux operation system and qt gui toolabstractas embedded systems are widely used in various fields of national economy, the research on embedded systems has very important practical significance. this article describes is the mp3 player which based on embedded linux and qt design and implementation.in
4、 this paper, up-tech 2410 embedded development board as the hardware platform, qt4.5.3 as the core development tools, in the embedded linux system, the implementation of the mp3 player program design and implementation.to the hardware platform, this paper firstly introduces the core part of up-tech
5、2410, and then analyses the circuit of serial port, audio circuit, lcd, touch screen, network card and other important peripheral circuits.to the software platform, after introducing a cross-platform qt application - qt designer, qt signal and slot mechanism, qt event processing technology, this pap
6、er then focusing on the achievement of gui based on qt. in this paper also show the result that mp3 player run in the up-tech 2410 embedded development board.whats at last is the explaining of configuring exploitation environment and the review and expectation of this paper. keywords: embedded syste
7、m; linux; qt; mp3; player目錄摘要iabstractii目錄iii第一章概 述11.1課題背景11.2課題理論意義與運用21.3 qt介紹21.4本文主要內(nèi)容與組織結(jié)構(gòu)3第二章硬件相關(guān)介紹32.1開發(fā)平臺介紹32.1.1核心模塊42.1.2主板資源42.1.3軟件資源42.1.4本設(shè)計所用到的硬件平臺52.2硬件平臺詳細介紹52.2.1核心板電路52.2.2 以太網(wǎng)接口電路72.2.3 音頻電路92.2.4 觸摸屏和lcd電路112.2.5 電源電路132.2.6 復位電路13第三章軟件設(shè)計流程133.1 系統(tǒng)軟件體結(jié)構(gòu)系構(gòu)133.2 設(shè)計工具與相關(guān)技術(shù)介紹153.2.
8、1 qt designer153.2.2 qt信號與槽機制153.2.3 qmake163.2.4 qt的事件處理163.3 mp3播放器設(shè)計與實現(xiàn)173.3.1 mp3 播放器模塊化設(shè)計思想173.3.2“播放”按鍵功能的設(shè)計與實現(xiàn)183.3.3 “停止”和“暫?!卑存I功能的設(shè)計與實現(xiàn)193.3.4“添加”按鍵功能的設(shè)計與實現(xiàn)193.3.5“上一曲”“下一曲”按鍵功能設(shè)計與實現(xiàn)193.3.6 “滾動字幕”設(shè)計與實現(xiàn)203.3.7 mp3播放器運行效果21第四章開發(fā)環(huán)境配置234.1 開發(fā)環(huán)境的搭建與使用234.2 系統(tǒng)運行環(huán)境分析24第五章總結(jié)與展望285.1設(shè)計總結(jié)285.2設(shè)計展望28致
9、謝29參考文獻:30第一章 概 述1.1課題背景隨著嵌入式系統(tǒng)應用的逐漸普及,為保證嵌入式系統(tǒng)的順利運行,嵌入式軟件得到了快速發(fā)展,成為軟件業(yè)的一股新生力量。嵌入式軟件與嵌入式系統(tǒng)是密不可分的,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機器和車間運行的裝置”,就是以應用為中心,以計算機技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應用程序等四個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。而嵌入式軟件就是基于嵌入式系統(tǒng)設(shè)計的軟件,它也是計算機軟件的一種,同樣由程序及其文檔
10、組成,可細分成系統(tǒng)軟件、支撐軟件、應用軟件三類,是嵌入式系統(tǒng)的重要組成部分。隨著信息技術(shù)以及互聯(lián)網(wǎng)飛速發(fā)展普及,3c(計算機、通訊、消費電子)合一的加速,嵌入式設(shè)計已經(jīng)成為工業(yè)現(xiàn)代化、智能化的必經(jīng)之路,嵌入式產(chǎn)品已經(jīng)深入到各行各業(yè)。嵌入式接入設(shè)備是數(shù)字化時代的一大主流產(chǎn)品,嵌入式軟件已經(jīng)成為數(shù)字化產(chǎn)品的核心。嵌入式軟件大量應用于家用市場、工業(yè)市場、商業(yè)市場、通訊市場和國防市場。近幾年來,信息電器迅速發(fā)展,也為嵌入式軟件的發(fā)展起到推波助瀾的作用。彩電、dcd、手機、mp3/mp4、掌上電腦、汽車等都是潛在的信息電器。信息電器平臺與通用操作系統(tǒng)、數(shù)據(jù)庫不同,不存在國外軟件廠商壟斷市場的現(xiàn)象,這一領(lǐng)
11、域已成為中國軟件業(yè)的突破口。隨著linux操作系統(tǒng)本身的不斷完善,嵌入式linux已經(jīng)廣泛應用到手機、pda以及其他移動終端產(chǎn)品中。嵌入式linux以其開放的源碼,良好的適應性,較低的成本和很好的技術(shù)移植在手機等移動終端產(chǎn)品的操作系統(tǒng)領(lǐng)域,獲得了越來越多的青睞。1.2移動終端簡介移動終端或者叫移動通信終端是指可以在移動中使用的計算機設(shè)備,廣義的講包括手機、筆記本、pos機甚至包括車載電腦。但是大部分情況下是指手機或者具有多種應用功能的智能手機。隨著網(wǎng)絡(luò)和技術(shù)朝著越來越寬帶化的方向的發(fā)展,移動通信產(chǎn)業(yè)將走向真正的移動信息時代。另一方面,隨著集成電路技術(shù)的飛速發(fā)展,移動終端的處理能力已經(jīng)擁有了強大
12、的處理能力,移動終端正在從簡單的通話工具變?yōu)橐粋€綜合信息處理平臺。這也給移動終端增加了更加寬廣的發(fā)展空間?,F(xiàn)代的移動終端已經(jīng)擁有極為強大的處理能力(cpu主頻已經(jīng)接近1)、內(nèi)存、固化存儲介質(zhì)以及像電腦一樣的操作系統(tǒng)。是一個完整的超小型計算機系統(tǒng)??梢酝瓿蓮碗s的處理任務(wù)。移動終端也擁有非常豐富的通信方式,即可以通過,等無線運營網(wǎng)通訊,也可以通過無線局域網(wǎng),藍牙和紅外進行通信。隨著移動終端硬件技術(shù)的發(fā)展以及3g網(wǎng)絡(luò)建成使得通訊速率的提高。今天的移動終端不僅可以通話,拍照、聽音樂、玩游戲,而且可以在線播放電視及點播電影、上傳及下載多媒體信息,成為移動辦公和移動商務(wù)的重要工具。1.3嵌入式在移動終端中
13、的應用在移動終端發(fā)展史中,隨著通信技術(shù)的發(fā)展,具有不同功能的應用軟件可以運行在移動終端上為人們提供各種各樣的服務(wù),但是沒有統(tǒng)一的系統(tǒng)結(jié)構(gòu)框架使得這些應用軟件的互動性非常差。于是移動終端產(chǎn)商們便開始尋求一種基于“開放”的操作系統(tǒng)的手機,所謂“開放”指其所有的api(應用程序接口)應該是公開并且受到廣泛支持。當時所面臨的選擇有symbian的epoc平臺,palm/os以及微軟的win ce。隨著研究的深入,linux的嵌入式版本開始受到青睞并擴展其市場。從2001年至2002年,嵌入式linux在嵌入式操作系統(tǒng)的市場份額迅速增長了一倍左右,從而成為嵌入式os中的重要一員。嵌入式linux在移動終
14、端中有如此中大作用得益于其如下優(yōu)勢:(1)linux屬于開放的操作系統(tǒng),它自身的技術(shù)文檔甚至源代碼都是開放的,因而在學術(shù)領(lǐng)域受到格外青睞,使得它對新技術(shù),新協(xié)議有良好的適應性.(2)由于linux和unix之間的相似性,使得許多對unix熟悉的開發(fā)人員能夠很快在相似的基于嵌入式linux開發(fā)環(huán)境中進行開發(fā)工作。另外, 由于linux源碼的開放性使得代碼移植和重用變得相當普遍,基于嵌入式linux平臺的開發(fā)產(chǎn)品往往只花費較低的成本就能有很好的質(zhì)量。這對于注重開發(fā)成本的公司無疑具有極大的誘惑力。(3)linux提供了良好的安全性能和并行處理能力。java語言在移動領(lǐng)域正逐漸成為主流的開發(fā)語言,而實
15、驗表明,在相同的硬件平臺上,java虛擬機在linux上能取得比windows ce上更好的性能值。因此java+linux成為現(xiàn)在的時尚搭配。當然,linux在價格上的優(yōu)勢也很關(guān)鍵。盡管linux并非全免費,但和其他商用操作系統(tǒng)相比,它還是占盡價格優(yōu)勢。1.4課題理論與實際意義本課題旨在研究在嵌入式平臺上實現(xiàn)網(wǎng)絡(luò)播放器的網(wǎng)絡(luò)播放,在ftp網(wǎng)絡(luò)協(xié)議環(huán)境下測試網(wǎng)絡(luò)播放器的播放效果。本課題所涉及的理論內(nèi)容有嵌入式系統(tǒng)、linux系統(tǒng)內(nèi)核、根文件系統(tǒng)、ftp網(wǎng)絡(luò)協(xié)議、arm應用軟件移植、qt應用軟件編程。通過這些理論知識的整合在嵌入式平臺上實現(xiàn)播放器網(wǎng)絡(luò)播放并且注重編程規(guī)范形成一套標準的項目開發(fā)流程
16、。就如課題背景所言,由于嵌入式系統(tǒng)軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。正是由于嵌入式的這些優(yōu)點使得當今移動設(shè)備生產(chǎn)商如此青睞于嵌入式系統(tǒng)。加之3g網(wǎng)絡(luò)的發(fā)展,通訊速率屆時將大幅提升,應廣大移動終端用戶的要求,移動終端多媒體化將是發(fā)展的主流趨勢。通過在嵌入式平臺上實現(xiàn)網(wǎng)絡(luò)播放器方案的研究有助于為開發(fā)一種低成本、高效率的移動設(shè)備網(wǎng)絡(luò)播放器提供有效的技術(shù)支持。并且由于qt是面向?qū)ο蟮?、跨平臺的用戶圖形界面開發(fā)軟件,它具有良好的移植性,通過qt編寫應用程序圖形界面為嵌入式應用程序圖形界面提供了一種很好的解決方案。1.5本文主要內(nèi)容與組織結(jié)構(gòu)第二章 硬
17、件平臺及開發(fā)流程2.1開發(fā)平臺介紹本課題采用的硬件開發(fā)平臺為由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的基于arm體系結(jié)構(gòu)的up-cup 2410-s 平臺。up-cup 2410-s 平臺的cpu為arm920t內(nèi)核的三星s3c2410 芯片,由于有mmu可以運行標準的arm-linux內(nèi)核。 除此之外up-cup 2410-s開發(fā)平臺帶有豐富的外圍開發(fā)部件和完善的開發(fā)手冊,使得這一開發(fā)平臺非常適合嵌入式教學和進行嵌入式軟件開發(fā)。圖2-1 up-tech 2410嵌入式開發(fā)板2.1.1開發(fā)平臺硬件配置up-tech s2410/p270 dvp的硬件配置如表2-1-2所示表 2-1-2 up-tech
18、s2410/p270 dvp的硬件配置4配置名稱型號說明cpuarm920t結(jié)構(gòu)芯片三星s3c2410x工作頻率203mhzflashsamsung k9f120864m nandsdramhy57v561620ath32m2=64methernet網(wǎng)卡dm9000ae10/100m自適應lcdlq080v3dg018寸16bit tft觸摸屏sx-080-w4r-fbfm7843驅(qū)動usb 接口4個host /1個device由at43301構(gòu)成usb hubuart/irda2個rs232,1個rs485,1個irda ad8路10位內(nèi)部ad控制器3個電位器控制輸入audioiis總線,u
19、da1341芯片 44.1khz音頻擴展卡插槽168pin export總線直接擴展gps_gprs擴展板simcom sim300 gprs模塊,trimbles gps 支持雙道語音通信ide/cf卡插座筆記本硬盤,cf卡 ps2 pc鍵盤和鼠標由atmega8單片機控制ic卡座at24cxx系列由atmega8單片機控制led8x8矩陣led及2個led數(shù)碼管由總線控制vgavga輸出中斷鍵1個ent控制led由3個io口控制dc電機由pwm控制閉環(huán)測速功能can bus由 mcp2510和tja1050構(gòu)成double da max504一個10位dac端口調(diào)試接口板載jtag,直接支
20、持下載與仿真25針2.1.2開發(fā)平臺軟件資料l linux操作系統(tǒng)啟動的bootloader- vivil linux操作系統(tǒng)內(nèi)核- zimagel 根文件系統(tǒng)-root.cramfsl 應用程序壓縮包-yaffs.tar.bz2l 開發(fā)工具tftp、busybox、flashfxpl 外圍部件驅(qū)動lcd驅(qū)動、鼠標/鍵盤驅(qū)動等l 交叉編譯工具arm-linux-gcc-3.4.1l qtqt-embedded-4.4.0/qt-x112.1.3網(wǎng)絡(luò)播放器硬件架構(gòu)本課題的硬件框架如圖2-1-3所示。s3c2410核心板cpusdramflash640*480 tft 16bit lcd 液晶屏v
21、ga/av轉(zhuǎn)換總線隔離、附屬電路usb device接口dm9000ae100m 網(wǎng)卡rs232串口0揚聲器電源、復位邏輯圖2-1-3硬件架構(gòu)2.2網(wǎng)絡(luò)播放器開發(fā)過程簡介為了在嵌入式開發(fā)平臺上實現(xiàn)網(wǎng)絡(luò)播放器,首先需要在宿主機的linux系統(tǒng)下用qt完成播放器界面程序的編寫以及mplayer的安裝,并且利用編寫好的界面程序調(diào)用mplayer實現(xiàn)視頻及音頻文件的本地播放以及在ftp協(xié)議下得網(wǎng)絡(luò)播放。在確認應用程序能夠正確運行后利用交叉編譯工具鏈將應用程序交叉編譯,這一部分分為用戶界面程序的交叉編譯以及mplayer的交叉編譯。交叉編譯完成后利用nfs文件系統(tǒng)將編譯好的應用程序及動態(tài)庫掛載至開發(fā)板上
22、,如此便可以利用linux系統(tǒng)下得minicom和開發(fā)板通訊并運行掛載文件夾下的網(wǎng)絡(luò)播放器,查看運行結(jié)果。up-tech2410網(wǎng)卡串口usbnfs核心cpu2.2.1搭建宿主機開發(fā)環(huán)境這一部分包括linux系統(tǒng)的安裝、交叉編譯器安裝、minicom的配置、nfs網(wǎng)絡(luò)文件系統(tǒng)的配置。1. linux系統(tǒng)的安裝:linux是采用gpl協(xié)議的gnu系統(tǒng),它的源代碼是公開的?;谶@一優(yōu)點,眾多公司或組織在linux內(nèi)核源代碼的基礎(chǔ)上進行了一些必要的修改加工,然后再開發(fā)一些配套的軟件,并把它整合成一個自己的發(fā)布版linux。除去非商業(yè)組織debian開發(fā)的diebian gnu/linux外,美國的r
23、ed hat公司發(fā)行了red hat linux,法國的mandrake公司發(fā)行了mandrake linux,德國的suse公司發(fā)行了suse linux,國內(nèi)眾多公司也發(fā)行了中文版得linux,如著名的紅旗linux。linux目前已經(jīng)有超過250個發(fā)行版本。本課題采用的linux系統(tǒng)是red hat9.0,詳細安裝過程參見 2. 交叉編譯器安裝:嵌入式軟件開發(fā)所采用的編譯為交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。編譯的最主要工作就在將程序轉(zhuǎn)化成運行該程序的cpu所能識別的機器代碼,由于不同的體系結(jié)構(gòu)有不同的指令系統(tǒng)。因此,不同的cpu需要有相應的編譯器,而
24、交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同的cpu語言。up-tech2410本課題采用的交叉編譯器為arm-linux-gcc-3.4.1,將開發(fā)板配套光盤上的arm-linux-gcc-3.4.1.tar.bz2解壓至根目錄/opt文件夾下。解壓完畢后修改/root/.bashrc文件。命令為#vi /root/.bashrc在文件最后加上 export path=$path:/opt/ arm-linux-gcc-3.4.1/bin修改完畢以后在終端輸入命令# source /root/.bashrc 使修改生效3. minicom配置:由于在嵌入式開發(fā)過程中需要將開發(fā)板上的信息
25、顯示給開發(fā)人員,所以要有一種能夠顯示開發(fā)板上信息的解決方法。最常用的就是通過串口線輸出到宿主機的顯示器上,這樣,開發(fā)人員就可以看到系統(tǒng)的運行情況了。在windows和linux中都有不少串口通信軟件,可以很方便地對串口進行配置,其中最主要的配置參數(shù)就是波特率、數(shù)據(jù)位、停止位、奇偶校驗位和數(shù)據(jù)流控制位等,但是它們一定要根據(jù)實際情況進行相應配置。minicom是linux下串口通信的軟件,它的使用完全依靠鍵盤的操作,具有高效與便利等優(yōu)點。minicom詳細配置參見 minicom詳細命令參見 4. nfs網(wǎng)絡(luò)文件系統(tǒng)配置:nfs為network filesystem的簡稱,最早是由sun公司提出發(fā)
26、展起來的,其目的就是讓不同的機器、不同的操作系統(tǒng)之間可以彼此共享文件。nfs可以讓不同的主機通過網(wǎng)絡(luò)將遠端的nfs服務(wù)器共享出來的文件安裝到自己達到系統(tǒng)中,從客戶端看來,使用nfs的遠端文件就像是使用本地文件一樣。在嵌入式中使用nfs會使應用程序的開發(fā)變得十分方便,并且不用反復地進行燒寫鏡像文件。nfs的使用分為服務(wù)端和客戶端,其中服務(wù)端是提供要共享的文件,而客戶端則通過掛載“mount”這一動作來實現(xiàn)對共享文件的訪問操作。nfs服務(wù)器端是通過讀入它的配置文件“/etc/exports”來決定所共享的文件目錄。在這個配置文件中,每一行都代表一項要共享的文件目錄以及所指定的客戶端對其操作權(quán)限???/p>
27、戶端可以根據(jù)相應的權(quán)限,對該目錄下的所有目錄文件進行訪問。配置文件中每一行的格式如下:共享的目錄 主機名稱或ip 參數(shù)1,參數(shù)2,主機名稱或ip是可供共享的客戶端主機或ip,若對所有的ip都可以訪問,則可用“*”表示。選項參數(shù)含義rw可讀寫的權(quán)限r(nóng)o只讀的權(quán)限no_root_squashnfs客戶端分享目錄使用者的權(quán)限,即如果客戶端使用的是root用戶,那么對于這個共享目錄而言,該客戶端就具有root權(quán)限sync資料同步寫入到內(nèi)存與硬盤當中async資料會先暫存于內(nèi)存當中,而非直接寫入硬盤例:/root/arm2410cl *(rw,no_root_squash)在設(shè)定完配置文件之后,需要啟動
28、nfs服務(wù)和portmap服務(wù),這里的portmap服務(wù)時允許nfs客戶端查看nfs服務(wù)在用的端口,在它被激活之后,就會出現(xiàn)一個端口為111的sum rpc(遠端過程調(diào)用)的服務(wù)。這是nfs服務(wù)中必須實現(xiàn)的一項,因此,必須把它開啟:命令為:#service portmap start啟動nfs服務(wù):#service nfs start詳細內(nèi)容參見 /doc/zh_cn/books/handbook/network-nfs.html2.2.2 建立引導加載程序(bootloader)簡單地說,bootloader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段程序,
29、它類似于pc機中的bios程序。通過這段程序,可以完成硬件設(shè)備的初始化,并建立內(nèi)存空間的映射圖的功能,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),為最終調(diào)用系統(tǒng)內(nèi)核做好準備。一般用戶可以從網(wǎng)絡(luò)上下載一些公開源代碼的bootloader程序,如u-boot、blob、vivi、lilo、arm-boot、redboot等,然后根據(jù)自己的芯片進行移植修改。本課題采用的bootloader是博創(chuàng)公司提供的vivi,因為引導程序是應該最先被燒寫到開發(fā)板上的程序,所以需要特殊的燒寫工具,本課題的燒寫工具由博創(chuàng)科技公司提供,燒寫方法參見 博創(chuàng)科技光盤資料-2410經(jīng)典 linux 系統(tǒng)燒寫。成功燒寫boot
30、loader后可利用vivi進行內(nèi)核、根文件系統(tǒng)以及應用程序的燒寫。2.2.3 內(nèi)核編譯與移植一個完整的嵌入式操作系統(tǒng)必須要有與硬件匹配的內(nèi)核,一般的做法是下載別人已經(jīng)一直好的linux操作系統(tǒng)。下載后根據(jù)自己的系統(tǒng)要求進行裁減、配置,再添加自己的特定硬件的驅(qū)動程序進行調(diào)試修改,最終得到一個適合于自己平臺的內(nèi)核,將其進行交叉編譯,就可以得到符合要求的內(nèi)核映像文件,最后將其下載到flash存儲器芯片的相應分區(qū)中運行。本課題由于未采用新的硬件電路,所以不需要重新編譯linux內(nèi)核,可以直接使用博創(chuàng)公司提供編譯好的內(nèi)核,詳細的內(nèi)核編譯方法亦可參考博創(chuàng)平臺配套資料。2.2.4 建立根文件系統(tǒng)linux
31、的一個最重要特點就是它支持許多不同的文件系統(tǒng)。這使linux非常靈活,能夠與許多其他的操作系統(tǒng)共存。 linux支持的常見的文件系統(tǒng)有:jfs、 reiserfs、 ext、 ext2、ext3、iso9660、xfs、minx、msdos、umsdos、vfat、ntfs、hpfs、nfs、smb、sysv、proc等。除了內(nèi)核外,要使嵌入式系統(tǒng)正常運行還需要建立根文件系統(tǒng)。在嵌入式系統(tǒng)中,有一個非常重要的創(chuàng)建根文件系統(tǒng)的工具busybox,它能產(chǎn)生一個最基本的根文件系統(tǒng)。有了這個最基本得根文件系統(tǒng),再根據(jù)自己的需要添加其他文件,即可構(gòu)成一個完整的根文件系統(tǒng)。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為
32、只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生燒寫映像文件,并將其燒寫到flash芯片的相應分區(qū)中運行。本課題使用的文件系統(tǒng)為cramfs。在嵌入式的環(huán)境之下,內(nèi)存和外存資源都需要節(jié)約使用。如果使用ramdisk方式來使用文件系統(tǒng),那么在系統(tǒng)運行之后,首先要把外存(flash)上的映像文件解壓縮到內(nèi)存中,構(gòu)造起ramdisk環(huán)境,才可以開始運行程序。但是它也有很致命的弱點。在正常情況下,同樣的代碼不僅在外存中占據(jù)了空間(以壓縮后的形式存在),而且還在內(nèi)存中占用了更大的空間(以解壓縮之后的形式存在),這違背了嵌入式環(huán)境下盡量節(jié)省資源的要求。使用cramfs就是一種解決這個問題的方式。
33、cramfs是一個壓縮式的文件系統(tǒng),它并不需要一次性地將文件系統(tǒng)中的所有內(nèi)容都解壓縮到內(nèi)存之中,而只是在系統(tǒng)需要訪問某個位置的數(shù)據(jù)的時侯,馬上計算出該數(shù)據(jù)在cramfs中的位置,將其實時地解壓縮到內(nèi)存之中,然后通過對內(nèi)存的訪問來獲取文件系統(tǒng)中需要讀取的數(shù)據(jù)。cramfs中的解壓縮以及解壓縮之后的內(nèi)存中數(shù)據(jù)存放位置都是由cramfs文件系統(tǒng)本身進行維護的,用戶并不需要了解具體的實現(xiàn)過程,因此這種方式增強了透明度,對開發(fā)人員來說,既方便,又節(jié)省了存儲空間。由于本課題使用nfs文件系統(tǒng)將應用程序掛載至開發(fā)板上運行,所以不需要重新建立根文件系統(tǒng),只需燒寫博創(chuàng)公司提供的根文件系統(tǒng)即可。詳細建立根文件系統(tǒng)
34、過程亦可參考博創(chuàng)公司提供的配套資料博創(chuàng)科技光盤資料-s2410經(jīng)典實驗指導書。第三章 網(wǎng)絡(luò)協(xié)議ftp 是file transfer protocol(文件傳輸協(xié)議)的簡稱,它是目前應用最廣泛的協(xié)議之一,用于設(shè)備間的文件傳送。眾所周知,internet是一個非常復雜的計算機環(huán)境,有pc,有工作站,有mac,有大型機,而且在龐大的計算機網(wǎng)絡(luò)中連接互聯(lián)網(wǎng)的各計算機終端上安裝著不同的計算機系統(tǒng)。為了解決不同機器與操作系統(tǒng)中的文件傳輸問題,必須要有一個統(tǒng)一的協(xié)議,ftp(文件傳輸協(xié)議)由此應運而生。由于ftp協(xié)議是工作在tcp/ip協(xié)議體系結(jié)構(gòu)上的應用層協(xié)議,所以有必要對tcp/ip協(xié)議進行簡要介紹。3
35、.2 tcp/ip體系結(jié)構(gòu)tcp/ip體系模型是計算機網(wǎng)絡(luò)的事實標準。通過它可以實現(xiàn)各種異構(gòu)網(wǎng)絡(luò)或異種機之間的互聯(lián)通信。圖3-2-1為tcp/ip網(wǎng)絡(luò)體系結(jié)構(gòu)示意圖,該體系結(jié)構(gòu)有四層。其應用層程序可直接運行于傳輸層之上,傳輸層提供兩種基本類型的服務(wù):傳輸控制協(xié)議(transfer control protocol, tcp),為字節(jié)流提供面向連接的可靠傳輸;用戶數(shù)據(jù)包協(xié)議(user datagram protocol, udp),為各個消息提供盡力而為的無連接傳輸。應用層傳輸層互聯(lián)網(wǎng)層網(wǎng)絡(luò)接口層圖3-2-11. 網(wǎng)絡(luò)接口層網(wǎng)絡(luò)接口層是tcp/ip的最底層,該層得協(xié)議提供了一種數(shù)據(jù)傳送的方法,是
36、將數(shù)據(jù)分幀來傳送,因此必須知道低層網(wǎng)絡(luò)的細節(jié),以便準確地格式化傳送的數(shù)據(jù),該層執(zhí)行的功能還包括將ip地址映射為網(wǎng)絡(luò)使用的物理地址。2. 互聯(lián)網(wǎng)層(ip)互聯(lián)網(wǎng)層的主要功能是負責將數(shù)據(jù)報送到目的主機,包括:l 處理來自傳輸層的分組發(fā)送請求,將分組裝入ip數(shù)據(jù)報,選擇路徑,然后將數(shù)據(jù)報發(fā)送到相應數(shù)據(jù)線上。l 處理接收的數(shù)據(jù)報,檢查目的地址若需要轉(zhuǎn)發(fā),則選擇發(fā)送路徑轉(zhuǎn)發(fā),若目的地址為本節(jié)點地址,則除去報頭,將分組交送傳輸層處理。l 處理互聯(lián)網(wǎng)路徑、流控與擁塞問題。3. 傳輸層傳輸層主要功能是負責應用程序之間的端-端通信。該層中的兩個最主要協(xié)議是tcp協(xié)議和udp協(xié)議。tcp協(xié)議是一種可靠的面向連接的
37、協(xié)議,它允許將一臺主機的字節(jié)流無差錯地傳送到目的主機。tcp同時要完成流量控制功能,協(xié)調(diào)收發(fā)雙方的發(fā)送與接收速度,達到正確傳輸目的。udp協(xié)議提供的無連接報文傳送沒有差錯恢復或流量控制機制,分組傳輸順序檢查與排序由應用層實現(xiàn)。udp一般用于要求速度快但不一定要求可靠的傳輸場合。4. 應用層應用層是tcp/ip協(xié)議族的最高層,它規(guī)定了應用程序怎樣使用互聯(lián)網(wǎng)。它包括遠程登錄協(xié)議(telecommunication network, telnet)、文件傳輸協(xié)議(file transfer protocol, ftp)、電子郵件協(xié)議(simple mail transfer protocol, sm
38、tp)、域名服務(wù)協(xié)議(domain name system, dns)及超文本傳送協(xié)議(hypertext transfer protocol, http)等。3.3 傳輸控制協(xié)議tcptcp之所以是可靠的面向連接的協(xié)議,是因為tcp在ip的基礎(chǔ)上提供可靠的面向連接的流服務(wù)。為了能夠做到這點,tcp使用了選擇性重發(fā)(automatic repeat request, arq)技術(shù)。此外,tcp也使用算法進行擁塞控制,這種算法可以通過分組丟失來標識擁塞,并且能通過擁塞窗口控制信息進入網(wǎng)絡(luò)內(nèi)速度。1. tcp的可靠流服務(wù)在互聯(lián)網(wǎng)上兩個應用的進程之間,tcp提供了邏輯上的全雙工連接。tcp向這些應用
39、進程提供面向連接的、可靠而有序的字節(jié)流服務(wù)。tcp還提供流量控制,允許接受端控制發(fā)送端傳輸信息的速率,從而使得緩沖區(qū)不會溢出。tcp還能支持同一個終端系統(tǒng)上的多個應用程序。在數(shù)據(jù)傳送開始之前,tcp在兩個應用進程之間建立連接,也就是在協(xié)議中設(shè)置所要用到的變量。這些變量存儲在一個稱為傳輸控制數(shù)據(jù)塊的連接記錄中。一旦連接建立,tcp就在連接中正確而有序地雙向傳送數(shù)據(jù)。tcp設(shè)計成在ip層得基礎(chǔ)上工作,所以它并不假設(shè)低層的網(wǎng)絡(luò)服務(wù)是可靠的。為了能夠?qū)崿F(xiàn)可靠性,tcp使用選擇性重發(fā)。tcp獨立地結(jié)束每個方向上的傳輸,允許一個方向上的連接被關(guān)閉之后另外一個方向仍然傳輸數(shù)據(jù)。除此之外,tcp不保持消息的邊
40、界,它把從應用層得到的數(shù)據(jù)當做字節(jié)流看待。也就是說,tcp可以按照它認為最適合低層網(wǎng)絡(luò)傳輸?shù)姆绞诫S意分裂和重組應用的信息。2. tcp協(xié)議l tcp數(shù)據(jù)段tcp數(shù)據(jù)段得格式如圖-所示,其報頭由一個20字節(jié)的固定部分和一個變長的可選字段組成。l 連接的建立在發(fā)送數(shù)據(jù)之前,必須首先建立一個連接。tcp使用三次握手過程來建立連接,如圖所示,握手步驟如下:1) 請求端(通常稱為客戶)發(fā)送一個 syn 報文段( syn 為 1 )指明客戶打算連接的服務(wù)器的端口,以及初始順序號( isn )。2) 服務(wù)器發(fā)回包含服務(wù)器的初始順序號的 syn 報文段( syn 為 1 )作為應答。同時,將確認號設(shè)置為客戶的
41、 isn 加 1 以對客戶的 syn 報文段進行確認( ack 也為 1 )。3) 客戶必須將確認號設(shè)置為服務(wù)器的 isn 加 1 以對服務(wù)器的 syn 報文段進行確認( ack 為 1 ),該報文通知目的主機雙方已完成連接建立。l tcp連接終止tcp 連接建立起來后,就可以在兩個方向傳送數(shù)據(jù)流。當 tcp 的應用進程再沒有數(shù)據(jù)需要發(fā)送時,就發(fā)關(guān)閉命令。 tcp 通過發(fā)送控制位 fin=1 的數(shù)據(jù)片來關(guān)閉本方數(shù)據(jù)流,但還可以繼續(xù)接收數(shù)據(jù),直到對方關(guān)閉那個方向的數(shù)據(jù)流,連接就關(guān)閉。tcp 協(xié)議使用修改的三次握手協(xié)議來關(guān)閉連接, 如圖 3-11 所示,即終止一個連接要經(jīng)過 4 次握手。這是因為
42、tcp 的半關(guān)閉( half-close )造成的。由于一個 tcp 連接是全雙工(即數(shù)據(jù)在兩個方向上能同時傳遞),因此每個方向必須單獨地進行關(guān)閉。關(guān)閉的原則就是當一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個 fin 來終止這個方向連接。當一端收到一個 fin ,它必須通知應用層另一端已經(jīng)終止了那個方向的數(shù)據(jù)傳送。3.1 文件傳送協(xié)議ftp文件傳送協(xié)議(ftp)是目前應用最廣泛的協(xié)議之一,用于在設(shè)備間的文件傳送。ftp提供交互式訪問,允許客戶指明文件的類型與格式,并允許文件具有存取權(quán)限。它可工作于不同主機,甚至那些運行不同的操作系統(tǒng)或具有不同的文件結(jié)構(gòu)的主機均可使用。為傳送文件,ftp需要兩條tcp
43、連接,一條是控制連接,在服務(wù)器的21端口上建立;另一條是數(shù)據(jù)連接,用于進行文件傳送。每個文件傳送均必須建立數(shù)據(jù)連接,數(shù)據(jù)連接可用于向任何方向傳送文件,或者由客戶從服務(wù)器上獲取文件和目錄清單。圖-說明了ftp中兩條連接各自的作用。用戶協(xié)議解釋器(protocol interpreter, pi)的作用是發(fā)送ftp命令與解釋回復。服務(wù)器協(xié)議解釋器(服務(wù)器pi)用于解釋ftp命令與發(fā)送相應信息,以及指示服務(wù)器數(shù)據(jù)傳送進程(data transfer process, dtp)建立數(shù)據(jù)連接與進行傳送。di:協(xié)議接收器dtp:數(shù)據(jù)傳送進程服務(wù)器pi服務(wù)器dtp用戶接口用戶網(wǎng)用戶dtp服務(wù)器ftp用戶ft
44、p第四章 開發(fā)環(huán)境及mplayer通常嵌入式軟件的開發(fā)環(huán)境為宿主機加嵌入式開發(fā)平臺,參照第二章可以完成宿主機得配置,這一章著重介紹用戶界面設(shè)計工具qt、集成開發(fā)環(huán)境qtcreator及萬能播放器mplayer。4.1 用戶界面設(shè)計工具qt qt是挪威trolltech公司出品的一個跨平臺的c+用戶界面庫。它提供給應用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。qt是完全面向?qū)ο蟮?,很容易擴展,并且允許真正地組件編程。qt同 x window 上的 motif,openwin,gtk 等圖形界面庫和 windows 平臺上的 mfc,owl,vcl,atl 是同類型的東西,4.1.1 qt
45、優(yōu)點(1)優(yōu)良的跨平臺特性qt支持下列操作系統(tǒng): microsoft windows 95/98, microsoft windows nt, linux,solaris, sunos, hp-ux, digital unix (osf/1, tru64), irix, freebsd,bsd/os, sco, aix, os390,qnx 等等。qt可在多種體系結(jié)構(gòu)的微處理器上移植,如mips、arm、strongarm、motorola68000、powerpc和xscale等支持framebuffer的嵌入式處理器。(2)面向?qū)ο髊t的良好封裝機制使得qt的模塊化程度非常高,軟件構(gòu)件或元
46、素可重用性好,支持組件編程,對于用戶開發(fā)來說是非常方便的。 qt提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協(xié)同工作變得十分簡單。 (3)豐富的 apiqt包括多達 250 個以上的 c+ 類,還提供基于模板的 collections, serialization, file, i/odevice, directory management, date/time 類。甚至還包括正則表達式的處理功能。(4)支持 2d/3d 圖形渲染,支持 openglqt支持各種用戶化外觀,基于qt的應用程序能夠在windows外觀、motif外觀、以及
47、其他一些用戶化外觀主題之間切換。(5)大量的開發(fā)文檔;qt提供了大量的聯(lián)機參考文檔,有超文本html方式,也有unix幫助頁、man手冊頁,以及補充說明,如assistant。4.1.2 qt版本qt泛指qt的所有桌面版本,比如qt/x11,qt windows,qt mac等。由于qt最早是在linux中隨著kde流行開來的,因此通常qt都指用于linux/unix的qt/x11。本課題使用的除了在linux桌面環(huán)境下的qt/x11之外,為了使程序能夠在嵌入式開發(fā)板上運行起來,還使用了面向嵌入式的qt/embedded。1. qt/embedded開發(fā)那些運行在移動設(shè)備,如pda和手機上的軟
48、件是很有挑戰(zhàn)性的,因為與桌面系統(tǒng)相比,嵌入式系統(tǒng)的處理器更慢,永久性儲存容量更小,內(nèi)存更少,并且顯示器也更少。為了解決資源利用方面的問題,trolltech公司開發(fā)了面向嵌入式系統(tǒng)的qt版本。qt/embedded linux可以在運行l(wèi)inux的任何硬件上運行包括intel x86、mips 、arm、strong-arm、motorola/freescale 68000,以及powerpc體系。不像qt/x11,它不需要x窗口系統(tǒng),它實現(xiàn)的是自己的窗口系統(tǒng),即qws,從而大大節(jié)省了存儲和內(nèi)存。為了盡可能多地減少內(nèi)存占用量,qt/embedded linux可以被重新編譯億去掉那些不用的特性
49、。如果可以提前知道設(shè)備需要用到哪些應用程序或者組件,就可以將qt/embedded linux的那些庫靜態(tài)地編譯到一起。4.1.3 信號與槽機制信號與槽機制是qt的一個主要特征,是qt與其它工具包最不相同的部分。在圖形用戶界面編程中,經(jīng)常會出現(xiàn)窗口中的一個部件發(fā)生的變化被通知給另一個部件,在qt中采用信號和槽來實現(xiàn)對象部件之間的通信。1. 信號當某個信號對其客戶或所有者發(fā)生的內(nèi)部狀態(tài)發(fā)生改變,信號被一個對象發(fā)射。只有定義過這個信號的類及其派生類能夠發(fā)射這個信號。當一個信號被發(fā)射時,與其相關(guān)聯(lián)的槽將被立刻執(zhí)行,就象一個正常的函數(shù)調(diào)用一樣。信號-槽機制完全獨立于任何gui事件循環(huán)。只有當所有的槽返
50、回以后發(fā)射函數(shù)(emit)才返回。如果存在多個槽與某個信號相關(guān)聯(lián),那么,當這個信號被發(fā)射時,這些槽將會一個接一個地執(zhí)行,但是它們執(zhí)行的順序?qū)请S機的、不確定的,我們不能人為地指定哪個先執(zhí)行、哪個后執(zhí)行。2. 槽槽是普通的c+成員函數(shù),可以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關(guān)聯(lián)。當與其關(guān)聯(lián)的信號被發(fā)射時,這個槽就會被調(diào)用。槽可以有參數(shù),但槽的參數(shù)不能有缺省值。3. 信號與槽的關(guān)聯(lián)通過調(diào)用 qobject 對象的 connect 函數(shù)來將某個對象的信號與另外一個對象的槽函數(shù)相關(guān)聯(lián),這樣當發(fā)射者發(fā)射信號時,接收者的槽函數(shù)將被調(diào)用。該函數(shù)的定義如下:bool qobject:conn
51、ect ( const qobject * sender, const char * signal, const qobject * receiver, const char * member )這個函數(shù)的作用就是將發(fā)射者 sender 對象中的信號 signal 與接收receiver 中的 member 槽函數(shù)聯(lián)系起來。當指定信號 signal 時必須使用 qt中的宏signal(),當指定槽函數(shù)時必須使用宏 slot()。如果發(fā)射者與接收者屬于同一個對象的話,那么在 connect 調(diào)用中接收者參數(shù)可以省略。信號與槽之間通過connect()函數(shù)可以有很多種連接方式。如一個信號連接一個槽
52、、同一信號連接多個槽、多個信號連接到同一個槽、也可以由一個信號連接到另一個信號。4.2 集成開發(fā)環(huán)境qtcreatorqt creator是全新的跨平臺 qt ide,可單獨使用,也可與 qt 庫和開發(fā)工具組成一套完整的sdk. 其中包括:高級 c+ 代碼編輯器,項目和生成管理工具,集成的上下文相關(guān)的幫助系統(tǒng),圖形化調(diào)試器,代碼管理和瀏覽工具。4.2.1 qtcreator功能與特性qt creator 是專為滿足 qt 開發(fā)人員需求而量身定制的跨平臺集成開發(fā)環(huán)境 (ide)。qt creator 可在 windows、linux/x11 和 mac os x 桌面操作系統(tǒng)上運行,供開發(fā)人員針
53、對多個桌面和移動設(shè)備平臺創(chuàng)建應用程序。1. 復雜代碼編輯器qt creator 的高級代碼編輯器支持編輯 c+ 和 qml (javascript)、上下文相關(guān)幫助、代碼完成功能、本機代碼轉(zhuǎn)化及其他功能。2. 版本控制qt creator 匯集了最流行的版本控制系統(tǒng),包括 git、subversion、perforce、cvs 和 mercurial。3. 集成用戶界面設(shè)計器qt creator 提供了兩個集成的可視化編輯器:用于通過 qt widget 生成用戶界面的 qt designer,以及用于通過 qml 語言開發(fā)動態(tài)用戶界面的 qt quick designer*。4. 項目和編譯
54、管理無論是導入現(xiàn)有項目還是創(chuàng)建一個全新項目,qt creator 都能生成所有必要的文件。包括對 cross-qmake 和 cmake 的支持。5. 桌面和移動平臺qt creator 支持在桌面系統(tǒng)和移動設(shè)備中編譯和運行 qt 應用程序。通過編譯設(shè)置您可以在目標平臺之間快速切換。6. qt 模擬器qt模擬器是諾基亞 qt sdk 的一部分,可在與目標移動設(shè)備相似的環(huán)境中對移動設(shè)備的 qt 應用程序進行測試。4.3 播放器mplayer由于本課題為了在嵌入式上實現(xiàn)網(wǎng)絡(luò)播放功能所采取的方案是利用qt設(shè)計的用戶界面來調(diào)用視頻播放器,這一方案的優(yōu)勢在于使用開源的視頻播放器,免卻了自己開發(fā)解碼部分及
55、與用戶界面整合的煩瑣,從而使得開發(fā)流程變得簡單。mplayer是一款開源的多媒體播放器,以gnu通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如linux和其他類unix作業(yè)系統(tǒng)、微軟的視窗系統(tǒng)及蘋果電腦的mac os x系統(tǒng)。由于它支持多種視頻格式、播放速度流暢及體積小等特點,使得它成為嵌入式網(wǎng)絡(luò)播放器開發(fā)的最佳選擇。4.3.1 mplayer優(yōu)點1. 支持多種播放格式mplayer 支持相當多的媒體格式,無論在音頻播放還是在視頻播放方面,可以說它支持的格式是相當全面的。視頻格式支持:cinepak、dv、h.263、h.264/mpeg-4 avc、huffyuv、indeo、mjpeg、mpeg-1、mpeg-2、mpeg-4 part 2、realvideo、sorenson、theora、wmv。音頻格式支持:aac、ac3、alac、amr、flac, intel music coder, monkeys audio、mp3、musepack、realaudio、shorten、speex、vorbis、wma。網(wǎng)絡(luò)協(xié)議: rtp、rtsp、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃業(yè)降水施工合同
- 智能辦公清運施工合同
- 生物質(zhì)能私人施工合同
- 景區(qū)觀光車司機招聘協(xié)議
- 國際檢測設(shè)備租賃合同
- 公路工程技術(shù)人員工作總結(jié)(12篇)
- 糖尿病病人護理
- 糖尿病目前市場分析報告
- 2024互聯(lián)網(wǎng)公司與電信運營商網(wǎng)絡(luò)服務(wù)合同
- 高中升旗儀式的演講稿(32篇)
- 從分數(shù)到分式的教學設(shè)計
- 狹窄隧道汽車雙向行PLC控制設(shè)計
- 《2022年上海市初中語文課程終結(jié)性評價指南》中規(guī)定的150個文言實詞
- 修復科病歷書寫要求和標準(整理自北醫(yī)的材料)
- 移相整流變壓器設(shè)計及試驗
- 05S502閥門井圖集
- 舒方特方格練習(共6頁)
- 90、808系列鋁合金門窗自動計算下料表
- 管道定額價目表
- 工期日歷天計算器
- 相敏檢波電路
評論
0/150
提交評論