国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式系統(tǒng)應(yīng)用與開發(fā)課程教學(xué)探討

2014-04-23 06:46:46吳雪琴黃琨
電腦知識與技術(shù) 2014年7期
關(guān)鍵詞:C語言嵌入式編程

吳雪琴 黃琨

摘要:嵌入式系統(tǒng)應(yīng)用與開發(fā)是計(jì)算機(jī)應(yīng)用嵌入式方向?qū)I(yè)學(xué)生的專業(yè)核心課程,作者從市場和行業(yè)需求出發(fā),探討了該課程的重要性,同時(shí)也對本人的教學(xué)實(shí)踐進(jìn)行了總結(jié),包括教學(xué)過程中的思考,遇到的問題及采用的對策,在充分挖掘?qū)W生已有基礎(chǔ)的前提下加強(qiáng)學(xué)生的專業(yè)技能培養(yǎng)。

關(guān)鍵詞:嵌入式系統(tǒng)應(yīng)用與開發(fā)課程;知識處理;難點(diǎn)突破;專業(yè)技能

中圖分類號:TP313 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)07-1452-02

1 概述

21世紀(jì),科技發(fā)展日新月異。在全球新一輪汽車、通信、消費(fèi)類電子、工業(yè)、醫(yī)療、軍事等行業(yè)的巨大智能化裝備市場需求下,全球嵌入式產(chǎn)業(yè)得到了快速發(fā)展;無論是生活中常用的mp3、手機(jī)、語言復(fù)讀機(jī)、PDA、機(jī)頂盒、智能電視、智能冰箱,還是工業(yè)生產(chǎn)、娛樂中的機(jī)器人,以及國防系統(tǒng)無不采用嵌入式技術(shù)。因此嵌入式技術(shù)已經(jīng)成為后PC時(shí)代IT技術(shù)的主力軍。

正是巨大的市場需求,使得嵌入式行業(yè)對人才的需求極度旺盛,因此各高校紛紛開設(shè)了《嵌入式系統(tǒng)應(yīng)用與開發(fā)》課程,該文以該課程為背景,探討了學(xué)生如何才能學(xué)好該課程,使得在畢業(yè)時(shí)能找到理想從事該行業(yè)的工作。因?yàn)閷?shí)際情況是每年各公司及國內(nèi)家電公司如INTEL、TI、SONY、三星、TCL、聯(lián)想和康佳等企業(yè)紛紛出高薪聘請嵌入式人才,但依然處于企業(yè)找不到合適人才,學(xué)生畢業(yè)找不到合適工作的尷尬局面,這也一直是作為教師的我所思考的問題。

當(dāng)然形成這種局面的原因很多,如嵌入式技術(shù)對人才的專業(yè)水平、實(shí)際操作能力及技術(shù)產(chǎn)品化的要求較高。未經(jīng)過有針對性的實(shí)踐操作,未參與或獨(dú)立完成一件嵌入式成品就不能說掌握了嵌入式技術(shù),而成品是否能被社會認(rèn)可更是企業(yè)選擇人才的關(guān)鍵。所以企業(yè)需要一個(gè)平臺來選擇真正實(shí)用的人才;學(xué)生需要一個(gè)平臺來實(shí)踐和展示自我;學(xué)校需要一個(gè)平臺來驗(yàn)證教學(xué)體系是否完善,通過平臺取彼之長。在實(shí)際教學(xué)中我們采用的是ARM9的實(shí)驗(yàn)平臺,該平臺能讓學(xué)生動手自己開發(fā)由易到難的程序。

2 明確嵌入式系統(tǒng)應(yīng)用與開發(fā)的重要性

作為嵌入式教學(xué)的開始,教師有必要向?qū)W生介紹該課程的特點(diǎn)及作用范圍,培養(yǎng)學(xué)生學(xué)習(xí)你該課程及該方向的興趣。同時(shí)需要了解學(xué)生在學(xué)習(xí)嵌入式初期所遇到的常見問題,使他們不至于一開始就對該課程的學(xué)習(xí)產(chǎn)生畏難情緒。因此,需要在如下幾個(gè)方面做好對學(xué)生的引導(dǎo)工作。

1)學(xué)了它在實(shí)際中有沒有用?

現(xiàn)在在校學(xué)生最關(guān)注所學(xué)課程有沒有用?尤其是高職高專學(xué)生更注重實(shí)際能力的培養(yǎng)?那怎樣在實(shí)際應(yīng)用中進(jìn)行使用呢?由于該課程是計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的核心課程,所以一定要很肯定地告訴學(xué)生學(xué)了這門課程非常有用??梢詮奈覀兩磉叺膶?shí)際例子出發(fā)進(jìn)行舉例,如現(xiàn)代生活中玩具、家用電器,嵌入式的應(yīng)用無處不在,大到工業(yè)控制、航空領(lǐng)域等都離不開嵌入式。

2)我是否能夠?qū)W好該課程?

由于該課程是專業(yè)核心課程,它需要前期所學(xué)的大量專業(yè)基礎(chǔ)課作為鋪墊。同時(shí)該課程系統(tǒng)性較強(qiáng),需要“兩條腿”走路。一條是對硬件有一定的了解,至少能看懂原理圖及相關(guān)符號。另一條是要有編程基礎(chǔ),這里的編程主要采用的是C語言程序設(shè)計(jì)。要能靈活使用模塊化設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì),也要能使用指針方便地訪問各硬件模塊。當(dāng)然不僅要有這些理論知識作為基礎(chǔ),這門課程也需要實(shí)際動手,只有多動手了,才會有更濃的興趣進(jìn)行深入學(xué)習(xí)。因此要學(xué)好該課程,需要自己多動手在開發(fā)板上進(jìn)行編程控制。例如,可以從簡單的LED燈開始,一開始讓LED燈全熄滅,間隔一段時(shí)間后,又修改程序使其全部點(diǎn)亮,最后跑馬燈程序等,由易到難,逐步增加模塊實(shí)現(xiàn)功能,這樣學(xué)好是沒有問題的。

3)考試要怎么考?

如何考試是在校大學(xué)生最關(guān)注的問題之一,因此在每學(xué)期剛開始上課時(shí),就應(yīng)該明確告知學(xué)生該門課程要如何考以及最終成績的構(gòu)成方式,讓學(xué)生做到心中有數(shù),有的放矢。同時(shí)還應(yīng)告知學(xué)生考試不是目的,只是檢驗(yàn)知識的一種手段,特別是綜合性較強(qiáng)的學(xué)科,考試考好了,不一定能力就好。大學(xué)的學(xué)習(xí)不像中學(xué),應(yīng)多鼓勵(lì)學(xué)生看不同作者所寫教材,有的知識點(diǎn)在一本教材里沒看懂,但在其它教材里可能講述得非常清楚,因?yàn)槊總€(gè)方向不同的專業(yè)老師所編同一門教材的側(cè)重點(diǎn)不同。若是對程序不懂之處,那就更應(yīng)該多動手編程,然后下載到開發(fā)板上進(jìn)行調(diào)試觀察,這樣知識與能力才能不斷地得到提高。

4)今后在實(shí)際工作中能否用到?

對專科學(xué)校的學(xué)生,一般要到大二第二學(xué)期才開設(shè)該課程,很多高校在開設(shè)該課程時(shí)都有專門的實(shí)驗(yàn)室,這些實(shí)驗(yàn)室里有的平臺就是ARM+Linux。學(xué)生在平臺上既要移植操作系統(tǒng)內(nèi)核,又要在系統(tǒng)上編程實(shí)現(xiàn)操作??梢詫⒂械墓镜膶?shí)際系統(tǒng)先演示給學(xué)生看,讓他們了解所要學(xué)的知識與公司所做項(xiàng)目的聯(lián)系,通過這樣的引導(dǎo),讓他們知道所學(xué)課程在今后的工作中的重要性。當(dāng)然在平臺上真正做了東西的學(xué)生,對今后工作是很有幫助的

3 注重與其它課程的相關(guān)性

該課程系統(tǒng)性較強(qiáng),需要前期的很多專業(yè)課鋪墊,若沒有前期的這些專業(yè)課,要學(xué)好該課程是不容易的。該課程所需要的前期課程如下:

《數(shù)字電子技術(shù)》課程使學(xué)生對硬件邏輯有直觀的了解。《電工學(xué)》讓學(xué)生能更好地理解電路?!段C(jī)原理》課程中的指令及指令地址等知識為后續(xù)課程打下基礎(chǔ)?!禤rotel2004制圖》讓學(xué)生能根據(jù)要求自制原理圖及PCB板?!禖語言程序設(shè)計(jì)》課程使得學(xué)生學(xué)習(xí)后能靈活地進(jìn)行編程控制?!禠inux操作系統(tǒng)》課程使得學(xué)生學(xué)完基本命令后,能夠較好地移植內(nèi)核到所需要的平臺上。因此嵌入式系統(tǒng)應(yīng)用與開發(fā)不是孤立地一門課程,是綜合性非常強(qiáng)地一門課程。

4 教學(xué)的知識處理

我們所選教材是北京航空航天大學(xué)出版社的“十二五高等院校規(guī)劃教材”本科教材,該教材對ARM體系結(jié)構(gòu)、ARM系統(tǒng)硬件設(shè)計(jì)做了重點(diǎn)講解,同時(shí)還編寫了大量的有關(guān)S3C2410的硬件模塊工作原理及編程實(shí)現(xiàn)。但對于高職高專層次的學(xué)生來說,不需要太多的理論基礎(chǔ),重在應(yīng)用。所以,必須對教材內(nèi)容有選擇地加以處理。且本課程的主要目標(biāo)是讓學(xué)生掌握以ARM處理器為核心的嵌入式系統(tǒng)的開發(fā)流程與編程方法,為以后從事嵌入式相關(guān)工作打下良好的編程基礎(chǔ)。當(dāng)教學(xué)目標(biāo)確定后,才能根據(jù)以上目標(biāo)制定教學(xué)重點(diǎn)。因此本課程的教學(xué)重點(diǎn)為:掌握ARM處理器的基本指令及編程方法,能夠親自動手編寫小程序控制實(shí)驗(yàn)箱上的各小模塊。對于ARM的體系結(jié)構(gòu),ARM處理器所支持的數(shù)據(jù)類型、工作模式、寄存器組織及其尋址方式與ARM的32位指令集就成了必須掌握的知識點(diǎn)。而對于其中使用頻率低、難度較大的MMU(存儲器管理單元)、Cache、TAG RAM(物理地址)、總線接口單元、C語言與匯編語言的混合編程應(yīng)遵循的規(guī)則等部分內(nèi)容,只需弱化處理,即只讓學(xué)生了解這些內(nèi)容就行。還有混編規(guī)則也只需要在使用時(shí)能夠通過查找資料來注意寄存器、堆棧與參數(shù)的使用規(guī)則,在使用過程中再去理解這些規(guī)則的含義,通過這種方式來加深理解。

此外,為了更好地與實(shí)際接軌,我不再使用ADS作為ARM的開發(fā)環(huán)境,而改用Real View MDK作為開發(fā)工具,因?yàn)樵摴ぞ叱四軐?shí)現(xiàn)ADS所能實(shí)現(xiàn)的功能外,還能自動生成完善的啟動代碼并提供圖形化的窗口,從而提高開發(fā)效率及能大大縮短開發(fā)周期的軟件模擬器。

5 教學(xué)的難點(diǎn)突破

嵌入式系統(tǒng)應(yīng)用與開發(fā)是一門難度較大的課程,不僅因?yàn)槠渚C合性較強(qiáng),還需要學(xué)生有一定的電路知識及硬件知識作為背景,如果沒有電路知識基礎(chǔ),那就談不上要學(xué)好該課程。在教學(xué)過程中,其難點(diǎn)主要表現(xiàn)在如下方面:

首先,該課程是以ARM2410實(shí)驗(yàn)箱為硬件基礎(chǔ)結(jié)構(gòu)(作為高職高專的學(xué)生省去了使用Protel設(shè)計(jì)原理圖并制版過程),所以第一要務(wù)就是要使實(shí)驗(yàn)箱能工作,這就牽涉到基于ARM硬件啟動程序的設(shè)計(jì)工作。由于是與硬件打交道,因此首先得使用ARM的匯編語言來分配中斷向量表,初始化存儲系統(tǒng)、堆棧、有特殊要求的硬件模塊和應(yīng)用程序的執(zhí)行環(huán)境,并改變處理器的工作模式。該內(nèi)容是整個(gè)嵌入式開發(fā)的第一大難點(diǎn),由于學(xué)生對指令和硬件結(jié)構(gòu)不熟悉,所以對這部分的工作顯得力不從心。我采用的方法是逐個(gè)解決的辦法,先初始化將要使用到的模塊,盡量使用簡單易懂的指令實(shí)現(xiàn)。比如初始化應(yīng)用程序的運(yùn)行環(huán)境,并未像教材那樣將ROM與RAM區(qū)域進(jìn)行分開初始化,只需要初始化一個(gè)總的運(yùn)行環(huán)境就可。

其次,上層應(yīng)用就是通過編寫C程序?qū)崿F(xiàn),這需要學(xué)生對C語言中的算法、三大程序設(shè)計(jì)方法、函數(shù)與指針內(nèi)容比較熟悉。因?yàn)楣δ軐?shí)現(xiàn)基本是通過一個(gè)一個(gè)的函數(shù)模塊來完成,同時(shí),對于訪問硬件的具體部分時(shí)需要由指針來實(shí)現(xiàn)。如對于發(fā)光二極管的控制,首先要能根據(jù)硬件電路原理圖,找出二極管對應(yīng)連接處理器的哪個(gè)I/O口,而對I/O口的操作是通過對相關(guān)各個(gè)寄存器的讀/寫實(shí)現(xiàn),該部分內(nèi)容要由指針來實(shí)現(xiàn),最后設(shè)置I/O口的功能為輸出功能。在功能的實(shí)現(xiàn)上采用“累加法”,這就牽涉到C語言中的函數(shù)及函數(shù)調(diào)用的使用。先使用一個(gè)函數(shù)模塊通過對數(shù)據(jù)寄存器的訪問來實(shí)現(xiàn)一個(gè)功能,然后逐步添加模塊來實(shí)現(xiàn)新增功能。這樣既提高了代碼的可讀性、執(zhí)行效率和學(xué)生編程興趣,又提高了學(xué)生編寫程序的能力。

6 結(jié)束語

嵌入式系統(tǒng)應(yīng)用與開發(fā)是計(jì)算機(jī)應(yīng)用嵌入式專業(yè)方向?qū)W生的專業(yè)核心課程,作為一門綜合性的課程,我們在總結(jié)自己的一些教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上,試圖將與此相關(guān)的課程融入到整個(gè)專業(yè)體系中。讓學(xué)生從興趣出發(fā),從實(shí)際動手編程調(diào)試出發(fā),從而更好地為自己的專業(yè)能力打下良好的基礎(chǔ),以便能更好地服務(wù)社會。

參考文獻(xiàn):

[1] 陳玉仙.關(guān)于C語言教學(xué)幾個(gè)問題的探討[J].電腦知識與技術(shù),2013(13):3111-3113.

[2] 徐英慧.ARM9嵌入式系統(tǒng)設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2010.

[3] 周立功.S3C2410嵌入式Linux系統(tǒng)教程[M].廣州致遠(yuǎn)電子有限公司,2010.

猜你喜歡
C語言嵌入式編程
編程,是一種態(tài)度
元征X-431實(shí)測:奔馳發(fā)動機(jī)編程
編程小能手
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
紡織機(jī)上誕生的編程
基于C語言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
尚志市| 平顺县| 新安县| 工布江达县| 闸北区| 静安区| 大兴区| 凤凰县| 临漳县| 东方市| 汉沽区| 马鞍山市| 若尔盖县| 文安县| 横峰县| 郓城县| 昌宁县| 健康| 北京市| 静乐县| 兴安盟| 清徐县| 化隆| 金川县| 武平县| 顺义区| 盈江县| 德保县| 东乡县| 泰宁县| 陵水| 孝感市| 陵川县| 榆林市| 新建县| 崇左市| 玛纳斯县| 七台河市| 栾川县| 铜陵市| 集安市|