亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式Linux系統(tǒng)開發(fā)實驗課程教學設(shè)計

        2011-01-01 00:00:00盛琳
        計算機教育 2011年2期


          摘要:為培養(yǎng)學生嵌入式Linux系統(tǒng)的開發(fā)設(shè)計能力,并對受教育者實現(xiàn)分層次教育,在認真分析了一些重點實驗內(nèi)容的基礎(chǔ)上,提出將實驗劃分為基礎(chǔ)知識,基本技術(shù)以及綜合應(yīng)用三類,并給出了相應(yīng)的實驗內(nèi)容。實踐證明這些實驗內(nèi)容對促進嵌入式系統(tǒng)教學有著重要意義。
          關(guān)鍵詞:實驗教學;嵌入式系統(tǒng);Linux系統(tǒng)
          
          嵌入式Linux系統(tǒng)由于具有開源、網(wǎng)絡(luò)功能強大、內(nèi)核穩(wěn)定高效等特性,在產(chǎn)品開發(fā)周期、產(chǎn)品的功能可擴展性、開發(fā)時的人力投入等方面都具有顯著的優(yōu)勢,因此廣泛應(yīng)用于中低端智能電子設(shè)備中。隨著物聯(lián)網(wǎng)的趨熱,作為物聯(lián)網(wǎng)的底層技術(shù)之一的嵌入式智能技術(shù)將具有巨大的市場前景[1-2]。
          而在高校教學中,對于嵌入式技術(shù)這類強調(diào)實踐性的學科,實驗對于培養(yǎng)學生的實際操作能力和解決問題的能力是至關(guān)重要的。本文針對當前高等院校嵌入式實驗課程,特別是嵌入式實時軟件開發(fā)這門課程的教學投入不足、學生學習效果不佳的問題,提出了具體的實驗教學設(shè)計方案。并且詳細地剖析了一些重點實驗,給出了這些實驗在教學設(shè)計中實現(xiàn)的具體方案。
          1嵌入式Linux系統(tǒng)開發(fā)實驗課程分析
          嵌入式Linux課程設(shè)計具有很強的滲透性,與其他專業(yè)課程相比,嵌入式Linux課程設(shè)計具有獨特的特點[3]:該課程對學生的專業(yè)知識有較高的要求,課程具有交叉性,并且對學生的動手能力和系統(tǒng)思考解決問題的能力要求較高。
          通過實驗,學生能夠掌握嵌入式Linux系統(tǒng)程序設(shè)計方面的基本概念和技能,嵌入式軟件設(shè)計的一般方法和流程,以及基本的實時控制方法、嵌入式網(wǎng)絡(luò)編程、嵌入式文件系統(tǒng)操作、I/O控制等知識;通過綜合實驗的學習和模擬,使學生能夠達到實際開發(fā)能力的目的。然而嵌入式系統(tǒng)的一大特色表現(xiàn)在發(fā)展速度上[4]。嵌入式系統(tǒng)的應(yīng)用無處不在,其知識的新陳代謝的非??欤录夹g(shù)層出不窮,這就需要教師不斷地將新的應(yīng)用技術(shù)補充到嵌入式系統(tǒng)教學體系之中,推陳出新,設(shè)計出新的實驗項目。在實際的教學實驗中,針對嵌入式系統(tǒng)實驗,教師應(yīng)注重培養(yǎng)學生自己動手設(shè)計開發(fā)綜合項目的能力,使學生能夠設(shè)計出實用的嵌入式軟件系統(tǒng),適應(yīng)于社會的需要。
          本文的實驗運行在ARM-Linux操作系統(tǒng)下,結(jié)合ARM2410/PXA270/OMAP5910平臺的嵌入式Linux程序設(shè)計與系統(tǒng)開發(fā)技術(shù),秉承理論與實踐相結(jié)合的思想,幫助學生快速跨入嵌入式系統(tǒng)開發(fā)的門檻。
          2嵌入式Linux系統(tǒng)開發(fā)實驗教學設(shè)計
          嵌入式系統(tǒng)開發(fā)課程涉及操作系統(tǒng)分析和應(yīng)用軟件編程等知識,學生需要能夠理解嵌入式實時操作系統(tǒng)的工作原理、掌握基本的開發(fā)流程和開發(fā)工具的使用方法。在實驗的設(shè)計上既有簡單的基礎(chǔ)實驗也有復(fù)雜的綜合實驗,每部分的實驗環(huán)節(jié)充分體現(xiàn)了“分層次、分階段”的教學思想。本文將實驗分為三部分:
          2.1基礎(chǔ)性實驗
          目的是讓學生了解嵌入式軟件和硬件的一般開發(fā)環(huán)境與流程;熟悉實驗開發(fā)工具,掌握實驗開發(fā)工具的操作方法及使用,熟悉軟件編程環(huán)境,為更進一步實驗做準備。
          2.1.1嵌入式應(yīng)用程序交叉開發(fā)環(huán)境的建立
          本實驗介紹了一般的嵌入式開發(fā)流程,以及開發(fā)環(huán)境中的軟件和硬件的安裝與調(diào)試。目的是讓學生了解嵌入式交叉編譯的相關(guān)知識,以及能夠搭建嵌入式Linux系統(tǒng)的開發(fā)環(huán)境。
          2.1.2開發(fā)基本的嵌入式應(yīng)用程序?qū)嵗?br/>  通過嵌入式應(yīng)用程序Makefile與Hello World實驗,使學生熟悉Linux開發(fā)環(huán)境,了解基本的嵌入式開發(fā)的基本過程,以及Makefile的基本內(nèi)容,掌握基本的程序設(shè)計方法與流程,建立起任務(wù)的概念,為后續(xù)的應(yīng)用程序的設(shè)計打基礎(chǔ)。
          2.1.3Linux 多線程使用實例——生產(chǎn)者-消費者協(xié)議
          通過本實驗,學生可以了解操作系統(tǒng)提出的多個機制對線程的執(zhí)行順序進行限制,包括互斥鎖和條件變量等機制。在這里引入生產(chǎn)者—消費者模型對多線程的管理機制進行描述。目的是讓學生了解多線程程序設(shè)計的基本原理,并且使學生學習pthread庫函數(shù)的使用。
          2.1.4進程相關(guān)的應(yīng)用程序設(shè)計——進程創(chuàng)建及通信
          通過本實驗,學生可以了解對于操作系統(tǒng)進程的一些基本操作,包括進程函數(shù)、信號函數(shù)和管道函數(shù)的相關(guān)使用機制等。目的是讓學生了解在Linux下進程通信的相關(guān)原理,以及掌握使用進程進行相關(guān)應(yīng)用程序設(shè)計的能力。
          2.2基本技能性實驗
          通過構(gòu)建嵌入式Linux系統(tǒng)以及內(nèi)核定制、系統(tǒng)引導(dǎo)、文件系統(tǒng)、接口設(shè)計、驅(qū)動程序開發(fā)、圖形界面設(shè)計、以及通信應(yīng)用等實驗,學生可以更清楚深刻地理解嵌入式Linux系統(tǒng)的相關(guān)術(shù)語,體會嵌入式Linux系統(tǒng)的組成要素,提高操作的人性化水平、完成功能完善的應(yīng)用系統(tǒng)。目的是讓學生掌握嵌入式系統(tǒng)特有的編程機制和提供的各種編程接口,使之具備基本的嵌入式程序開發(fā)技能。
          2.2.1嵌入式Linux內(nèi)核、引導(dǎo)系統(tǒng)和文件系統(tǒng)實驗
          通過構(gòu)建嵌入式Linux系統(tǒng)以及內(nèi)核定制等實驗,學生可以更清楚深刻地理解嵌入式Linux系統(tǒng)的相關(guān)術(shù)語、體會嵌入式Linux系統(tǒng)的組成要素。目的是讓學生了解Linux內(nèi)核的結(jié)構(gòu)、具有編譯Linux內(nèi)核的能力,以及了解一個操作系統(tǒng)的構(gòu)造。
          1)Linux內(nèi)核裁剪與編譯實驗。
          以源程序的形式提供給學生一個分析研究的例子,展示內(nèi)核的配置、內(nèi)核鏡像的編譯過程以及內(nèi)核的測試。讓學生了解Linux內(nèi)核的結(jié)構(gòu),以及操作系統(tǒng)的構(gòu)造,使學生具有編譯Linux內(nèi)核的能力。
          2) 引導(dǎo)系統(tǒng)和文件系統(tǒng)實驗。
          此處利用一個階段性的綜合性實驗—軟盤Linux操作系統(tǒng)的實現(xiàn),使學生了解一個操作系統(tǒng)的構(gòu)造,以及如何制作軟件Linux操作系統(tǒng)。在該實驗中,要求學生使用軟盤進行GRUB配置,讓學生觀察如何實現(xiàn)的引導(dǎo)系統(tǒng);之后使用make menuconfig進行內(nèi)核配置,再使用BusyBox編譯生成一個新的根文件系統(tǒng),使學生了解文件系統(tǒng)是如何實現(xiàn)的;最后將內(nèi)核鏡像和根文件系統(tǒng)整合到軟盤中完成實驗。學生在讀懂源程序流程的基礎(chǔ)上可以對例程進行修改,驗證是否完成所設(shè)想的功能。
          2.2.2嵌入式Linux接口設(shè)計與驅(qū)動程序?qū)嶒?br/>  驅(qū)動開發(fā)是嵌入式Linux系統(tǒng)開發(fā)中一個重要的組成部分,此部分實驗對學生的前述基本功要求較高,要求學生不僅要熟悉Linux的內(nèi)核機制、驅(qū)動程序與用戶級應(yīng)用程序的接口關(guān)系,還要考慮設(shè)備的并發(fā)操作等因素,而且要了解所開發(fā)硬件的工作原理。
          1) 虛擬驅(qū)動模塊實驗。
          使用靜態(tài)結(jié)點方式進行驅(qū)動程序的開發(fā)和測試。需要學生首先創(chuàng)建一個新目錄,并在其中編寫驅(qū)動程序nodevfs.c和Makefile文件,然后編譯生成驅(qū)動程序模塊。基于該驅(qū)動程序模塊編寫測試程序。然后將程序模塊裝入到目標開發(fā)板上,建立設(shè)備結(jié)點并連接,運行及測試程序。通過本實驗學生可以學習在Linux下進行驅(qū)動設(shè)計的原理,掌握使用靜態(tài)結(jié)點方式進行開發(fā)調(diào)試的過程以及如何使用動態(tài)devfs方式進行開發(fā)調(diào)試的過程。
          2)A/D接口驅(qū)動實驗。
          要求學生使用C語言編程Makefile文件和線程庫,完成A/D驅(qū)動程序以及測試程序。例如要求學生編程實現(xiàn)采集A/D前三路通道信息,并在終端上顯示0~9的范圍。通過本實驗,學生能夠掌握程序編寫的基本過程,以及了解S3C2410芯片的8通道10位A/D的操作與控制。
          2.2.3嵌入式Linux圖形界面實驗
          
          1)Qt圖形界面相關(guān)實驗。
          要求學生使用C語言進行編程,以及Makefile文件來完成Qt圖形界面相關(guān)實驗。通過本實驗使學生熟悉如何在Linux環(huán)境下安裝Qt和Qt/Embedded環(huán)境,如何在Qt/Embedded環(huán)境下使用qvfb顯示程序結(jié)果,以及如何完成Qt/Embedded的交叉編譯環(huán)境并且運行程序。
          2)Qtopia的移植以及編程實驗。
          本實驗的目的在于使學生熟悉如何在Linux環(huán)境下安裝Qtopia環(huán)境,如何使用qvfb顯示Qtopia環(huán)境,以及如何在開發(fā)板上運行Qtopia環(huán)境。在了解了安裝Qtopia的基本步驟后,需要將Qtopia移植到ARM平臺上運行。
          2.2.4嵌入式Linux下的通信實驗
          隨著嵌入式系統(tǒng)技術(shù)的發(fā)展,純單機工作已經(jīng)遠遠不能滿足用戶的需求,因此各個系統(tǒng)之間的信息交互由于具有廣泛的應(yīng)用價值面成為嵌入式技術(shù)更深層次的應(yīng)用。因此需要學生掌握嵌入式Linux系統(tǒng)下的各種通信應(yīng)用,包括串口通信、網(wǎng)絡(luò)通信、藍牙通信以及CAN總線通信。學生可以嘗試把通信編程和之前的各種案例結(jié)合起來,完成功能更加完善的應(yīng)用系統(tǒng)。
          1) 串口通信實驗。
          串口作為計算機一種常用的接口,具有連接線少、通信簡單的優(yōu)點,因此得到廣泛應(yīng)用。特別是在嵌入式系統(tǒng)的開發(fā)和應(yīng)用中,經(jīng)常需要使用宿主機實現(xiàn)目標機的調(diào)試及現(xiàn)場數(shù)據(jù)的采集和控制。從而通過串口線連接宿主機和目標機達到通信的目的。
          要求學生編寫發(fā)送端程序和接收端程序,發(fā)送端程序經(jīng)交叉編譯后在目標機上運行,接收端程序在宿主機上運行,發(fā)送端程序通過串口發(fā)送字符給接收端。本實驗的目的在于使學生了解使用Telnet登陸目標機的方法以及掌握串口通信的編程方法。
          2) 網(wǎng)絡(luò)通信實驗。
          隨著網(wǎng)絡(luò)的發(fā)展,需要解決網(wǎng)絡(luò)間不同主機進程間的相互通信問題。為了解決網(wǎng)絡(luò)上的不同主機,可以用相同的進程號來表示沒有任何關(guān)系的兩個進程的問題,從及操作系統(tǒng)支持的網(wǎng)絡(luò)協(xié)議眾多,不同協(xié)議的工作方式不同,地址格式不同等問題,實驗需要學生首先熟悉TCP/IP協(xié)議中引入的地址和端口的概念,并要求學生使用C語言編寫skt_cli.c程序,stk_ser.c程序以及相應(yīng)的Makefile文件,編譯成功后生成執(zhí)行文件后,在嵌入式開發(fā)平臺和宿主機上運行測試。本部分實驗?zāi)康脑谟谑箤W生了解在Linux系統(tǒng)下的Socket通信的基本原理,以及使學生掌握Socket編程的相關(guān)知識。
          3) 藍牙相關(guān)實驗。
          藍牙計劃主要是面向網(wǎng)絡(luò)中各類數(shù)據(jù)及語音設(shè)備,使用無線微波的方式將它們連成一個微網(wǎng),多個微網(wǎng)之間也可以互連,從而方便快速地實現(xiàn)各類設(shè)備之間的通信。本實驗要求學生編譯內(nèi)核,使內(nèi)核包含藍牙模塊的相關(guān)驅(qū)動,重新燒寫內(nèi)核,最終使開發(fā)板上的藍牙適配器能夠和Windows主機中的藍牙適配器建立連接。其目的使學生掌握藍牙設(shè)備通信原理,以及Linux嵌入式開發(fā)平臺上藍牙設(shè)備的使用。
          4)CAN總線實驗。
          要求學生使用C語言進行編程,完成Makefile文件,CAN驅(qū)動程序,以及測試程序的編寫。目的在于使學生掌握CAN總線通信原理,以及學習CAN總線控制器MCP2510驅(qū)動的開發(fā),使學生能夠更改CAN應(yīng)用程序的內(nèi)容,實現(xiàn)兩臺開發(fā)板之間CAN數(shù)據(jù)信息的收發(fā)。
          2.3綜合應(yīng)用性實驗
          此階段實驗?zāi)康脑谟谶\用基礎(chǔ)技能部分所學,進行綜合應(yīng)用,獨立完成項目開發(fā)。由于是綜合實驗,因此在第二階段即給出題目,要求學生在整個實驗階段進行構(gòu)思與準備,最后連接代碼。以基于藍牙技術(shù)的嵌入式點菜系統(tǒng)為例,對項目進行整體規(guī)劃設(shè)計以及具體實現(xiàn)的步驟進行介紹。
          大多數(shù)無線點菜系統(tǒng)都是一套基于掌上電腦和802.11b無線局域網(wǎng)技術(shù)的實用型系統(tǒng)。從功能上來說,嵌入式開發(fā)板端即客戶端,包括開臺點菜模塊和藍牙數(shù)據(jù)傳輸模塊;PC機端即服務(wù)器端,包括菜單管理模塊、消費結(jié)賬模塊和藍牙數(shù)據(jù)傳輸模塊。客戶端和服務(wù)器端的藍牙傳輸模塊都是通過后臺線程實現(xiàn)的,而其他模塊都是通過與Qt圖形界面的交互實現(xiàn)的。
          整個點菜系統(tǒng)的通信結(jié)構(gòu)為一個微微網(wǎng),服務(wù)器端位于該微微網(wǎng)的中心節(jié)點,利用BT_PROTO_ RFCOMM協(xié)議與其他的點菜端進行通信。
          1) 服務(wù)器端設(shè)定了接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的緩沖區(qū),分別保存接收到的點菜信息和要發(fā)送的結(jié)賬房間號,利用多線程技術(shù)實現(xiàn)數(shù)據(jù)的發(fā)送、接收和界面事件處理的“并行”執(zhí)行。服務(wù)器端程序一運行,在建立圖形界面的同時,創(chuàng)建用于藍牙通信的線程并進行連接監(jiān)聽;當客戶端建立藍牙連接后,通信線程不斷地從與點菜終端的連接中讀取數(shù)據(jù),若讀到數(shù)據(jù),則保存到接收數(shù)據(jù)緩沖區(qū)中,表示有點菜信息,便進行信息提取并保存到數(shù)據(jù)庫的消費信息表中。同時,不斷地檢查發(fā)送數(shù)據(jù)緩沖區(qū),若緩沖區(qū)內(nèi)容不為空,表示有了結(jié)賬的房間,則向點菜終端發(fā)送該數(shù)據(jù)。同樣,客戶端也設(shè)定了接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的緩沖區(qū),分別保存接收到的結(jié)賬房間號和要發(fā)送點菜信息,利用多線程技術(shù)實現(xiàn)數(shù)據(jù)的發(fā)送、接收和界面事件處理的“并行”執(zhí)行。
          2) 藍牙程序的開發(fā)主要是利用Bluez協(xié)議棧中的相關(guān)庫函數(shù),主要數(shù)據(jù)結(jié)構(gòu)是sockaddr_rc,該結(jié)構(gòu)的用法與Socket中的sockaddr_rc類似。藍牙通信和Socket通信類似。另外藍牙地址BD_ADDR和相應(yīng)字符串之間的轉(zhuǎn)換函數(shù):bas2str(&rem_addr.rc_bda

        女同视频一区二区在线观看| 中文字幕在线观看国产双飞高清| 伊人狠狠色j香婷婷综合| 成人亚洲av网站在线看| 西川结衣中文字幕在线| 玩弄放荡人妻少妇系列视频| 国产欧美一区二区成人影院| 中文在线最新版天堂av| 97精品一区二区三区| 中文乱码字慕人妻熟女人妻| 亞洲綜合一區二區三區無碼| 日本精品一区二区三区在线播放 | 久久AⅤ天堂Av无码AV| 加勒比久久综合久久伊人爱| 欧美多人片高潮野外做片黑人| 国产a v无码专区亚洲av| 国产在线AⅤ精品性色| 亚洲毛片免费观看视频| 国产免费拔擦拔擦8x高清在线人| 全免费a级毛片免费看视频| 日本一区二区三区的免费视频观看 | 亚洲乱码中文字幕综合69堂| 少妇连续高潮爽到抽搐| 亚洲а∨精品天堂在线| 国产福利片无码区在线观看 | 小雪好紧好滑好湿好爽视频| 国产老熟女狂叫对白| 免费无遮挡毛片中文字幕| 久久精品亚洲94久久精品| 少妇人妻精品一区二区三区| 天天天综合网| 91麻豆精品激情在线观最新| 久久人人爽人人爽人人片av高请| 日本又黄又爽gif动态图| 国产亚洲精选美女久久久久 | 胳膊肘上有白色的小疙瘩| 自拍视频在线观看首页国产| 一本一道av无码中文字幕﹣百度| 亚洲中文字幕无码卡通动漫野外| 亚洲中文字幕综合网站| 久久精品国产亚洲av香蕉|