




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Zigbee無線傳感網(wǎng)技術(shù)與應(yīng)用城市交通照明燈系統(tǒng)01學(xué)習(xí)目標(biāo)01了解城市交通照明燈系統(tǒng)應(yīng)用03了解什么是無線傳感網(wǎng)05掌握SmartRF工具安裝與使用06掌握如何建立一個(gè)簡(jiǎn)單的ZigBee工程方法04掌握Z(yǔ)igBeeIAR開發(fā)環(huán)境安裝與基本使用02了解什么是ZigBee任務(wù)三:調(diào)試點(diǎn)亮智能LED燈要求讀者掌握在IAR編寫平臺(tái),使用調(diào)試工具欄調(diào)試程序,包含編譯程序、斷點(diǎn)調(diào)試、并最后生成HEX文件,下載至ZigBee開發(fā)板中。任務(wù)要求任務(wù)目標(biāo)01了解程序執(zhí)行過程了解調(diào)試程序的重要性了解編寫程序規(guī)范了解什么是HEX文件了解程序運(yùn)行基本原理02030405在計(jì)算機(jī)語(yǔ)言中我們必須逐行定義每一個(gè)動(dòng)作,這樣計(jì)算機(jī)才能執(zhí)行動(dòng)作,因?yàn)橛?jì)算機(jī)只能一步步執(zhí)行我們定義的動(dòng)作,如我們制作可樂雞翅-1將雞翅洗凈,2將雞翅過油,3撈起放入姜、蒜,4放入雞翅、鹽、生抽、湯、可樂中火慢煮20分鐘。計(jì)算機(jī)程序就如同這樣的一個(gè)過程,需要有1,2,3,4執(zhí)行的過程。計(jì)算機(jī)沒有那么聰明我們必須將所有需要執(zhí)行的每一個(gè)小動(dòng)作都明白地告訴它,這些的動(dòng)作就是我們的代碼。1.可樂雞翅儲(chǔ)備知識(shí)什么是軟件調(diào)試?我們從英文的原詞softwaredebug說起。debug是在bug一詞前面加上詞頭de,意思是分離和去除bug。2.蟲子產(chǎn)生-Bug1945年,一只小飛蛾鉆進(jìn)了計(jì)算機(jī)電路里,導(dǎo)致系統(tǒng)無法工作,一位名叫格蕾絲·赫柏的人把飛蛾拍死在工作日志上(見圖),寫道:就是這個(gè)bug(蟲子),害我們今天的工作無法完成——于是,bug一詞成了電腦系統(tǒng)程序的專業(yè)術(shù)語(yǔ),形容那些系統(tǒng)中的缺陷或問題。美國(guó)的艾肯博士研制出了馬克2號(hào)計(jì)算機(jī),在研制過程中,誕生了一個(gè)新詞“debug”來表示排除計(jì)算機(jī)故障,他的出現(xiàn)是這樣的:在盛夏的時(shí)候,美國(guó)水上研究中心使用馬克-Ⅱ計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理時(shí),經(jīng)常停止工作。儲(chǔ)備知識(shí)Bug名詞的由來其原因是,由于天氣炎熱加上機(jī)房無空調(diào)設(shè)備,致使大量飛蛾在機(jī)房中亂飛,這些飛蛾飛到正要閉合的繼電器觸點(diǎn)之間被繼電器觸電夾住,導(dǎo)致電路中斷,造成工作故障。只需要將飛蛾找出拿掉,就可以正常工作,因?yàn)轱w蛾的英文是bug,所以工作人員創(chuàng)出了debug表示排除計(jì)算機(jī)故障。2.蟲子產(chǎn)生-Bug儲(chǔ)備知識(shí)什么是軟件調(diào)試圖:飛娥的Bug簡(jiǎn)單來說,軟件是程序和文檔的集合,程序的核心內(nèi)容便是按一定順序排列的一系列指令。如果把每個(gè)指令看作一塊積木,那么軟件開發(fā)就是使用這些積木修建一個(gè)讓CPU(中央處理器)在其中運(yùn)行的交通系統(tǒng)。這個(gè)系統(tǒng)中有很多條不同特征的道路(函數(shù))。儲(chǔ)備知識(shí)如果說軟件的執(zhí)行過程就像是CPU在無數(shù)條道路(指令流)間飛奔,那么開發(fā)軟件的過程就是設(shè)計(jì)和構(gòu)建這個(gè)交通網(wǎng)絡(luò)的過程。其基本目標(biāo)是要讓CPU在這個(gè)網(wǎng)絡(luò)中奔跑時(shí)可以完成需求中所定義的功能。對(duì)這個(gè)網(wǎng)絡(luò)的其他要求通常還有可靠、靈活、健壯和易于維護(hù),開發(fā)者通過簡(jiǎn)單的改造就能讓其他類型的車輛(CPU)在上面行駛……開發(fā)一個(gè)滿足以上要求的軟件系統(tǒng)不是一件簡(jiǎn)單的事。2.蟲子產(chǎn)生-Bug測(cè)試編碼設(shè)計(jì)分析通過測(cè)試并發(fā)布后,還需要維護(hù)和支持工作。在以上環(huán)節(jié)中,每一步都可能遇到這樣那樣的技術(shù)難題。儲(chǔ)備知識(shí)在軟件世界中,螺絲刀、萬用表等傳統(tǒng)的探測(cè)工具和修理工具都不再適用了,取而代之的是以調(diào)試器為核心的各種軟件調(diào)試工具。軟件調(diào)試的基本手段有斷點(diǎn)、單步執(zhí)行、?;厮莸龋涑踔跃褪歉櫤陀涗汣PU執(zhí)行軟件的過程,把動(dòng)態(tài)的瞬間“凝固”下來,以供檢查和分析。對(duì)于初學(xué)者無需學(xué)習(xí)更高的調(diào)試技巧,僅需要掌握最基本的斷點(diǎn)、單步執(zhí)行即可。2.蟲子產(chǎn)生-Bug螺絲刀萬用表各類軟件調(diào)試工具3.調(diào)試工程環(huán)境準(zhǔn)備本任務(wù)所需軟件已安裝至電腦可直接使用,所需工程保存在“配套資料\任務(wù)三\”目錄中。本任務(wù)所需硬件:下載器*1、ZigBee開發(fā)板*1、5V電源適配器*1、USB下載線。任務(wù)實(shí)施3.調(diào)試工程任務(wù)實(shí)施編譯代碼本案例重點(diǎn)學(xué)習(xí)如何查找代碼存在的錯(cuò)誤并加以調(diào)試,故在案例工程中加入了許多初學(xué)者在編輯代碼過程中經(jīng)常錯(cuò)誤的問題。步驟1:運(yùn)行已有工程,找到并運(yùn)行任務(wù)三新建工程文件后綴名為“.eww”的工程文件。圖:運(yùn)行已有工程文件3.調(diào)試工程任務(wù)實(shí)施步驟2:嘗試編譯工程代碼,點(diǎn)擊菜單欄->Project工程->Compile編譯。圖:編譯項(xiàng)目3.調(diào)試工程任務(wù)實(shí)施步驟3:當(dāng)工程文件存在問題時(shí),位于軟件下方的Build欄,將彈出錯(cuò)誤提示,同時(shí)軟件的文本編輯區(qū)也將提示最近一行代碼的錯(cuò)誤。圖1:Build錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施圖2:文本編輯區(qū)錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施步驟4:根據(jù)提示debug,錯(cuò)誤提示為“cannotopensourcefileiocc52530.h”錯(cuò)誤,將其進(jìn)行翻譯表示“為能打開資源文件iocc52530.h”,想想如文件存在為什么無法打開,只能有一個(gè)問題那就是輸入錯(cuò)誤,經(jīng)觀察發(fā)現(xiàn)“iocc52530.h”多出一個(gè)5,少了c,我們將多出的5刪除,補(bǔ)充字母c,再重新編譯。再次查看Build區(qū)與文本編輯區(qū)的提示。圖1:Build錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施圖2:文本編輯區(qū)錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施步驟5:根據(jù)步驟五技巧查看,Build錯(cuò)誤提示區(qū)提示為“identifier“P1D1R”isundefined”錯(cuò)誤,將其進(jìn)行翻譯表示“未能找到P1D1R的定義”,分析錯(cuò)誤表示編譯器未能再工程內(nèi)找到對(duì)應(yīng)的定義,P1DIR為iocc2530.h頭文件中存在定義的特殊功能寄存器,根據(jù)經(jīng)驗(yàn),一般情況下如編程人員在肉眼觀察下無法辨識(shí)代碼是否出錯(cuò)則重新輸入本行代碼,重新輸入P1DIR=0xff,重新編譯。圖:錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施步驟6:由上圖所示,我們已經(jīng)將錯(cuò)誤排除,本錯(cuò)誤在于P1DIR中字母“I”與數(shù)字“1”極為相似所引起的文件,故需要讀者特別注意輸入字母問題,如發(fā)現(xiàn)類似的問題無法辨識(shí)則重新輸入一次。下面我們繼續(xù)排查錯(cuò)誤,由上圖可知錯(cuò)誤“expecteda“;”,如提示中有‘;’的提示則說明在位于錯(cuò)誤的上一行代碼存在少了封號(hào)的問題,補(bǔ)充P1DIR=0xff;封號(hào)即可,重新編譯。圖:錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施步驟7:如上圖所示“unrecongnizedtoken”根據(jù)提示,翻譯表示“無法識(shí)別令牌”該提示無針對(duì)性,如發(fā)現(xiàn)該錯(cuò)誤可暫不分析錯(cuò)誤,直接查看下一條錯(cuò)誤,下一條錯(cuò)誤表示“expecteda“)””,如發(fā)現(xiàn)本錯(cuò)誤提示則重點(diǎn)在提示的符號(hào)上,發(fā)現(xiàn)提示的符號(hào)為括號(hào)問題“)”,經(jīng)觀看可發(fā)現(xiàn)本行代碼的括號(hào)比其他行的代碼都來的大,在實(shí)際代碼編輯的過程中,初學(xué)者時(shí)常將中文括號(hào)加入其中,中文符號(hào)在代碼編譯過程中是無法正在編譯的,將其改為英文括號(hào),繼續(xù)編譯。圖:錯(cuò)誤提示3.調(diào)試工程任務(wù)實(shí)施步驟8:如上圖所示,英文表示0個(gè)錯(cuò)誤,0個(gè)警告,表示我們已經(jīng)將程序存在的代碼錯(cuò)誤已經(jīng)修復(fù)成功,現(xiàn)總結(jié)初學(xué)者在編輯過程中常見的幾處編輯代碼過程中存在問題與錯(cuò)誤原因。圖:常見錯(cuò)誤提示與錯(cuò)誤原因錯(cuò)誤提示樣例解決方法cannotopensourcefileiocc52530.h#include"ioc52530.h"找不到頭文件,頭文件名稱輸入錯(cuò)誤identifier“P1D1R”isundefined1D1R=0xff字母I與數(shù)字1類似expecteda“;”P1DIR=0xff缺少封號(hào)unrecongnizedtoken“expecteda“)”while(1)中文輸入法問題3.調(diào)試工程任務(wù)實(shí)施單步調(diào)試法經(jīng)過上述編譯調(diào)試,我們將代碼修復(fù)成功,現(xiàn)我們將代碼在仿真器中運(yùn)行,發(fā)現(xiàn)程序無任何效果,燈未被正常點(diǎn)亮(先排除硬件問題),此時(shí)對(duì)于初學(xué)者如通過觀看代碼來排除錯(cuò)誤將十分困難,故我們需要使用軟件調(diào)試技巧來調(diào)試軟件,使我們事半功倍。步驟1:點(diǎn)擊運(yùn)行按鈕運(yùn)行程序,不要點(diǎn)擊全速執(zhí)行按鈕,發(fā)現(xiàn)程序會(huì)發(fā)現(xiàn)指針指向程序最開始的位置。(圖中的綠色箭頭為程序指針,指向哪則表示程序執(zhí)行到哪)。圖:程序指針3.調(diào)試工程任務(wù)實(shí)施步驟2:點(diǎn)擊,調(diào)試工具欄箭頭向下“單步調(diào)試”按鈕。圖:?jiǎn)尾桨粹o3.調(diào)試工程任務(wù)實(shí)施步驟3:點(diǎn)擊后,發(fā)現(xiàn)程序指針指向下一行,表示我們程序執(zhí)行過“P1DIR=0xff”這行。圖:?jiǎn)尾秸{(diào)試3.調(diào)試工程任務(wù)實(shí)施步驟4:為了更好得觀察P1DIR是否被正常賦值為0xff的數(shù)值,我們也可打開Watch觀察窗體查看當(dāng)前P1DIR具體的數(shù)值。過程為鼠標(biāo)右鍵選中P1DIR->選擇AddWatch->在窗體右方將彈出觀察窗體。圖1:觀察變量圖2:觀察窗體3.調(diào)試工程任務(wù)實(shí)施步驟5:在觀察窗體中可查看當(dāng)前變量的具體數(shù)值,其中Value表示數(shù)值,Location為變量的地址,Type為變量的類型,當(dāng)前變量的數(shù)值為'與我們的預(yù)計(jì)的結(jié)果不同,那是因?yàn)檐浖斜硎緸樽址绞剑覀冃枰獙⑵湫薷臑閔ex顯示(十六進(jìn)制顯示),步驟為->鼠標(biāo)右擊選中變量P1DIR->選擇HexadecimalFormat。發(fā)現(xiàn)數(shù)值已正常顯示為0xff。圖1:切換顯示模式圖2:顯示數(shù)值3.調(diào)試工程任務(wù)實(shí)施步驟6:在觀察窗體觀察變量賦值情況可見,我們的第一行代碼被正確執(zhí)行與我們要的結(jié)果相同,我們繼續(xù)使用單步按鈕查看下一條代碼的結(jié)果,程序執(zhí)行到P1=0x00,繼續(xù)執(zhí)行這條代碼發(fā)現(xiàn)燈全部熄滅了,分析可知代碼P1=0x00正是控制燈亮滅的代碼,在電路中0表示滅1表示亮,找到問題代碼,于是我們點(diǎn)擊“停止”按鈕終止調(diào)試。圖:終止按鈕3.調(diào)試工程任務(wù)實(shí)施步驟7:將代碼修改成P1=0xff(二進(jìn)制11111111)表示全亮LED燈,點(diǎn)擊下載運(yùn)行程序按鈕。這次我們直接全速執(zhí)行按鈕可見燈全亮了。總結(jié):在軟件調(diào)試過程中單步調(diào)試是驗(yàn)證代碼是否按照程序員正常執(zhí)行最為有效的一種方式,故需要讀者多加練習(xí)掌握。斷點(diǎn)調(diào)試法在讀者掌握單步調(diào)試的基礎(chǔ)上,在代碼比較多的情況下使用單步調(diào)試將十分耗時(shí)并沒有效率,讀者則可以使用斷點(diǎn)調(diào)試法調(diào)試程序,其原理就是全速執(zhí)行在斷點(diǎn)之前的全部代碼,在打斷點(diǎn)的地方停止執(zhí)行,從而讓讀者觀察代碼的執(zhí)行過程是否符合要求。具體步驟如下:3.調(diào)試工程任務(wù)實(shí)施步驟1:點(diǎn)擊運(yùn)行按鈕運(yùn)行程序,不要點(diǎn)擊全速執(zhí)行按鈕,在需要設(shè)置斷點(diǎn)的代碼處->鼠標(biāo)左鍵點(diǎn)擊->將出現(xiàn)紅色的點(diǎn)表示斷點(diǎn)。圖:斷點(diǎn)調(diào)試3.調(diào)試工程任務(wù)實(shí)施步驟2:此時(shí)我們點(diǎn)擊“全速”按鈕,發(fā)現(xiàn)程序指針,跳到了我們?cè)O(shè)置的斷點(diǎn)的位置表示程序已經(jīng)全速執(zhí)行了上述的代碼,停在了我們需要觀察代碼的位置方便讀者觀察是否符合要求。圖:斷點(diǎn)處步驟3:此時(shí)讀者即可使用單步調(diào)試法觀察程序是否正常運(yùn)行??偨Y(jié):斷點(diǎn)調(diào)試法配合單步調(diào)試法可方便開發(fā)者能快速的查看到問題所在代碼,十分方便,是調(diào)試軟件人員必不可少的技能。在今后的學(xué)習(xí)中將大量用到該方法,需要讀者重點(diǎn)掌握。4.生成輸出HEX文件任務(wù)實(shí)施在開發(fā)人員開發(fā)代碼完成后,會(huì)遇到類似的場(chǎng)景,設(shè)備需要大量的下載工作可能是上萬個(gè)設(shè)備,此時(shí)需要將程序給大量下載工作人員完成工作,但開發(fā)人員又不能將源代碼給工作人員,此時(shí)就需要將代碼生成為hex文件給工作人員下載使用,也就是說hex文件生成也是代碼加密的一種過程。圖:Option選項(xiàng)步驟1:開發(fā)option選擇,鼠標(biāo)右鍵工程->選擇Option選項(xiàng)。3.生成輸出HEX文件任務(wù)實(shí)施圖:生成HEX文件配置步驟2:在彈出的Option窗體中選擇Linker->OutPut->勾選Overridedefault->修改文件后綴為hex->選擇Other->OK保存。4.生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年12月變電檢修工題庫(kù)+參考答案
- 2025年7月土建類安全員(C2)練習(xí)題庫(kù)
- 重難點(diǎn)解析人教版八年級(jí)上冊(cè)物理聲現(xiàn)象《聲音的特性聲的利用》專題練習(xí)試卷(詳解版)
- 難點(diǎn)詳解人教版八年級(jí)上冊(cè)物理聲現(xiàn)象《聲音的特性聲的利用》必考點(diǎn)解析練習(xí)題(解析版)
- 2025及未來5年中國(guó)運(yùn)動(dòng)機(jī)械市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來5年中國(guó)腰果盤市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來5年中國(guó)黑白繡花線市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來5年中國(guó)合金異型材市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來5年中國(guó)漂白滌綸熱軋非織造布市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 難點(diǎn)解析人教版八年級(jí)上冊(cè)物理物態(tài)變化《熔化和凝固》難點(diǎn)解析試卷(含答案解析)
- 【超星學(xué)習(xí)通】追尋幸福:中國(guó)倫理史視角(清華大學(xué))章節(jié)答案
- 完整版青少年普法宣傳教育課件
- 拌料機(jī)操作規(guī)程
- GB/T 39126-2020室內(nèi)綠色裝飾裝修選材評(píng)價(jià)體系
- GB/T 28726-2012氣體分析氦離子化氣相色譜法
- 組織學(xué)與胚胎學(xué):6 肌組織
- 企業(yè)降本增效培訓(xùn)課件
- 邀請(qǐng)函模板完整
- 分則第二章危害國(guó)家安全罪課件
- 電費(fèi)分割單模板
- 消防應(yīng)急預(yù)案 消防安全應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論