linux課程設計論文

來源:才華庫 2.59W

linux課程設計的相關論文同學們是怎麼樣寫的呢?大家可以看看下面的論文,歡迎各位閱讀哦!

linux課程設計論文

linux課程設計論文

摘要:隨著嵌入式技術、物聯網技術的高速發展以及以嵌入式Linux為作業系統的應用領域的增多,嵌入式Linux設計課程的教學也在各大院校開展起來。介紹了嵌入式Linux設計概念、系統架構、設計內容及發展方向,設定了嵌入式Linux設計課程內容,包括嵌入式Linux系統體系結構、載入程式、核心、裝置驅動程式、檔案系統及圖形介面三部分內容,對培養適應社會需求的嵌入式技術人才具有重要意義。

關鍵詞:嵌入式Linux;體系結構;課程研究

近年來嵌入式Linux系統發展較快,在中國,以Linux為基礎的嵌入式作業系統也很活躍,其中中軟Linux、紅旗Linux、東方Linux是業界的代表。嵌入式Linux系統的應用範圍很廣,尤其隨著智慧手機及物聯網系統的發展,基於嵌入式Linux系統的電子產品已進入人們的生活,如基於Linux的Android系統,基於Linux的智慧家居系統、物聯網系統,3G行業應用如移動視訊監控-車輛應急指揮排程、遠端的區域監測、安防領域、移動電子商務等。嵌入式Linux是把Linux核心移植到一個專用嵌入式裝置的CPU和主機板上。嵌入式Linux和桌面Linux提供的API函式與核心原始碼都是相同的,嵌入式Linux開發主要通過在桌面Linux利用原始碼編輯器如vi編寫原始碼,通過交叉編譯器編譯出能在嵌入式開發平臺如手機、機頂盒或智慧家居等產品上執行的可執行檔案。嵌入式Linux開發的工具還包括偵錯程式、CVS等專案管理軟體等。

一、嵌入式Linux設計課程概述

嵌入式Linux設計是電子資訊專業及相近專業的一門專業課,其目的'是使學生了解主流嵌入式系統開發軟體嵌入式Linux驅動程式的設計和開發過程。學生熟悉掌握嵌入式系統常用的硬體介面時序、電氣特性;掌握針對硬體的Linux驅動程式實現方法,包括I/O口、CAN匯流排、觸控式螢幕、IIC、非同步串列埠、音訊、顯示、USB、乙太網及Flash的使用及驅動程式的編寫。[1]熟悉嵌入式Linux的中斷處理、Boot Loader和核心電啟動過程。

二、嵌入式Linux設計課程研究

1.嵌入式Linux系統體系結構

(1)嵌入式Linux系統硬體組成。核心板:採用高效能嵌入式處理器、Mobile DDR、NAND Flash、NOR Flash;外圍電路:帶觸控式螢幕真彩色寬屏LCD、USB HOST、UART,RS232埠、立體聲語音輸出、耳機、自適應10/100M網絡卡、板載GSM/GPRS模組、步進電機電路模組,搭載射頻模組;擴充套件模組:主/從藍芽模組、Zigbee模組、感測器部分。

(2)軟體組成。作業系統:Linux2.6.21,Linux2.6.38。載入程式:。圖形介面:QT 4.6。嵌入式Linux系統的開發流程。元器件選型:根據要實現的系統功能及目前市場上可選用的元器件來設計電路。原理圖編制:用Protel等相關電子CAD工具將設計好的電路圖在電腦中繪製出來。印製板設計:在Protel等工具中畫好晶片及電阻、電容等封裝,將原理圖轉換成PCB板圖,並完成佈線。樣板試製:把PCB板圖進行制板,並焊接好相應元器件。硬體功能測試:在焊接元器件時要按功能模組順序焊接,焊接好一個模組後接著測試其功能,發現問題及時解決。如通過USB供電模組對應的USB介面及降壓晶片、電阻、電容等焊接完後,將USB介面插到電腦USB介面處,並通過萬用表測量USB介面引腳電壓,如果顯示5V即為正確電壓,說明電路設計及焊接都成功。如果以後其他部分出現問題時可以排除這部分晶片的嫌疑。編寫載入程式:分組合語言部分和C語言部分,實現硬體初始化和引導作業系統的功能。作業系統移植:在官網下載最新Linux版本,根據本裝置硬體配置裁剪Linux原始碼並修改。檔案系統:沒有檔案系統,核心不完整,最後核心啟動後要找檔案系統,如果沒有檔案系統會提示失敗。通過檔案系統管理硬碟,下載應用程式。驅動程式編寫:使用者程式無法直接操作使用者態,要用中間層軟體―裝置驅動程式。使用者程式必須通過系統呼叫,間接呼叫驅動程式訪問硬體。API設計與開發:API設計是為了讓應用程式設計師在開發時更方便,提供了繪圖介面函式、檔案介面函式及控制元件函式等。應用程式設計:根據功能需求設計如手機遊戲、PDA基本管理功能、機頂盒訊號處理等。[2]系統聯調:產品所有功能設計好後,整體載入到硬體裝置中,除錯其功能穩定性。樣機支付:加工外殼,封裝好裝置,可以投入市場。

該部分要在課程講解的基礎上帶領學生通過實踐課或課程設計完成一項電子產品的整體設計,讓學生真正體會到嵌入式產品是什麼,怎麼移植嵌入式Linux系統。

2.載入程式

載入程式Bootloader是系統加電後執行的第一段程式碼,也就是在核心啟動前執行的第一段程式。載入程式的功能:初始化硬體裝置、建立記憶體空間的對映圖。將作業系統核心映像從Flash內拷貝到RAM中,然後跳轉到核心的入口點去執行,即啟動作業系統。常見的Bootloader有Vivi、Blob、Redboot和U-Boot。下面介紹U-Boot的啟動流程:

(1)第一階段。依賴於CPU體系結構的程式碼,用匯編來實現:系統上電後進入svc模式;關閉看門狗禁止所有中斷;進行初級硬體初始化後將自身程式碼拷貝到SDRAM中;設定堆疊、清空bss段,最後跳轉到C語言實現的第二階段中。

(2)第二階段。設定引數引導核心,並跳轉到核心入口處。通常用C語言來實現,可以實現複雜的功能,並具有很好的可讀性和可移植性。

該部分的原始碼量比較少,涉及到ARM彙編和C語言程式設計,是整個系統中的第一段程式碼,很重要,需要帶著學生從第一行程式碼開始逐行剖析。   3.嵌入式Linux核心

分析核心原始碼:包括初始化Cache、Mum等設定;核心解壓函式;非壓縮核心啟動彙編段。核心移植:修改與具體的硬體構架和開發板型別相關的檔案程式碼,如ig檔案。選擇相近的demo板,可以最大實現程式碼重用,在此基礎上進行必要的修改。對不同型別的NAND Flash、網絡卡、YAFFS FLASH進行移植修改。Linux程式碼量很大,該部分的學習重點是如何移植Linux到嵌入式平臺上,如何裁剪程式碼。

4.裝置驅動程式

上層應用程式是通過驅動程式使用底層硬體。應用程式使用標準庫呼叫,使用者程式必須通過系統呼叫,間接呼叫驅動程式訪問硬體。每個硬體介面不一樣,由核心提供黑匣子介面遮蔽使用者。裝置驅動程式分為字元裝置驅動程式(包括各種序列介面、並行介面等)、塊裝置驅動程式(包括磁碟裝置等)、網路裝置驅動程式(包括網絡卡等)及雜項裝置驅動程式(如SCSI、時鐘等)。[3]驅動程式程式碼也是以移植修改為主,根據新增加介面及裝置型號修改廠商支援的原有程式程式碼。

5.檔案系統

Linux中一切皆檔案,所有的裝置、記憶體都模擬成檔案。Linux的檔案系統包括四種:名稱空間、API(用來便利和操作物件的一套系統呼叫)、安全模型(用來保護、隱藏和共享事物的方案)和實現(把邏輯模型同實際硬體聯絡到一起的軟體)。建立在Flash上的檔案系統包括EXT2、Jffs2、yaffs、CRAMFS、proc等檔案型別。Linux下的檔案分成五種檔案型別:字元裝置、塊裝置、連線、普通檔案和目錄。

構建嵌入式檔案系統先構建根檔案目錄,檔案系統通過busybox工具集來製作目錄和根檔案系統,通過mk命令做成crmafs只讀根檔案系統映象,最後燒寫根檔案系統。

6.圖形介面

QT是現在流行的跨平臺的C++圖形使用者介面(GUI)工具包。通過QT能設計2D、3D等多種介面圖形。在QT程式中,利用訊號和插槽機制進行物件間的通訊。QT有Windows版本,可以在Windows作業系統中開發後通過交叉編譯後移植到嵌入式Linux環境中。[4]在設計嵌入式Linux介面時使用Windows QT4.0在Windows環境下開發,屬於視覺化介面,不用通過程式碼建立控制元件,通過工具可以直接拖拉控制元件到視窗中,簡單方便。

三、嵌入式Linux的發展方向

嵌入式Linux發展的前景非常好,但是人才的缺乏已經成為當前制約嵌入式Linux發展的瓶頸。一方面,因為嵌入式人才領域門檻較高,從事嵌入式軟體開發的工作人員不僅要熟練掌握C/C++、組合語言等基礎,而且對Linux核心和底層驅動程式及硬體都要熟悉。另一方面,因為這一領域較新,目前發展太快,很多軟硬體技術出現時間不長,如ARM11/A8處理器、嵌入式Linux作業系統、無線通訊協議、移動USB3.0高速傳輸等,目前國內乃至國際上能夠掌握這些新技術的人才相當匱乏。所以近幾年包括未來幾年,市場對嵌入式Linux人才的需求都非常旺盛。

四、總結

嵌入式Linux設計課程涉及嵌入式Linux系統構建、驅動開發、核心移植、根檔案構建、應用及圖形開發。嵌入式Linux設計還可以增加系統管理部分內容,如伺服器管理、資料庫管理、網路配置、防火牆配置與管理、日誌管理及維護等。隨著Linux作業系統的完善和發展,以嵌入式Linux為核心的嵌入f系統也已無處不在。數字化、智慧化使傳統裝置電子化,具有這些功能的嵌入式Linux作業系統的應用前景會越來越廣,學好該課程對發展嵌入式系統、物聯網技術具有重要意義。

參考文獻:

[1]王小妮.基於嵌入式系列課程的教學改革與探索[J].教育理論與教學研究,2013,(5).

[2]冼進.嵌入式Linux應用開發詳解[M].北京:電子工業出版社,2007.

[3]劉淼.嵌入式系統介面設計與Linux驅動程式開發[M].北京:北京航空航天大學出版社,2006.

[4]韓少雲.基於嵌入式Linux的Qt圖形程式實戰開發[M].北京:北京航空航天大學出版社,2012.

熱門標籤