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

關(guān)于基于ARM嵌入式軟件設(shè)計教學(xué)的若干探索

2013-04-02 07:37:06于杰
關(guān)鍵詞:嵌入式調(diào)試設(shè)計

于杰

(廈門大學(xué)嘉庚學(xué)院 計算機(jī)科學(xué)與技術(shù)系,福建 漳州 363105)

關(guān)于基于ARM嵌入式軟件設(shè)計教學(xué)的若干探索

于杰

(廈門大學(xué)嘉庚學(xué)院 計算機(jī)科學(xué)與技術(shù)系,福建 漳州 363105)

嵌入式軟件設(shè)計是當(dāng)今社會需求的一個熱點,也是高校計算機(jī)專業(yè)教學(xué)的一個難點,長期以來高校的嵌入式軟件設(shè)計教學(xué)存在著忽視開源軟件教學(xué)工具,輕視軟件調(diào)試教學(xué),和缺乏軟件設(shè)計實例化等問題,本文主要在實際教學(xué)的基礎(chǔ)上,總結(jié)出若干解決辦法,從而達(dá)到提高嵌入式軟件設(shè)計教學(xué)水平的目的.

嵌入式;軟件設(shè)計;軟件調(diào)試;開源軟件;項目化;教學(xué)

目前,嵌入式產(chǎn)品已經(jīng)無處不在,通信、信息、數(shù)字家庭和工業(yè)控制等領(lǐng)域,隨處都能見到嵌入式產(chǎn)品.而ARM系列的處理器更是其中的佼佼者,這使得基于ARM的嵌入式系統(tǒng)成為當(dāng)今計算機(jī)領(lǐng)域最熱門的學(xué)科之一,龐大的嵌入式軟件系統(tǒng)的市場急需大量合格的專業(yè)人才,這無疑為高校的嵌入式軟件設(shè)計教學(xué)帶來了新的機(jī)遇[1].但與此同此,嵌入式知識的學(xué)習(xí)非常廣泛,不僅要學(xué)習(xí)程序設(shè)計的知識,同時也涉及到數(shù)據(jù)結(jié)構(gòu),計算機(jī)組成原理,操作系統(tǒng)和編譯原理等相關(guān)知識,這樣為相應(yīng)的教學(xué)帶來了不小的挑戰(zhàn),如何既能做到聯(lián)系相關(guān)課程的知識,又能突出嵌入式軟件設(shè)計本身的特點,便成為當(dāng)前嵌入式軟件設(shè)計教學(xué)急需解決的問題.而本文主要總結(jié)了作者在嵌入式軟件設(shè)計教學(xué)方面的經(jīng)驗,希望能夠?qū)ζ渌咝5那度胧杰浖O(shè)計教學(xué)有所啟發(fā).

1 開源軟件和開發(fā)環(huán)境的引入

目前高校傳統(tǒng)的嵌入式軟件教學(xué)主要采用的是ADS、RVDS、以及CodeWarrior等國外商業(yè)軟件進(jìn)行,這些商業(yè)軟件有著穩(wěn)定可靠、方便易用、可擴(kuò)展性強(qiáng)等諸多優(yōu)點,但是由于其商業(yè)性質(zhì)的原因,也不可避免的帶來了,諸如知識產(chǎn)權(quán),軟件費用,以及盜版泛濫等相關(guān)問題,這些問題已經(jīng)嚴(yán)重的影響了嵌入式軟件教學(xué)的進(jìn)一步發(fā)展.把開源軟件長期排除在外,使開源軟件教育以商業(yè)化培訓(xùn)為主,是少數(shù)人才能接受的“陽春白雪”式高端教育,未能形成開源人才的規(guī)模化培養(yǎng).對于國內(nèi)眾多開源企業(yè)來說,“招不到合適的人才”也成為長期困擾企業(yè)發(fā)展的瓶頸之一.而把開源軟件和開發(fā)環(huán)境引入高校課堂當(dāng)中,正是對開源軟件普及型教育的一種體現(xiàn),也是增強(qiáng)計算機(jī)專業(yè)畢業(yè)生競爭力的一種手段.

為此,筆者根據(jù)本校基于ARM的嵌入式軟件設(shè)計教學(xué)實際情況,使用GNU-Make與編譯器配合負(fù)責(zé)代碼的管理.GNU-Make可以支持大多數(shù)PC操作系統(tǒng),包括Windows、Linux、MacOS等,GNU-Make的機(jī)制簡單易懂且適用于模塊化的系統(tǒng),而且GNU-Make其完全免費的特性,更可以在實驗室等環(huán)境大面積的使用,而沒有費用問題,這樣就為學(xué)生的學(xué)習(xí)搭建了一個有效的平臺,而且,該平臺由于沒有過多的封裝,開放其內(nèi)部的細(xì)節(jié),也適合學(xué)生進(jìn)一步的了解,且具有良好的跨平臺移植能力,可用于多種教學(xué)和實驗環(huán)境中.

2 軟件調(diào)試的引入與強(qiáng)化

2.1 嵌入式軟件調(diào)試教學(xué)的起因

在大多數(shù)傳統(tǒng)的基于ARM嵌入式軟件設(shè)計更多的是強(qiáng)調(diào)怎樣進(jìn)行軟件的設(shè)計,希望通過程序設(shè)計的教學(xué),讓學(xué)生掌握相應(yīng)的知識,但這樣帶來的一個問題就是學(xué)生會認(rèn)為軟件開發(fā)的主要過程就是設(shè)計和編碼的過程而對調(diào)試和測試的理解和掌握不夠深刻.初學(xué)者在設(shè)計編寫程序的時候,很可能出現(xiàn)各種意料之外的情況,比如突然有一個錯誤報告,或者給出一個看似正確但卻并非我們期望的結(jié)果,也可能忽略用戶的命令,甚至長時間沒有反應(yīng)等,這些都是需要通過軟件調(diào)試來進(jìn)行解決的.筆者在教學(xué)過程中注意總結(jié)出初學(xué)者易犯的若干種錯誤,并給出解決這些錯誤的常見調(diào)試方法.

2.2 調(diào)試工具GDB的引入

通過對調(diào)試工具GDB的引用來向?qū)W生介紹常見的調(diào)試方法和思路,比如調(diào)試中必不可少的內(nèi)容—斷點,向?qū)W生講授關(guān)于斷點的細(xì)節(jié),包括設(shè)置、刪除和禁用斷點,從一個斷點移到另一個斷點,查看關(guān)于斷點的詳細(xì)信息等等.而對于這些調(diào)試最適應(yīng)的算法,當(dāng)非樹的遍歷莫屬,這樣就采用實例涉及遍歷樹的代碼,重點是介紹當(dāng)?shù)竭_(dá)斷點時如何方便的顯示樹中節(jié)點的內(nèi)容.再比如由于段錯誤而產(chǎn)生的致命運(yùn)行時錯誤,筆者首先介紹了崩潰時在底層發(fā)生了什么事,包括程序的內(nèi)存分配以及硬件與操作系統(tǒng)的協(xié)同作用.并繼而向?qū)W生介紹核心文件,包括如何創(chuàng)建核心文件,如何使用它們來完成“事后反思”.

2.3 錯誤代碼的解決

使用GDB工具進(jìn)行調(diào)試的前提是代碼的成功編譯,但是在實際的軟件開發(fā)當(dāng)中,學(xué)生經(jīng)常會遇到代碼不能編譯的情況,那么這時候,GDB調(diào)試工具將變得無能為力,因此一些常見的處理這種問題的方法也需要介紹給學(xué)生,比如如何處理缺少必要的庫造成的連接失敗問題,比如如何處理編譯器指出第x行有語法錯誤,而事實上第x行完全正確,真正的錯誤在前面的某一行.而這些過程中學(xué)生們會發(fā)現(xiàn)他們以前學(xué)過的確認(rèn)原則,二分法搜索原則非但不再抽象,晦澀,反而是一種有效的解決問題的方法和手段[2].

3 以系統(tǒng)移植為重點的實例化教學(xué)

現(xiàn)有的嵌入式教材大體可以分為兩類,一類教材泛泛而談:ARM、MIPS、x86等各種體系結(jié)構(gòu)處理器均做了介紹;uC/OS、Linux、WinCE等各種操作系統(tǒng)也是一一羅列其特色,但這種教材對于學(xué)生來說,更多的是走馬觀花的查閱,很難掌握嵌入式的基礎(chǔ)知識,更無法了解基于某一款處理器的基本開發(fā)過程.另一類教材通常是由嵌入式系統(tǒng)實驗設(shè)備廠家提供的,基本就是數(shù)據(jù)手冊加實驗手冊,學(xué)生使用這種教材往往只見樹木不見森林,也很難系統(tǒng)掌握嵌入式系統(tǒng)的基本理論和概念[3].

筆者在從事基于ARM的嵌入式軟件設(shè)計教學(xué)工作中,根據(jù)自己的授課經(jīng)驗,總結(jié)出一套實例化的教學(xué)方法,由于嵌入式程序開發(fā)平臺(PC機(jī))和運(yùn)行平臺(嵌入式設(shè)備)的不同,所以所有的嵌入式開發(fā)遇到的第一個問題,毫無疑問的就是軟件的移植,所以筆者的實例化教學(xué)也是圍繞著軟件移植而展開的.

首先是Bootloader的移植,介紹了Bootloader相關(guān)知識、移植方法及要注意的事項.之后以U-boot為例,詳細(xì)的分析了U-boot代碼,并修改U-boot代碼,使之支持Norflash和Nandflash、Nandflash啟動、DM9000網(wǎng)卡和YAFFS文件系統(tǒng).通過本實例的學(xué)習(xí),學(xué)生將會對嵌入式通用的Bootloader有一個大體的了解,并且可以熟練的移植U-boot和使用U-boot.

其次是內(nèi)核的移植,對Linux內(nèi)核組成和目錄進(jìn)行講解,分析Linux內(nèi)核的Makefile,解釋了Makefile的編譯流程,之后講解如何對內(nèi)核進(jìn)行剪裁配置,使之支持YAFFS、RTC時鐘、LCD和DM9000等,最終實現(xiàn)了在ARM平臺上的內(nèi)核移植,這樣學(xué)生將對Linux內(nèi)核有一個更深入的了解,學(xué)會如何進(jìn)行內(nèi)核的剪裁和內(nèi)核的移植,同時以Busybox為基礎(chǔ)進(jìn)行嵌入式開發(fā)板文件系統(tǒng)的移植,這樣學(xué)生通過對文件系統(tǒng)的選擇,對嵌入式系統(tǒng)特點有更深入的了解,也將熟練的掌握如何配置一個文件系統(tǒng)并對其進(jìn)行移植.

再次是驅(qū)動程序的移植,首先對Linux設(shè)備驅(qū)動進(jìn)行了介紹和分類,講解了設(shè)備驅(qū)動程序的移植步驟,以Hello world、led和按鍵三個實例介紹了Linux設(shè)備驅(qū)動的移植過程,之后講解了如何完善串口、USB、聲卡和SD卡的驅(qū)動.通過這些的學(xué)習(xí),學(xué)生將會明白Linux設(shè)備驅(qū)動的重要性,學(xué)會如何寫一個簡單的Linux設(shè)備驅(qū)動并將此驅(qū)動編譯進(jìn)內(nèi)核,或者以模塊方式加載到內(nèi)核中,之后學(xué)生將學(xué)會如何完善Linux已有的一些驅(qū)動程序.

最后是應(yīng)用程序的移植,先對嵌入式GUI進(jìn)行簡單的介紹,并對常見的一些GUI進(jìn)行交叉編譯和安裝,之后進(jìn)行音頻解碼器madplay的移植、數(shù)據(jù)庫SQLite的移植和Webserver的移植,通過這些學(xué)習(xí),學(xué)生將掌握應(yīng)用程序移植的關(guān)鍵,達(dá)到舉一反三的目的,嘗試移植更多的應(yīng)用程序.由于現(xiàn)在Android系統(tǒng)的火爆和市場對Android人才的大量需求,筆者也加入了對Android系統(tǒng)的移植講解.

總結(jié),通過上述教學(xué)方法的實施,學(xué)生的學(xué)習(xí)目標(biāo)更加的確定,并使得學(xué)生對理論學(xué)習(xí)熱情和主動性都有所提高,加強(qiáng)了學(xué)生的動手能力,這些經(jīng)歷可能會改變一個人的學(xué)習(xí)和工作習(xí)慣,也許對學(xué)生來說是受益終身的.另外,由于學(xué)生在大學(xué)期間已經(jīng)有了一些項目開發(fā)的基礎(chǔ),從文檔寫作到涉及編碼的過程都得到了鍛煉,因此學(xué)生很容易找到工作,就業(yè)之后,也能非常順利的實現(xiàn)過渡.

〔1〕文全剛.嵌入式linux操作系統(tǒng)原理與應(yīng)用[M].北京航空航天大學(xué)出版社,2011.

〔2〕張云.軟件調(diào)試的藝術(shù)[M].人民郵電出版社,2009.

〔3〕李寧,宋薇,庫少平.項目化嵌入式教學(xué)方法研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(2):5-8.

G642

A

1673-260 X(2013)10-0240-02

猜你喜歡
嵌入式調(diào)試設(shè)計
瞞天過海——仿生設(shè)計萌到家
基于航拍無人機(jī)的設(shè)計與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
搭建基于Qt的嵌入式開發(fā)平臺
FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
電子制作(2017年19期)2017-02-02 07:08:38
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
調(diào)壓柜的調(diào)試與試運(yùn)行探討
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: www.youjizz.com久久| 丝袜久久剧情精品国产| 国产一级在线播放| 一本一本大道香蕉久在线播放| 亚洲综合香蕉| 欧美不卡视频在线观看| 她的性爱视频| 亚洲人妖在线| 国产91全国探花系列在线播放| 国产91蝌蚪窝| 婷婷色一二三区波多野衣| 免费看美女自慰的网站| 欧美综合在线观看| 99精品国产自在现线观看| 青青操国产| 久久久久中文字幕精品视频| 日本一区二区三区精品视频| 国产呦精品一区二区三区网站| 国产毛片基地| 亚洲性一区| 免费va国产在线观看| 毛片手机在线看| 四虎永久在线精品国产免费| 日韩免费无码人妻系列| 亚洲精品视频在线观看视频| 一级爆乳无码av| 人妻丰满熟妇αv无码| 精品丝袜美腿国产一区| 国产精品99久久久| 国产91av在线| 久久综合九九亚洲一区| 久久五月天综合| 亚洲女人在线| 国产精品55夜色66夜色| 免费 国产 无码久久久| 免费无码网站| 伊人久久久久久久| 在线观看国产精美视频| 国内自拍久第一页| 亚洲日韩精品无码专区| 国产区免费| 91亚洲国产视频| 五月天婷婷网亚洲综合在线| 亚洲国产成人超福利久久精品| 99热最新在线| 日本免费精品| 日日拍夜夜操| 国产91成人| 国产精品综合久久久| 久久96热在精品国产高清| 国产午夜精品一区二区三区软件| 日本精品一在线观看视频| 欧美亚洲国产日韩电影在线| 国产欧美日韩一区二区视频在线| 熟女视频91| 欧美另类视频一区二区三区| 69综合网| 国产真实乱子伦视频播放| 在线观看视频一区二区| 青青青草国产| 成人看片欧美一区二区| 久久精品中文无码资源站| 国产白丝av| 成人亚洲视频| 亚洲伊人电影| 国产jizz| 日韩一级毛一欧美一国产| 天堂中文在线资源| 国产精品嫩草影院av| 精品国产污污免费网站| 久久视精品| 老司机午夜精品网站在线观看| 欧美日本在线播放| 亚洲人成网站色7799在线播放| 色天堂无毒不卡| 毛片免费在线视频| 国产色婷婷| 中文字幕人成人乱码亚洲电影| 99re经典视频在线| 欧美成人影院亚洲综合图| 国产精品自拍露脸视频| 久久久国产精品免费视频|