linux課程設(shè)計的相關(guān)論文同學(xué)們是怎么樣寫的呢?大家可以看看下面的論文,歡迎各位閱讀哦!
linux課程設(shè)計論文摘要:隨著嵌入式技術(shù)、物聯(lián)網(wǎng)技術(shù)的高速發(fā)展以及以嵌入式Linux為操作系統(tǒng)的應(yīng)用領(lǐng)域的增多,嵌入式Linux設(shè)計課程的教學(xué)也在各大院校開展起來。介紹了嵌入式Linux設(shè)計概念、系統(tǒng)架構(gòu)、設(shè)計內(nèi)容及發(fā)展方向,設(shè)置了嵌入式Linux設(shè)計課程內(nèi)容,包括嵌入式Linux系統(tǒng)體系結(jié)構(gòu)、引導(dǎo)程序、內(nèi)核、設(shè)備驅(qū)動程序、文件系統(tǒng)及圖形界面三部分內(nèi)容,對培養(yǎng)適應(yīng)社會需求的嵌入式技術(shù)人才具有重要意義。
關(guān)鍵詞:嵌入式Linux;體系結(jié)構(gòu);課程研究
近年來嵌入式Linux系統(tǒng)發(fā)展較快,在中國,以Linux為基礎(chǔ)的嵌入式操作系統(tǒng)也很活躍,其中中軟Linux、紅旗Linux、東方Linux是業(yè)界的代表。嵌入式Linux系統(tǒng)的應(yīng)用范圍很廣,尤其隨著智能手機及物聯(lián)網(wǎng)系統(tǒng)的發(fā)展,基于嵌入式Linux系統(tǒng)的電子產(chǎn)品已進入人們的生活,如基于Linux的Android系統(tǒng),基于Linux的智能家居系統(tǒng)、物聯(lián)網(wǎng)系統(tǒng),3G行業(yè)應(yīng)用如移動視頻監(jiān)控-車輛應(yīng)急指揮調(diào)度、遠程的區(qū)域監(jiān)測、安防領(lǐng)域、移動電子商務(wù)等。嵌入式Linux是把Linux內(nèi)核移植到一個專用嵌入式設(shè)備的CPU和主板上。嵌入式Linux和桌面Linux提供的API函數(shù)與內(nèi)核源代碼都是相同的,嵌入式Linux開發(fā)主要通過在桌面Linux利用源碼編輯器如vi編寫源代碼,通過交叉編譯器編譯出能在嵌入式開發(fā)平臺如手機、機頂盒或智能家居等產(chǎn)品上運行的可執(zhí)行文件。嵌入式Linux開發(fā)的工具還包括調(diào)試器、CVS等項目管理軟件等。
一、嵌入式Linux設(shè)計課程概述
嵌入式Linux設(shè)計是電子信息專業(yè)及相近專業(yè)的一門專業(yè)課,其目的是使學(xué)生了解主流嵌入式系統(tǒng)開發(fā)軟件嵌入式Linux驅(qū)動程序的設(shè)計和開發(fā)過程。學(xué)生熟悉掌握嵌入式系統(tǒng)常用的硬件接口時序、電氣特性;掌握針對硬件的Linux驅(qū)動程序?qū)崿F(xiàn)方法,包括I/O口、CAN總線、觸摸屏、IIC、異步串口、音頻、顯示、USB、以太網(wǎng)及Flash的使用及驅(qū)動程序的編寫。[1]熟悉嵌入式Linux的中斷處理、Boot Loader和內(nèi)核電啟動過程。
二、嵌入式Linux設(shè)計課程研究
1.嵌入式Linux系統(tǒng)體系結(jié)構(gòu)
(1)嵌入式Linux系統(tǒng)硬件組成。核心板:采用高性能嵌入式處理器、Mobile DDR、NAND Flash、NOR Flash;外圍電路:帶觸摸屏真彩色寬屏LCD、USB HOST、UART,RS232端口、立體聲語音輸出、耳機、自適應(yīng)10/100M網(wǎng)卡、板載GSM/GPRS模塊、步進電機電路模塊,搭載射頻模塊;擴展模塊:主/從藍牙模塊、Zigbee模塊、傳感器部分。
。2)軟件組成。操作系統(tǒng):Linux2.6.21,Linux2.6.38。引導(dǎo)程序:U-boot.1.1.6。圖形界面:QT 4.6。嵌入式Linux系統(tǒng)的開發(fā)流程。元器件選型:根據(jù)要實現(xiàn)的系統(tǒng)功能及目前市場上可選用的元器件來設(shè)計電路。原理圖編制:用Protel等相關(guān)電子CAD工具將設(shè)計好的電路圖在電腦中繪制出來。印制板設(shè)計:在Protel等工具中畫好芯片及電阻、電容等封裝,將原理圖轉(zhuǎn)換成PCB板圖,并完成布線。樣板試制:把PCB板圖進行制板,并焊接好相應(yīng)元器件。硬件功能測試:在焊接元器件時要按功能模塊順序焊接,焊接好一個模塊后接著測試其功能,發(fā)現(xiàn)問題及時解決。如通過USB供電模塊對應(yīng)的USB接口及降壓芯片、電阻、電容等焊接完后,將USB接口插到電腦USB接口處,并通過萬用表測量USB接口引腳電壓,如果顯示5V即為正確電壓,說明電路設(shè)計及焊接都成功。如果以后其他部分出現(xiàn)問題時可以排除這部分芯片的嫌疑。編寫引導(dǎo)程序:分匯編語言部分和C語言部分,實現(xiàn)硬件初始化和引導(dǎo)操作系統(tǒng)的功能。操作系統(tǒng)移植:在官網(wǎng)下載最新Linux版本,根據(jù)本設(shè)備硬件配置裁剪Linux源代碼并修改。文件系統(tǒng):沒有文件系統(tǒng),內(nèi)核不完整,最后內(nèi)核啟動后要找文件系統(tǒng),如果沒有文件系統(tǒng)會提示失敗。通過文件系統(tǒng)管理硬盤,下載應(yīng)用程序。驅(qū)動程序編寫:用戶程序無法直接操作用戶態(tài),要用中間層軟件―設(shè)備驅(qū)動程序。用戶程序必須通過系統(tǒng)調(diào)用,間接調(diào)用驅(qū)動程序訪問硬件。API設(shè)計與開發(fā):API設(shè)計是為了讓應(yīng)用程序員在開發(fā)時更方便,提供了繪圖接口函數(shù)、文件接口函數(shù)及控件函數(shù)等。應(yīng)用程序設(shè)計:根據(jù)功能需求設(shè)計如手機游戲、PDA基本管理功能、機頂盒信號處理等。[2]系統(tǒng)聯(lián)調(diào):產(chǎn)品所有功能設(shè)計好后,整體加載到硬件設(shè)備中,調(diào)試其功能穩(wěn)定性。樣機支付:加工外殼,封裝好設(shè)備,可以投入市場。
該部分要在課程講解的基礎(chǔ)上帶領(lǐng)學(xué)生通過實踐課或課程設(shè)計完成一項電子產(chǎn)品的整體設(shè)計,讓學(xué)生真正體會到嵌入式產(chǎn)品是什么,怎么移植嵌入式Linux系統(tǒng)。
2.引導(dǎo)程序
引導(dǎo)程序Bootloader是系統(tǒng)加電后運行的第一段代碼,也就是在內(nèi)核啟動前運行的第一段程序。引導(dǎo)程序的功能:初始化硬件設(shè)備、建立內(nèi)存空間的映射圖。將操作系統(tǒng)內(nèi)核映像從Flash內(nèi)拷貝到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,即啟動操作系統(tǒng)。常見的Bootloader有Vivi、Blob、Redboot和U-Boot。下面介紹U-Boot的啟動流程:
。1)第一階段。依賴于CPU體系結(jié)構(gòu)的代碼,用匯編來實現(xiàn):系統(tǒng)上電后進入svc模式;關(guān)閉看門狗禁止所有中斷;進行初級硬件初始化后將自身代碼拷貝到SDRAM中;設(shè)置堆棧、清空bss段,最后跳轉(zhuǎn)到C語言實現(xiàn)的第二階段中。
。2)第二階段。設(shè)置參數(shù)引導(dǎo)內(nèi)核,并跳轉(zhuǎn)到內(nèi)核入口處。通常用C語言來實現(xiàn),可以實現(xiàn)復(fù)雜的功能,并具有很好的可讀性和可移植性。
該部分的源代碼量比較少,涉及到ARM匯編和C語言編程,是整個系統(tǒng)中的第一段代碼,很重要,需要帶著學(xué)生從第一行代碼開始逐行剖析。 3.嵌入式Linux內(nèi)核
分析內(nèi)核源碼:包括初始化Cache、Mum等設(shè)置;內(nèi)核解壓函數(shù);非壓縮內(nèi)核啟動匯編段。內(nèi)核移植:修改與具體的硬件構(gòu)架和開發(fā)板類型相關(guān)的文件代碼,如.config文件。選擇相近的demo板,可以最大實現(xiàn)代碼重用,在此基礎(chǔ)上進行必要的修改。對不同類型的NAND Flash、網(wǎng)卡、YAFFS FLASH進行移植修改。Linux代碼量很大,該部分的學(xué)習(xí)重點是如何移植Linux到嵌入式平臺上,如何裁剪代碼。
4.設(shè)備驅(qū)動程序
上層應(yīng)用程序是通過驅(qū)動程序使用底層硬件。應(yīng)用程序使用標準庫調(diào)用,用戶程序必須通過系統(tǒng)調(diào)用,間接調(diào)用驅(qū)動程序訪問硬件。每個硬件接口不一樣,由內(nèi)核提供黑匣子接口屏蔽用戶。設(shè)備驅(qū)動程序分為字符設(shè)備驅(qū)動程序(包括各種串行接口、并行接口等)、塊設(shè)備驅(qū)動程序(包括磁盤設(shè)備等)、網(wǎng)絡(luò)設(shè)備驅(qū)動程序(包括網(wǎng)卡等)及雜項設(shè)備驅(qū)動程序(如SCSI、時鐘等)。[3]驅(qū)動程序代碼也是以移植修改為主,根據(jù)新增加接口及設(shè)備型號修改廠商支持的原有程序代碼。
5.文件系統(tǒng)
Linux中一切皆文件,所有的設(shè)備、內(nèi)存都模擬成文件。Linux的文件系統(tǒng)包括四種:命名空間、API(用來便利和操作對象的一套系統(tǒng)調(diào)用)、安全模型(用來保護、隱藏和共享事物的方案)和實現(xiàn)(把邏輯模型同實際硬件聯(lián)系到一起的軟件)。建立在Flash上的文件系統(tǒng)包括EXT2、Jffs2、yaffs、CRAMFS、proc等文件類型。Linux下的文件分成五種文件類型:字符設(shè)備、塊設(shè)備、連接、普通文件和目錄。
構(gòu)建嵌入式文件系統(tǒng)先構(gòu)建根文件目錄,文件系統(tǒng)通過busybox工具集來制作目錄和根文件系統(tǒng),通過mk命令做成crmafs只讀根文件系統(tǒng)鏡像,最后燒寫根文件系統(tǒng)。
6.圖形界面
QT是現(xiàn)在流行的跨平臺的C++圖形用戶界面(GUI)工具包。通過QT能設(shè)計2D、3D等多種界面圖形。在QT程序中,利用信號和插槽機制進行對象間的通信。QT有Windows版本,可以在Windows操作系統(tǒng)中開發(fā)后通過交叉編譯后移植到嵌入式Linux環(huán)境中。[4]在設(shè)計嵌入式Linux界面時使用Windows QT4.0在Windows環(huán)境下開發(fā),屬于可視化界面,不用通過代碼創(chuàng)建控件,通過工具可以直接拖拉控件到窗口中,簡單方便。
三、嵌入式Linux的發(fā)展方向
嵌入式Linux發(fā)展的前景非常好,但是人才的缺乏已經(jīng)成為當(dāng)前制約嵌入式Linux發(fā)展的瓶頸。一方面,因為嵌入式人才領(lǐng)域門檻較高,從事嵌入式軟件開發(fā)的工作人員不僅要熟練掌握C/C++、匯編語言等基礎(chǔ),而且對Linux內(nèi)核和底層驅(qū)動程序及硬件都要熟悉。另一方面,因為這一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時間不長,如ARM11/A8處理器、嵌入式Linux操作系統(tǒng)、無線通信協(xié)議、移動USB3.0高速傳輸?shù),目前國?nèi)乃至國際上能夠掌握這些新技術(shù)的人才相當(dāng)匱乏。所以近幾年包括未來幾年,市場對嵌入式Linux人才的需求都非常旺盛。
四、總結(jié)
嵌入式Linux設(shè)計課程涉及嵌入式Linux系統(tǒng)構(gòu)建、驅(qū)動開發(fā)、內(nèi)核移植、根文件構(gòu)建、應(yīng)用及圖形開發(fā)。嵌入式Linux設(shè)計還可以增加系統(tǒng)管理部分內(nèi)容,如服務(wù)器管理、數(shù)據(jù)庫管理、網(wǎng)絡(luò)配置、防火墻配置與管理、日志管理及維護等。隨著Linux操作系統(tǒng)的完善和發(fā)展,以嵌入式Linux為內(nèi)核的嵌入f系統(tǒng)也已無處不在。數(shù)字化、智能化使傳統(tǒng)設(shè)備電子化,具有這些功能的嵌入式Linux操作系統(tǒng)的應(yīng)用前景會越來越廣,學(xué)好該課程對發(fā)展嵌入式系統(tǒng)、物聯(lián)網(wǎng)技術(shù)具有重要意義。
參考文獻:
[1]王小妮.基于嵌入式系列課程的教學(xué)改革與探索[J].教育理論與教學(xué)研究,2013,(5).
[2]冼進.嵌入式Linux應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2007.
[3]劉淼.嵌入式系統(tǒng)接口設(shè)計與Linux驅(qū)動程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[4]韓少云.基于嵌入式Linux的Qt圖形程序?qū)崙?zhàn)開發(fā)[M].北京:北京航空航天大學(xué)出版社,2012.
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。