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