999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux系統開發實驗課程教學設計

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


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

主站蜘蛛池模板: 国产资源免费观看| 国产一二三区视频| 国禁国产you女视频网站| 女人18毛片水真多国产| 亚洲天堂视频网站| 97精品久久久大香线焦| 欧洲亚洲一区| 国内精品自在欧美一区| 55夜色66夜色国产精品视频| 国产亚洲视频中文字幕视频| 欧美精品xx| 国产AV无码专区亚洲A∨毛片| 香蕉伊思人视频| 亚洲美女AV免费一区| 亚洲欧美日本国产综合在线| 久久精品aⅴ无码中文字幕| 四虎免费视频网站| 免费看久久精品99| 精品一区二区三区波多野结衣| 精品久久久久久久久久久| 性色一区| 91在线日韩在线播放| 国产毛片基地| 亚洲天堂啪啪| 狼友视频国产精品首页| 午夜日韩久久影院| 久青草免费在线视频| 在线观看国产精品第一区免费 | 日韩一区二区在线电影| 91久久偷偷做嫩草影院免费看| 免费 国产 无码久久久| 综合久久久久久久综合网| 亚洲网综合| 91成人在线观看视频| 婷婷亚洲综合五月天在线| 玖玖精品在线| 亚洲日本中文字幕乱码中文| 美女毛片在线| 成人在线视频一区| 亚洲无限乱码一二三四区| 国产超碰一区二区三区| 亚洲自拍另类| AV无码无在线观看免费| 国产黄在线免费观看| 中文字幕永久在线看| 日韩欧美视频第一区在线观看| 无码高清专区| 一本大道香蕉中文日本不卡高清二区| 久久96热在精品国产高清| 久久久久88色偷偷| 亚洲最大在线观看| 精品无码一区二区三区电影| 免费毛片a| 97人人模人人爽人人喊小说| 成人国产精品2021| 高h视频在线| 成人在线亚洲| 欧美专区日韩专区| 一级一级一片免费| 国产成人综合亚洲欧美在| 国产丰满大乳无码免费播放| 毛片a级毛片免费观看免下载| 波多野结衣一级毛片| 欧美午夜一区| 欧美在线国产| 久久这里只有精品8| 青青青视频91在线 | 一本二本三本不卡无码| 特级毛片8级毛片免费观看| 亚洲色图在线观看| 国产色图在线观看| 亚洲国产高清精品线久久| 精品国产免费观看一区| 国产成人综合久久精品尤物| 欧美日韩第三页| 亚洲精品色AV无码看| 日韩无码真实干出血视频| 国产三级视频网站| 亚洲国产中文欧美在线人成大黄瓜| 88av在线播放| 免费一级α片在线观看| 又黄又湿又爽的视频|