![源程序編譯及調(diào)試-最新課件_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/37597242-8498-4810-bba9-295d252dfccc/37597242-8498-4810-bba9-295d252dfccc1.gif)
![源程序編譯及調(diào)試-最新課件_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/37597242-8498-4810-bba9-295d252dfccc/37597242-8498-4810-bba9-295d252dfccc2.gif)
![源程序編譯及調(diào)試-最新課件_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/37597242-8498-4810-bba9-295d252dfccc/37597242-8498-4810-bba9-295d252dfccc3.gif)
![源程序編譯及調(diào)試-最新課件_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/37597242-8498-4810-bba9-295d252dfccc/37597242-8498-4810-bba9-295d252dfccc4.gif)
![源程序編譯及調(diào)試-最新課件_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/37597242-8498-4810-bba9-295d252dfccc/37597242-8498-4810-bba9-295d252dfccc5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 源程序編譯及調(diào)試第6章 源程序編譯及調(diào)試學(xué)習(xí)嵌入式系統(tǒng),需要有一個(gè)基本的硬件軟件環(huán)境。一個(gè)適合入門(mén)的硬件軟件環(huán)境應(yīng)該具有硬件可拼接、實(shí)例程序豐富、操作簡(jiǎn)單。蘇州大學(xué)Freescale嵌入式系統(tǒng)實(shí)驗(yàn)室在飛思卡爾公司的大力支持下,研發(fā)成功的MT-IDE For HC08 / S08集成開(kāi)發(fā)套件,適用于Freescale公司各種08芯片,具備上述特點(diǎn)。本書(shū)的所有程序都是在該環(huán)境中編寫(xiě)及調(diào)試的。MT-IDE是中文版的,可以在網(wǎng)上免費(fèi)下載最新版本,對(duì)程序編譯和下載沒(méi)有任何限制,也用于實(shí)際項(xiàng)目的開(kāi)發(fā),已經(jīng)在國(guó)內(nèi)得到較廣泛的使用。希望快速入門(mén)的讀者可以選用MT-IDE,隨MT-IDE開(kāi)發(fā)環(huán)境所附有大
2、量的樣例程序,含有規(guī)范的中文注釋及封裝合理的子程序,對(duì)于Freescale MCU的初學(xué)者來(lái)說(shuō)是一個(gè)寶貴的資源。同時(shí)本章也對(duì)Metrowerks公司的CodeWarrior軟件做了簡(jiǎn)要介紹,CodeWarrior是一個(gè)針對(duì)Freescale MCU的商業(yè)軟件,其功能強(qiáng)大,價(jià)格也很高。用于免費(fèi)教學(xué)的特別版有代碼量的限制,生成的代碼不能超過(guò)12KB,包含的工程文件數(shù)不超過(guò)30個(gè)。對(duì)于Freescale MCU的初學(xué)者需要花費(fèi)更多的時(shí)間入門(mén),因?yàn)镃odeWarrior功能強(qiáng)大,所以相對(duì)復(fù)雜,并且是英文版的,在短時(shí)間內(nèi)難以掌握其用法。本章還講述匯編及08C源程序編譯過(guò)程、編譯時(shí)產(chǎn)生的相關(guān)文件及調(diào)試方法
3、。閱讀本章內(nèi)容之后,應(yīng)該立即進(jìn)行實(shí)踐,或邊閱讀,邊實(shí)踐。從實(shí)踐中理解工程的含義、S19文件的含義、List文件的用處等內(nèi)容,從實(shí)踐中學(xué)會(huì)編輯程序、編譯程序、下載程序、調(diào)試程序。通過(guò)初步實(shí)踐后,你會(huì)發(fā)現(xiàn)使用MT-IDE通用開(kāi)發(fā)套件進(jìn)行的嵌入式程序的調(diào)試與在PC機(jī)上進(jìn)行的PC機(jī)的一般高級(jí)語(yǔ)言程序調(diào)試區(qū)別并不大,也許你看到的區(qū)別主要是嵌入式程序需要下載到目標(biāo)對(duì)象中才能調(diào)試。MT-IDE中的調(diào)試是真實(shí)的調(diào)試,不是早期的仿真方法,這得益于Flash存儲(chǔ)器的發(fā)展與調(diào)試手段的進(jìn)步。為了今后調(diào)試程序的順利,不僅要熟練操作過(guò)程,還要能夠理解S19文件、List文件,能夠在S19文件與List文件中找到一個(gè)語(yǔ)句或
4、一段程序產(chǎn)生的機(jī)器碼。6.1 MT-IDE集成開(kāi)發(fā)套件蘇州大學(xué)Freescale嵌入式系統(tǒng)實(shí)驗(yàn)室研發(fā)的MT-IDE For HC08 / S08 /S12等一系列Freescale 8位和16位MCU的集成開(kāi)發(fā)套件由硬件系統(tǒng)和軟件系統(tǒng)組成。硬件系統(tǒng)包括寫(xiě)入調(diào)試器、核心板和擴(kuò)展板,軟件系統(tǒng)具有工程管理、源程序編輯、編譯等功能,同時(shí)通過(guò)USB接口與寫(xiě)入調(diào)試器通信,完成下載及調(diào)試。開(kāi)發(fā)套件的結(jié)構(gòu)框圖如圖6-1所示。本開(kāi)發(fā)套件可作為Freescale系列MCU教學(xué)和培訓(xùn)班的實(shí)驗(yàn)器材,也可以作為技術(shù)人員開(kāi)發(fā)項(xiàng)目時(shí)的開(kāi)發(fā)工具。6.1.1 硬件平臺(tái)MT-IDE通用開(kāi)發(fā)套件硬件及接口部分主要包括擴(kuò)展板MT-E
5、xtend Board I、核心板MT-Core和HC08寫(xiě)入調(diào)試器MT-Programmer三個(gè)部分。擴(kuò)展板核心板PC寫(xiě)入調(diào)試器圖6-1 MT-IDE集成開(kāi)發(fā)套件結(jié)構(gòu)框圖(1) 擴(kuò)展板MT-Extend Board I圖6-2 MTExtend Board I型擴(kuò)展板實(shí)物圖MTExtend Board I型擴(kuò)展板適用于HC08、HCS08、HC12、HCS12等系列MCU的核心板,提供160Pin核心板底座接口、LED燈、蜂鳴器、繼電器、8段數(shù)碼管、LCD、4×4鍵盤(pán)、8組開(kāi)關(guān)、模擬電位計(jì)、紅外傳感器、光敏傳感器、熱敏傳感器、串行口、USB、CAN、IIC、SPI、以太網(wǎng)口等接口,
6、基本包括了08和12系列MCU所具有的模塊接口。擴(kuò)展板硬件實(shí)物如圖6-2所示。這些模塊接口大致可以分成下面幾類(lèi): 電源模塊:MTExtend Board I型擴(kuò)展板提供3.3V、5V、12V三種直流電源。 基本I/O模塊:MTExtend Board I型擴(kuò)展板上的調(diào)試小燈、拔碼開(kāi)關(guān)和蜂鳴器等模塊均屬于基本I/O模塊。調(diào)試小燈模塊:擴(kuò)展板用LED提供8位數(shù)字量的輸出。拔碼開(kāi)關(guān)模塊:擴(kuò)展板用撥碼開(kāi)關(guān)提供8位數(shù)字量的輸入。蜂鳴器模塊:當(dāng)控制點(diǎn)為高電平時(shí),蜂鳴器響;為低電平時(shí),蜂鳴器不響。 串行口模塊:利用串行線可以將擴(kuò)展板的串行口與計(jì)算機(jī)的串口連接起來(lái),實(shí)現(xiàn)通信。 復(fù)位按鈕:利用擴(kuò)展板上的復(fù)位按鈕
7、可以向MCU的復(fù)位引腳輸入低電平,實(shí)現(xiàn)MCU的復(fù)位。 其他模塊:擴(kuò)展板上還包括LCD、4×4鍵盤(pán)、8組開(kāi)關(guān)、模擬電位計(jì)、紅外傳感器、光敏傳感器、熱敏傳感器、USB、CAN、IIC、SPI、以太網(wǎng)口等模塊接口,在實(shí)際使用時(shí)請(qǐng)參照實(shí)驗(yàn)指導(dǎo)書(shū),也可以在網(wǎng)站Http:/或Http:/上下載相關(guān)資料。(2) 核心板MT-CoreMON08接口Core1Core2GP32最小系統(tǒng)Core3Core4電源開(kāi)關(guān)晶振開(kāi)關(guān)圖6-3 MC908GP32CB核心板實(shí)物圖本開(kāi)發(fā)套件采用擴(kuò)展板+核心板的模式,特別是適合于Freescale的芯片型號(hào)多,并且由于新型號(hào)MCU不斷涌現(xiàn)的優(yōu)點(diǎn),針對(duì)不同類(lèi)型的MCU,只
8、需要更換核心板就可以立即開(kāi)展工作。對(duì)于不同MCU,需要設(shè)計(jì)相應(yīng)的核心板,目前本實(shí)驗(yàn)室已經(jīng)配備的核心板有MC908GZ60、MC908GP32、MC908JB8、MC908MR8、MC9S08GB60、MC9S12DG128、MC9S12NE64、MC9S12UF32,對(duì)于這些核心板具體內(nèi)容請(qǐng)見(jiàn)附錄F。下面以GP32核心板為例進(jìn)行分析,圖6-3是MC908GP32芯片的核心板的實(shí)物圖。如圖所示,核心板主要由以下幾個(gè)部分組成:芯片的最小系統(tǒng):使芯片能工作起來(lái)的最小結(jié)構(gòu),它一般由MCU、晶振電路、電源供給、濾波電路和復(fù)位電路等組成。電源開(kāi)關(guān)與晶振開(kāi)關(guān):電源開(kāi)關(guān)和晶振開(kāi)關(guān)撥動(dòng)到擴(kuò)展板端,則核心板電源來(lái)
9、自擴(kuò)展板,晶振來(lái)自核心板自身的晶振電路。電源開(kāi)關(guān)和晶振開(kāi)關(guān)撥動(dòng)到寫(xiě)入器端,則核心板電源來(lái)自寫(xiě)入器,晶振也來(lái)自寫(xiě)入器,此時(shí)寫(xiě)入調(diào)試器可以對(duì)主控MCU進(jìn)入寫(xiě)入和在線調(diào)試工作。編程接口:HC08MCU的編程接口就是MON08接口,S08MCU的編程接口是BDM接口。8路A/D口LCD接口鍵盤(pán)口SPI接口Core1接口Core2接口通用I/O口LED接口Core3接口Core4接口圖6-4 GP32核心板和擴(kuò)展板接口原理圖與擴(kuò)展板的接口:圖6-4所示。圖中Core14為GP32核心板和擴(kuò)展板接口。除了在核心板上可以直接使用的普通I/O口(PTA、PTB、PTC、PTD),其它的都是核心板與擴(kuò)展板的接口
10、,并在擴(kuò)展板上有相應(yīng)的擴(kuò)展口,可用于接口模塊的手動(dòng)連線。(3) HC08/HCS08寫(xiě)入調(diào)試器MT-ProgrammerMT-Programmer For HC08/HCS08(如圖6-5所示)是針對(duì)Freescale 08系列MCU而研制的寫(xiě)入調(diào)試器,它支持目前HC08/HCS08系列各種不同型號(hào)的MCU。MT-Programmer是目標(biāo)核心板和PC機(jī)之間的聯(lián)系紐帶,它以USB接口同PC機(jī)通信,通過(guò)MON08接口或BDM接口和目標(biāo)核心板相連,配合PC方軟件實(shí)現(xiàn)擦除、下載、調(diào)試、讀Flash數(shù)據(jù)等功能。MON08BDM圖6-5 MT-Programmer圖6.1.2 軟件概述1MT-IDE軟件
11、系統(tǒng)的功能和特點(diǎn)調(diào)試工具欄常用工具欄菜單欄編譯下載工具欄代碼編輯區(qū)工程文件列表區(qū)編譯調(diào)試信息區(qū)調(diào)試數(shù)據(jù)區(qū)狀態(tài)欄圖6-6 MT-IDE運(yùn)行界面MT-IDE For HC08集成開(kāi)發(fā)環(huán)境的軟件系統(tǒng)(如圖6-6所示),是針對(duì)Freescale HC08系列MCU的開(kāi)發(fā)工具,采用Windows風(fēng)格,提供友好的操作界面,具有編輯、編譯、下載、調(diào)試等功能,通用性強(qiáng),使用方便。具體功能如下:支持Freescale HC08系列的所有MCU以工程的方式管理文件支持C和匯編語(yǔ)言的源文件編輯、編譯支持HC08系列MCU的Flash操作(擦除寫(xiě)入和讀出)支持C和匯編語(yǔ)言的斷點(diǎn)調(diào)試與單步調(diào)試支持內(nèi)存與寄存器觀察支持S
12、-Record文件軟件運(yùn)行環(huán)境:Windows2000及更高版本的Windows操作系統(tǒng)。2MT-IDE軟件系統(tǒng)的安裝(1) 安裝MT-IDE軟件該軟件的安裝十分方便簡(jiǎn)單,只要運(yùn)行“Setup.exe”文件,然后根據(jù)安裝向?qū)У奶崾?,就可以輕松完成。當(dāng)成功安裝本軟件后,將會(huì)在安裝目錄下產(chǎn)生如下文件夾:bin:可執(zhí)行程序文件夾。Docs:說(shuō)明文檔文件夾。包含軟件使用的說(shuō)明文檔。Include:08C頭文件夾。包含08C編譯器用到的C的頭文件。Lib:08C庫(kù)文件夾。包含08C鏈接時(shí)用到的庫(kù)文件。Stationary:框架程序文件夾。包含各種芯片的基本的框架程序,在新建工程時(shí),作為空工程的模板。(2
13、) 安裝USB驅(qū)動(dòng)MT-IDE軟件集程序的編輯、編譯和調(diào)試功能于一體,工程源文件在該軟件系統(tǒng)中,被編譯、連接形成目標(biāo)文件后,還要通過(guò)寫(xiě)入調(diào)試器,下載到核心板上的芯片中運(yùn)行。初次將寫(xiě)入器與PC的USB口相連時(shí),會(huì)彈出“找到新的硬件向?qū)А睂?duì)話框,因?yàn)镻C并不識(shí)別該硬件設(shè)備,需要安裝相應(yīng)的驅(qū)動(dòng)程序。注意在安裝過(guò)程中,當(dāng)詢(xún)問(wèn)“Windows可以連接到Windows Update以搜索軟件嗎?”時(shí),應(yīng)選擇“否,暫時(shí)不”,以便從列表或指定位置安裝,實(shí)際所要安裝的驅(qū)動(dòng)程序是安裝目錄下bin文件夾中的usbio_el.sys,該驅(qū)動(dòng)程序?qū)惭b在C:WINDOWSSystem32Drivers中。完成安裝后,設(shè)
14、備管理器中增加了USBIO controlled devices一項(xiàng),且其下有USBIO-Device 1(查看屬性可知這就是08 Programmer)。6.2 MT-IDE集成開(kāi)發(fā)環(huán)境的使用這一節(jié),將逐步講述在MT-IDE集成開(kāi)發(fā)環(huán)境中,怎樣打開(kāi)、編輯、編譯、運(yùn)行和調(diào)試匯編工程和C工程,力圖使讀者在學(xué)習(xí)完本節(jié)后,就能輕松駕馭MT-IDE集成開(kāi)發(fā)工具,這對(duì)以后開(kāi)發(fā)工程項(xiàng)目是十分必要的,此所謂“工欲善其事,必先利其器”。6.2.1 運(yùn)行第一個(gè)匯編工程實(shí)例在08教學(xué)資料目錄下的“MC08Ex2007”文件夾中,存放了本書(shū)中出現(xiàn)的所有實(shí)例工程,如果需要運(yùn)行這些程序,可以將這個(gè)文件夾拷貝到用戶的工作
15、目錄下。注意,若要調(diào)試某個(gè)工程,不要在“MC08Ex2007”文件夾中直接運(yùn)行,而應(yīng)將相應(yīng)的工程做一個(gè)備份,然后調(diào)試、運(yùn)行這個(gè)備份工程。始終保留一個(gè)最近調(diào)試成功的工程,而每次修改僅在相應(yīng)的備份上進(jìn)行,這樣做是十分必要的,因?yàn)橐坏┬薷腻e(cuò)誤,而又找不到癥結(jié)所在時(shí),還可以使調(diào)試工作還原到一個(gè)最近的正確點(diǎn)上,以便重新開(kāi)始。下面,將使用這個(gè)方法,運(yùn)行在第四章中已分析過(guò)的第一個(gè)匯編工程PrgFrame。1打開(kāi)工程運(yùn)行MT-IDE軟件,選擇文件菜單下的打開(kāi)工程選項(xiàng),在彈出的“打開(kāi)”對(duì)話框中,選擇PrgFrame工程所在路徑,打開(kāi)該工程中的“PrgFrame.prj”文件,即可打開(kāi)整個(gè)工程。在運(yùn)行界面左邊的工
16、程文件列表區(qū)顯示了PrgFrame的文件組織情況,可以看到該工程由頭文件(GP32ASM.h、Includes.h和LED.h)、源程序文件(GeneralFun.s、LED.s、Main.s、MCUinit.s和Vectors08.s)以及其他文件(僅為 .txt類(lèi)型,是工程的說(shuō)明文檔)組成。這些文件已在第四章分析過(guò),這里不再詳述。初始時(shí),編輯區(qū)顯示的是主程序文件(Main.s),如果要在編輯區(qū)顯示其他工程文件,只需雙擊列表區(qū)相應(yīng)的文件名即可。2編譯工程選擇編譯菜單下的編譯源程序選項(xiàng),或直接單擊編譯下載工具欄中的編譯圖標(biāo)(如圖6-7所示),就可以完成源程序的編譯。編譯圖6-7 編譯下載工具欄
17、編譯結(jié)果信息(編譯成功、出錯(cuò)或警告等信息)將在運(yùn)行界面下方的編譯調(diào)試信息區(qū)顯示出來(lái),這個(gè)區(qū)域?qū)椭绦騿T定位出錯(cuò)點(diǎn)。3下載機(jī)器碼現(xiàn)在要把編譯后產(chǎn)生的機(jī)器碼燒寫(xiě)到芯片中。PrgFrame工程的控制芯片是MC908GP32 MCU,所以打開(kāi)教學(xué)實(shí)驗(yàn)箱后,第一步要檢查所使用的核心板是GP32核心板。將08寫(xiě)入器的USB一端與PC相連(之前已裝過(guò)USB驅(qū)動(dòng),現(xiàn)在PC是能識(shí)別該寫(xiě)入器的),另一端與核心板上的MON08接口相連。將核心板上的電源開(kāi)關(guān)、晶振開(kāi)關(guān)撥向“寫(xiě)入器”一側(cè) ,使核心板上的電源和晶振都來(lái)自寫(xiě)入器。點(diǎn)擊MT-IDE編譯下載工具欄上的“USB擦除/下載”按鈕,彈出“通過(guò)USB下載”對(duì)話框,對(duì)
18、芯片進(jìn)行擦除、寫(xiě)入操作;也可以在Flash操作菜單中,執(zhí)行以上動(dòng)作。4連接硬件對(duì)象PrgFrame工程的功能是用A口的1引腳控制小燈閃爍,所以只要用導(dǎo)線將A口的1引腳與擴(kuò)展板上的一盞小燈相連即可。注意:普通I/O口AD,可在核心板上直接找到;而MCU的其他引腳則通過(guò)核心板與擴(kuò)展板的接口,引到了擴(kuò)展板上。5運(yùn)行芯片中的程序有兩種方法:在MT-IDE軟件系統(tǒng)中點(diǎn)擊運(yùn)行圖標(biāo),通過(guò)寫(xiě)入器向MCU發(fā)送運(yùn)行命令,使程序開(kāi)始運(yùn)行。注意這時(shí)核心板上的電源開(kāi)關(guān)和晶振開(kāi)關(guān)還是撥在寫(xiě)入器一側(cè)的。將核心板上的電源開(kāi)關(guān)和晶振開(kāi)關(guān)撥向“擴(kuò)展板”一側(cè),這時(shí)核心板電源來(lái)自擴(kuò)展板,晶振來(lái)自核心板自身的晶振電路?,F(xiàn)在,要確保實(shí)驗(yàn)
19、箱中擴(kuò)展板的電源已經(jīng)連接好,此時(shí),按動(dòng)擴(kuò)展板上的復(fù)位按鈕,芯片中的程序就執(zhí)行起來(lái)了,正如工程描述中所說(shuō),小燈在不停的閃爍。6調(diào)試程序這里介紹兩種實(shí)用的調(diào)試方法:(1) 跟蹤法寄存器跟蹤窗口變量跟蹤窗口存儲(chǔ)器跟蹤窗口圖6-8 匯編工程調(diào)試界面首先,編譯源程序并下載到MCU中,并保持核心板上的電源開(kāi)關(guān)、晶振開(kāi)關(guān)撥向“寫(xiě)入器”一側(cè)。其次,將光標(biāo)停留在需要設(shè)置斷點(diǎn)的程序代碼上,點(diǎn)擊菜單欄上的調(diào)試菜單,下拉選擇設(shè)置斷點(diǎn)即可;也可以通過(guò)點(diǎn)擊工具欄上的圖標(biāo)來(lái)設(shè)置斷點(diǎn)。然后,點(diǎn)擊菜單欄上的調(diào)試菜單,下拉選擇開(kāi)始調(diào)試,進(jìn)入調(diào)試界面,如圖6-8所示。點(diǎn)擊菜單欄上的調(diào)試菜單,下拉選擇單步步過(guò)或者單步步入,就可以逐步
20、監(jiān)控程序的執(zhí)行過(guò)程,也可以選擇工具欄上的相應(yīng)圖標(biāo)實(shí)現(xiàn)相同的操作。單步步過(guò)和單步步入的區(qū)別在于:當(dāng)遇到子程序時(shí),單步步過(guò)將子程序當(dāng)作一條語(yǔ)句執(zhí)行,不跟蹤子程序的內(nèi)部執(zhí)行過(guò)程,單步步入則進(jìn)入子程序的內(nèi)部,逐條語(yǔ)句執(zhí)行。在單步步過(guò)或者單步步入的執(zhí)行過(guò)程中,可以通過(guò)觀察寄存器跟蹤窗口中寄存器的值的變化來(lái)判斷程序是否正確執(zhí)行。寄存器窗口中列出了HC08中的所有寄存器。如果想觀察某個(gè)存儲(chǔ)器單元的內(nèi)容,可以在存儲(chǔ)器跟蹤窗口中輸入相應(yīng)的地址,鍵入回車(chē)后,進(jìn)行觀察。例如,在匯編工程中定義了如下語(yǔ)句:.org RAMstartAddr /RAM的起始地址為0x0040I1: . blkb 1若在調(diào)試過(guò)程中想知道當(dāng)
21、前全局變量I1的值,就可以在存儲(chǔ)器跟蹤窗口中輸入I1的地址0x0040,再鍵入回車(chē)即可。如果需要查看某一段存儲(chǔ)區(qū)域的內(nèi)容,可在下載完程序后,選擇flash操作中的讀取選項(xiàng),讀取某一范圍內(nèi)的存儲(chǔ)器內(nèi)容。注意:該操作不能在單步調(diào)試時(shí)進(jìn)行。單步調(diào)試結(jié)束后,點(diǎn)擊菜單欄上的“調(diào)試”菜單,下拉選擇“退出調(diào)試”,也可以點(diǎn)擊工具欄上的相應(yīng)圖標(biāo)結(jié)束調(diào)試。(2) 程序法如果希望程序執(zhí)行到某個(gè)語(yǔ)句就不再向下執(zhí)行,可在該語(yǔ)句后加入“BRA .”語(yǔ)句。該語(yǔ)句的含義是使程序流無(wú)條件轉(zhuǎn)向自身。這樣做和使用斷點(diǎn)調(diào)試是異曲同工的。如果想觀察某個(gè)寄存器或者任意存儲(chǔ)空間的值,可以通過(guò)串口調(diào)試實(shí)現(xiàn)。例如,要在執(zhí)行完某個(gè)語(yǔ)句后,觀察存
22、儲(chǔ)單元0x8000處的值,可在該語(yǔ)句后添加:LDA 0x8000 /將存儲(chǔ)單元0x8000中的值,放入寄存器AJSR SCISend1 /工程中應(yīng)已包含串行通信文件,才可調(diào)用該函數(shù)當(dāng)執(zhí)行完以上語(yǔ)句,0x8000處的值就通過(guò)串口發(fā)送給PC并顯示出來(lái)。7實(shí)驗(yàn)中常見(jiàn)問(wèn)題與解決方法在實(shí)驗(yàn)過(guò)程中,會(huì)因?yàn)橐恍┦韬?,而得不到預(yù)期的實(shí)驗(yàn)結(jié)果,例如,會(huì)有以下常見(jiàn)錯(cuò)誤:在對(duì)芯片執(zhí)行擦除寫(xiě)入操作時(shí),若出現(xiàn)“連接失敗”提示,應(yīng)檢查是否已經(jīng)安裝該USB驅(qū)動(dòng),如果已經(jīng)安裝,應(yīng)拔出寫(xiě)入器的USB一端,重新插入,復(fù)位編程器。如果總是提示進(jìn)入監(jiān)控失敗信息,這時(shí)應(yīng)該檢查電源晶振開(kāi)關(guān)是否撥向“寫(xiě)入器”一側(cè),寫(xiě)入器的MON08接口是
23、否與核心板接反了。如果寫(xiě)入程序后,按動(dòng)復(fù)位按鈕,發(fā)現(xiàn)小燈不閃爍,可以檢查核心板是否以正確的方向插在擴(kuò)展板上,導(dǎo)線是否連在A口的1引腳上,而不是其他引腳,如果以上都正確,再檢查程序中的延時(shí)是否足夠的長(zhǎng)。如果總是擦除、寫(xiě)入失敗,應(yīng)考慮寫(xiě)入器、芯片、核心板或是擴(kuò)展板這些硬件設(shè)備是否被損壞。這時(shí)應(yīng)找來(lái)一個(gè)完好的硬件系統(tǒng),用部件替換法逐個(gè)檢測(cè)以上硬件設(shè)備是否完好。例如,有兩個(gè)硬件系統(tǒng)A和B。A是有故障的,B是完好的系統(tǒng)。先用A的寫(xiě)入器替換掉B的,并在B系統(tǒng)上實(shí)驗(yàn),如果擦寫(xiě)失敗,說(shuō)明A的寫(xiě)入器已損壞,需要更換,如果能正常工作,再把A的芯片替換到B系統(tǒng)上檢測(cè)。用同樣的方法逐個(gè)檢測(cè)A系統(tǒng)上的部件,直到找出所有
24、故障所在。6.2.2 編譯過(guò)程中產(chǎn)生的文件PrgFrame匯編工程編譯成功后,會(huì)產(chǎn)生如下文件:PrgFrame.s19(目標(biāo)代碼文件)、main.lis(列表文件)、PrgFrame.dbg(帶有調(diào)試信息的文件)、PrgFrame.mp(存儲(chǔ)映像文件)、main.o(目標(biāo)對(duì)象文件)等。這里介紹其中的兩個(gè)文件:S19文件和Lis文件,這兩個(gè)文件可在查看菜單中選擇打開(kāi),或通過(guò)點(diǎn)擊編譯調(diào)試工具欄中相應(yīng)的圖標(biāo)打開(kāi)。1目標(biāo)代碼文件(*.s19)S19文件是Motorola MCU的機(jī)器碼文件,將其下載到MCU內(nèi)部Flash存儲(chǔ)器之后,MCU執(zhí)行這些機(jī)器碼。目標(biāo)代碼文件(.S19)是以S記錄格式表示的機(jī)器
25、碼文件。S記錄格式是Freescale公司的十六進(jìn)制目標(biāo)代碼文件,它將目標(biāo)程序和數(shù)據(jù)以可打印的ASCII碼格式表示,可直接顯示和打印。目標(biāo)文件由若干行S記錄構(gòu)成,每行S記錄可以用CR/LF/NUL結(jié)尾。一行S記錄由下列五部分組成:類(lèi)型記錄長(zhǎng)度地 址編碼/數(shù)據(jù)校驗(yàn)和2字節(jié)2字節(jié)2、3或4字節(jié)0n字節(jié)1字節(jié)分別說(shuō)明如下:類(lèi)型表示S記錄的類(lèi)型。共有8種記錄類(lèi)型S0、S1、S2、S3、S5、S6、S8、S9。它們是為了滿足不同的編碼、傳送方式以及解碼的需求。ASM08編譯器只使用S1、S9兩種類(lèi)型構(gòu)成目標(biāo)文件。S1地址為2字節(jié)的代碼/數(shù)據(jù)記錄。S9S1記錄的結(jié)束記錄。該記錄沒(méi)有程序/數(shù)據(jù)部分。地址部分
26、可包含控制將轉(zhuǎn)向的2字節(jié)地址,如果不指定,則為第一次使用的入口地址。S2地址為3字節(jié)的代碼/數(shù)據(jù)記錄。S8S2記錄的結(jié)束記錄。S3地址為4字節(jié)的代碼/數(shù)據(jù)記錄。S7S3記錄的結(jié)束記錄。S5如果有,表示文件中總共有多少個(gè)S1、S2和S3記錄。記錄長(zhǎng)度表示該記錄行中字符對(duì)的數(shù)目,不包括類(lèi)型和記錄長(zhǎng)度。地址它可以是2個(gè)字節(jié)、3個(gè)字節(jié)或4個(gè)字節(jié),取決于記錄類(lèi)型。S1記錄、S9記錄均是2個(gè)字節(jié)。它表示其后的編碼/數(shù)據(jù)部分將要裝入的存儲(chǔ)器起始地址。編碼/數(shù)據(jù)就是實(shí)際的目標(biāo)程序或數(shù)據(jù),這一部分將被下載到嵌入式的程序存儲(chǔ)器并運(yùn)行。其字節(jié)數(shù)是由“記錄長(zhǎng)度”域的實(shí)際數(shù)值減去地址長(zhǎng)度和校驗(yàn)碼長(zhǎng)度得到的。校驗(yàn)和為1個(gè)
27、字節(jié),它是“記錄長(zhǎng)度”、“地址”、“編碼/數(shù)據(jù)”三個(gè)部分所有字節(jié)之和的反碼的低8位。供裝入嵌入式時(shí)校驗(yàn)之用。例如:S105FFFE80007D,最后的7D就是校驗(yàn)和,計(jì)算方法是:05+FF+FE+80+00=0282 (十六進(jìn)制運(yùn)算)將低字節(jié)0x82,即0B10000010,取反得到0B01111101,即0x7D。表6-1是PrgFrame工程編譯后得到的S19文件,它由7行S記錄構(gòu)成:表6-1 PrgFrame工程的S19文件S12380009B45024094CD8039CD8060A64CCD80654502FFCD8024A641CD80654502FFCD80ECS12380202
28、4CC800B87650000270DA6C89D9D4BFCAFFF65000026F3868187A601B71EA63D99S1238040B71F3F36A601B736A601B738A62CB739A680B73AA601B73B1A361E37183686813BS11880601204120081A141260412002006A14C260213008180F1S123FFDC8074807480748074807480748074807480748074807480748074807480748074C1S107FFFC8074800089S9030000FC表6-1中第一
29、行的前兩個(gè)符號(hào)S1表示這一行是S1記錄,其后的“23”是十六進(jìn)制數(shù)0x23,等于十進(jìn)制數(shù)的35,表示在這一行中其后有35個(gè)字節(jié)的數(shù)據(jù),包括2個(gè)字節(jié)的地址8000、32個(gè)字節(jié)的編碼/數(shù)據(jù),和最后一個(gè)校驗(yàn)和字節(jié)EC,大家可驗(yàn)證。這一行記錄表示實(shí)際的編碼/數(shù)據(jù)將被裝入嵌入式存儲(chǔ)器起始地址為$8000的內(nèi)存中。最后一行是S9記錄,S9之后的03是十六進(jìn)制$03,表示其后有3個(gè)字節(jié)的數(shù)據(jù)。0000為2個(gè)字節(jié)的地址,F(xiàn)C是校驗(yàn)和。S記錄是以ASCII碼形式的機(jī)器碼表示,一個(gè)機(jī)器碼字節(jié)需要用2個(gè)ASCII碼表示。若每個(gè)S記錄有32個(gè)機(jī)器碼字節(jié),加上S1字頭、記錄長(zhǎng)度、地址、校驗(yàn)碼,則每條記錄需要以74個(gè)字節(jié)
30、存盤(pán),則10KB機(jī)器碼的S19文件大小會(huì)有23690B之多。特別提醒:S19文件大小不是機(jī)器碼的大小。2列表文件(*.lis)在Lis文件中可以對(duì)照查看匯編源程序和相應(yīng)的機(jī)器碼以及這些指令和數(shù)據(jù)將要放入的相對(duì)或絕對(duì)地址。如表6-1,列出了PrgFrame工程匯編后產(chǎn)生的列表文件main.lis的部分內(nèi)容,列表文件的格式如下:地址 目標(biāo)碼 匯編指令“地址”是該指令目標(biāo)碼的首地址的十六進(jìn)制值,“目標(biāo)碼”是與匯編指令對(duì)應(yīng)的十六進(jìn)制機(jī)器碼字節(jié)。如下表中帶陰影一行,“SEI /關(guān)總中斷”是匯編源程序中的一條語(yǔ)句和相應(yīng)的注釋?zhuān)?B是SEI這條指令所對(duì)應(yīng)的機(jī)器碼,0x8000是該機(jī)器碼將被寫(xiě)于芯片存儲(chǔ)器中的
31、地址。由于在匯編源程序中包含絕對(duì)定位語(yǔ)句“.org $XXXX”,所以表6-2中的地址是絕對(duì)地址。如果沒(méi)有這種定位語(yǔ)句,則生成相對(duì)地址,從0x0000開(kāi)始編址,就無(wú)法正確運(yùn)行。表6-2 匯編產(chǎn)生的列表文件main.lis的部分內(nèi)容 0000 /主程序 0000 /以下兩條語(yǔ)句的詳細(xì)解釋見(jiàn)"工程說(shuō)明.txt" .area flash(abs) .org FlashStartAddr 8000 MainInit: /復(fù)位后從此處執(zhí)行(見(jiàn)Vectors08.s文件末尾處) 8000 9B SEI /關(guān)總中斷 8001 /1. 堆棧初始化為RAM最高端 8001 450240 LD
32、HX #RAMendAddr + 1 /HX = #RAMEndAddr + 1 8004 94 TXS /HX - 1 -> SP 8005 /2. 系統(tǒng)初始化 8005 CD8039 JSR MCUinit /初學(xué)時(shí)跳過(guò)此處 8008 /3. 模塊初始化 8008 CD8060 JSR LEDinit /(1) I/O口小燈控制引腳初始化 800B /程序總循環(huán)入口 800B MainLoop: 800B A64C LDA #'L' /小燈亮 800D CD8065 JSR LED_L_A 8010 4502FF LDHX #$02FF /延時(shí) 8013 CD8024
33、 JSR DelayHX 8016 A641 LDA #'A' /小燈暗 8018 CD8065 JSR LED_L_A 801B 4502FF LDHX #$02FF /延時(shí) 801E CD8024 JSR DelayHX 8021 CC800B JMP MainLoop6.2.3 新建一個(gè)匯編工程上一小節(jié),介紹了如何打開(kāi)、運(yùn)行及調(diào)試一個(gè)已存在的匯編工程。如果要?jiǎng)?chuàng)建一個(gè)新的匯編工程應(yīng)如何操作呢,現(xiàn)在,就介紹兩種新建工程的方法:1拷貝新建法顧名思意,就是拷貝一個(gè)已有的工程,然后在此基礎(chǔ)上進(jìn)行修改,得到一個(gè)滿足需求的新工程。例如,現(xiàn)在要新建一個(gè)匯編工程,完成用一個(gè)開(kāi)關(guān)控制一盞燈(
34、開(kāi)關(guān)打開(kāi),小燈亮;開(kāi)關(guān)閉合,小燈暗)的功能。給這個(gè)工程命名為SwitchCtrl。它和第一個(gè)實(shí)例工程PrgFrame十分相似,所以可以利用PrgFrame新建SwitchCtrl。步驟如下:拷貝并重命名PrgFrame工程文件夾。在工程文件夾中修改工程文件名“PrgFrame.prj”為“SwitchCtrl.prj”。由于新工程中的控制芯片與原工程相同,所以所有的面向芯片文件(GP32ASM.h、MCUinit.s和Vectors08.s)都無(wú)須修改,直接重用。新工程根據(jù)所讀取的開(kāi)關(guān)輸入值(0/1),驅(qū)動(dòng)小燈亮、暗,是面向小燈和開(kāi)關(guān)編程的。所以原工程中的小燈控制文件,應(yīng)該保留,同時(shí)還應(yīng)準(zhǔn)備創(chuàng)
35、建面向開(kāi)關(guān)的文件Switch.s和Switch.h,分別用于讀取開(kāi)關(guān)輸入值和定義開(kāi)關(guān)控制引腳。原來(lái)的通用程序文件有GeneralFun.s和Includes.h,新工程中并不需要延時(shí)所以可以刪除GeneralFun.s文件,而Includes.h和主程序文件(Main.s)必須保留并做必要的改動(dòng)。對(duì)原有工程在文件層上做必要的增刪后,就要開(kāi)始編輯新工程了。在MT-IDE軟件中打開(kāi)新工程中的工程文件SwitchCtrl.prj,發(fā)現(xiàn)并沒(méi)有打開(kāi)整個(gè)工程(工程列表中沒(méi)有具體的程序文件),原因是在上一步中修改了工程文件名,這時(shí)要在列表中的工程文件目錄上右擊添加工程文件夾中已有的文件或通過(guò)文件菜單中的新建
36、選項(xiàng),新建程序文件。單擊文件菜單中的新建選項(xiàng),出現(xiàn)新建對(duì)話框,選擇新建文件選項(xiàng)卡,填入新文件的路徑,文件名,文件類(lèi)型,用這種方法可在工程中新建“.s”“.h”“.txt”三種類(lèi)型的文件。本工程中需要新建Switch.s和Switch.h文件。在列表中可以看到所有程序文件后,雙擊相應(yīng)文件名,就可在編輯區(qū)打開(kāi)對(duì)應(yīng)的程序文件,進(jìn)行編輯修改了。2向?qū)陆ǚù蜷_(kāi)MT-IDE軟件,點(diǎn)擊文件菜單下的新建選項(xiàng),選擇新建工程選項(xiàng)卡,填寫(xiě)所建工程的路徑,工程名,工程類(lèi)型(匯編/C),工程的控制芯片等信息,確定后,將會(huì)自動(dòng)生成所需的匯編工程框架。框架中已包含所有面向芯片的程序文件和主程序文件框架,對(duì)這些文件,只須根
37、據(jù)需要稍加修改即可。另外,還要在工程中新建硬件對(duì)象的控制程序文件,和必要通用程序文件。新建文件的方法已經(jīng)討論過(guò),這里不再詳述。用以上任何一種方法新建工程,組織好文件后,就可以開(kāi)始編輯,編譯,調(diào)試程序了,這些操作的具體方法請(qǐng)參見(jiàn)上一小節(jié),這里不再闡述。6.2.4 運(yùn)行第一個(gè)C工程實(shí)例運(yùn)行C工程的步驟也可以分成打開(kāi)工程、編譯工程、下載工程、連接硬件對(duì)象、運(yùn)行芯片中程序和調(diào)試等。6.2.1節(jié)詳細(xì)介紹了運(yùn)行第一個(gè)匯編工程的具體步驟,參照這些步驟,可以運(yùn)行第一個(gè)C工程實(shí)例,這里不再具體闡述,只是列出運(yùn)行C工程與運(yùn)行匯編工程的不同之處。(1) 編譯過(guò)程產(chǎn)生的List文件不同C工程編譯產(chǎn)生的List文件如表
38、6-3所示,與匯編工程不同之處在于C工程編譯產(chǎn)生的List文件中包含了C語(yǔ)句以及其對(duì)應(yīng)的匯編語(yǔ)句,并對(duì)其中的C語(yǔ)句加上了行號(hào),即表6-3中所示的(0014)之類(lèi),方便閱讀,C工程編譯產(chǎn)生的List文件的閱讀方法同匯編工程,這里不再闡述。表6-3 C工程編譯產(chǎn)生的列表文件PrgFrame.lst的部分內(nèi)容(0014) /主函數(shù)(0015) void main()(0016) _main: 8079 9B seI(0017) DisableMCUInt(); /禁止總中斷(0018) MCUInit(); /芯片初始化 807A CD 80AB jsr _MCUInit(0019) LEDInit
39、(); /小燈控制引腳初始化 807D CD 8035 jsr _LEDInit 8080 95 tSX 8081 20 25 bra 0x80A8(0020) /程序總循環(huán)入口(0021) while (1)(0022) 8083 A6 4C ldA #76 8085 87 pshA 8086 CD 803A jsr LED_L_A 8089 A7 01 aiS #1(0023) LED_L_A('L'); /小燈亮(0024) Delay(15000); /延時(shí) 808B 45 3A98 ldHX #0x3A98 808E 89 pshX 808F 8B pshH 8090
40、 CD 804E jsr _Delay 8093 A7 02 aiS #2(0025)(0026) LED_L_A('A'); /小燈暗 8095 A6 41 ldA #65 8097 87 pshA 8098 CD 803A jsr _LED_L_A 809B A7 01 aiS #1(0027) Delay(15000); /延時(shí) 809D 45 3A98 ldHX #0x3A98 80A0 89 pshX 80A1 8B pshH 80A2 CD 804E jsr _Delay 80A5 A7 02 aiS #2 80A7 95 tSX(0028) 80A8 20 D9
41、bra 0x8083 80AA 81 rts(2) 調(diào)試方法不同C工程的調(diào)試方法也分為跟蹤法和程序法兩種,程序法同匯編工程,只將串行口的子程序換成相應(yīng)的C函數(shù)即可。在跟蹤法中,C工程的調(diào)試界面如圖6-9所示。其中寄存器跟蹤窗口和存儲(chǔ)器跟蹤窗口的調(diào)試方法同匯編,這里不再闡述。在變量跟蹤窗口中可以輸入C工程中定義的變量,在調(diào)試中,窗口中變量的值將隨程序的執(zhí)行而發(fā)生改變。寄存器跟蹤窗口變量跟蹤窗口存儲(chǔ)器跟蹤窗口圖6-9 C工程調(diào)試界面*6.3 CodeWarrior軟件簡(jiǎn)介CodeWarrior 是Metrowerks公司研發(fā)的專(zhuān)門(mén)面向Freescale所有MCU與DSP嵌入式應(yīng)用開(kāi)發(fā)的軟件工具,是
42、Freescale向用戶推薦的產(chǎn)品。Metrowerks公司是Motorola公司于1999年收購(gòu)的、獨(dú)立運(yùn)作的子公司。CodeWarrior分為3個(gè)版本:特別版(Special Edition)、標(biāo)準(zhǔn)版和專(zhuān)業(yè)版。特別版是免費(fèi)的、用于教學(xué)目的,對(duì)生成的代碼量有一定限制,C代碼不得超過(guò)12KB,對(duì)工程包含的文件數(shù)目限制在30個(gè)以?xún)?nèi)。標(biāo)準(zhǔn)版和專(zhuān)業(yè)版沒(méi)有這種限制。3個(gè)版本的區(qū)別在于用戶所獲取的授權(quán)文件(license)不同,特別版的授權(quán)文件隨安裝軟件附帶,不需要特殊申請(qǐng),標(biāo)準(zhǔn)版和專(zhuān)業(yè)版授權(quán)文件需要付費(fèi),同其他商業(yè)軟件一樣,付費(fèi)前有1個(gè)月的試用期。CodeWarrior特別版、標(biāo)準(zhǔn)版和專(zhuān)業(yè)版的定義隨所
43、支持的微處理器的不同而不同,如CodeWarrior for HC08 V3.0、CodeWarrior for HCS12X V4.1等。CodeWarrior開(kāi)發(fā)工具是一個(gè)比較復(fù)雜的軟件,其功能很強(qiáng),以下簡(jiǎn)單介紹CodeWarrior的使用方法,使讀者快速入門(mén),更多的功能和用法請(qǐng)閱讀該軟件包中包含的大量文檔,在實(shí)踐中不斷熟悉和掌握。本節(jié)將以CodeWarrior for HC08 V3.0說(shuō)明該軟件的使用方法。6.3.1 CodeWarrior的安裝圖6-10 安裝CodeWarrior的文件夾運(yùn)行安裝文件夾下的“setup.exe”文件,按照安裝向?qū)Ь涂梢酝瓿绍浖陌惭b,默認(rèn)安裝在“C:
44、Program FilesMetrowerksCodeWarrior CW08_V3.0”文件夾下,該文件夾下的內(nèi)容如圖6-10所示?!癇in”文件夾主要包含了CodeWarrior IDE環(huán)境的可執(zhí)行文件“IDE.exe”,“l(fā)ib”文件夾主要包含了HC08的頭文件及庫(kù)文件,“prog”文件夾主要包含了匯編、編譯、反匯編、連接、調(diào)試及下載等可執(zhí)行文件。安裝完畢后要通過(guò)網(wǎng)絡(luò)注冊(cè)以申請(qǐng)使用許可,申請(qǐng)后會(huì)通過(guò)E-Mail得到一個(gè)License.dat文件,將該文件復(fù)制到安裝文件夾下。對(duì)于免費(fèi)的特別版本,用安裝包中的License.dat覆蓋安裝目錄下的License.dat文件,就可以使用了。6.
45、3.2 新建工程安裝CodeWarrior后,在開(kāi)始菜單下有IDE環(huán)境的快捷方式“CodeWarrior IDE”,執(zhí)行該命令得到集成開(kāi)發(fā)環(huán)境,如圖6-11所示。圖6-11 CodeWarrior的啟動(dòng)界面單擊“File”菜單下的“New”命令將出現(xiàn)新建文件或工程的對(duì)話框,如圖6-12所示,其中有三個(gè)選項(xiàng):Empty Project、HC(S)08 Board Support Stationary、HC(S)08 New Project Vizard。在新建工程時(shí),通常選擇后兩項(xiàng)中的一項(xiàng)。選擇“HC(S)08 New Project Vizard”項(xiàng),輸入工程的名字“Example1”,設(shè)定工
46、程保存的路徑,單擊確定按鈕。圖6-12 新建文件或工程的對(duì)話框在接下來(lái)的新建工程向?qū)н^(guò)程中,需要選擇芯片的名稱(chēng)、編程語(yǔ)言、浮點(diǎn)數(shù)格式、存儲(chǔ)器模式、相連的編程調(diào)試器等選項(xiàng),假如這些選項(xiàng)使用默認(rèn)選項(xiàng),最后單擊“完成”,得到如圖6-13所示的工程文件管理窗口,工程文件擴(kuò)展名為“.mcp”。工程窗口頂端有三個(gè)標(biāo)簽頁(yè):“Files”、“Link Order”鏈接順序和“Targets”。在這幾個(gè)標(biāo)簽頁(yè)的上方,有一個(gè)用于選擇要編譯的目標(biāo)文件的下拉菜單。在本例中,我們選擇的是適合于P&E調(diào)試器的版本。編譯、鏈接和調(diào)試工具欄圖6-13 Example1 程序的工程窗口文件標(biāo)簽頁(yè)列出了在工程中所有可能用
47、到的文件,用戶可以通過(guò)創(chuàng)建一些組(用文件夾圖標(biāo)表示)來(lái)分門(mén)別類(lèi)地管理這些文件,并可以幫助你方便地了解哪些文件將被使用。在本例中,將“main.c”放到“Source”組中、08芯片初始化程序放到“Startup Code”組、將庫(kù)文件放到“Libs”組中等,以便整潔明了地管理這些文件。新建工程后的這樣文件是CodeWarrior自動(dòng)生成的,用戶可以根據(jù)需要修改這些內(nèi)容以及增加自己的代碼。在新建工程后,還沒(méi)有編譯這個(gè)工程時(shí),每個(gè)文件對(duì)應(yīng)的Code和Data欄中顯示的數(shù)字都是零。一旦我們編譯了這個(gè)工程,這些數(shù)字就將顯示出來(lái),表示源碼轉(zhuǎn)換為機(jī)器代碼后實(shí)際的代碼量和數(shù)據(jù)量。有些文件后面顯示的是“n/a
48、”,這表示雖然這些文件被顯示在這里,但是它們并不是工程目標(biāo)文件的一部分,它們用于調(diào)試和下載時(shí)使用的。6.3.3 編譯、鏈接與仿真調(diào)試Debug圖6-14 Example1工程編譯后的工程窗口單擊“Project”菜單下的“Make”或工程工具欄的“Make”命令編譯該工程,這將更新所有需要編譯的文件并產(chǎn)生相應(yīng)的輸出文件。此時(shí)“Example1”工程窗口如圖6-14所示。在編譯、鏈接沒(méi)有錯(cuò)誤時(shí),可以進(jìn)行仿真調(diào)試程序。單擊工程窗口工具欄的Debug按鈕,會(huì)彈出圖6-15所示的仿真調(diào)試界面。仿真調(diào)試界面包含了Source、Procedure、Data1、Data2、Command、Assembly、Register和Memory8個(gè)子窗口,工具欄中包含的調(diào)試按鈕有:運(yùn)行、單步步入、單步步過(guò)、單步步出、匯編語(yǔ)言的單步運(yùn)行、停止、目標(biāo)板復(fù)位。Source窗口即源程序窗口,在窗口中右擊,彈出快捷菜單,快捷菜單中有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)英語(yǔ)下冊(cè) Unit 1 Animals on the farm(Again Please)說(shuō)課稿 冀教版(三起)
- 8的乘法口訣(說(shuō)課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)北京版
- 2024年九年級(jí)語(yǔ)文上冊(cè) 第四單元 第15課《少年中國(guó)說(shuō)》說(shuō)課稿 北京課改版
- 16 麻雀 第一課時(shí) 說(shuō)課稿-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
- 2024年春七年級(jí)語(yǔ)文下冊(cè) 第二單元 8 木蘭詩(shī)說(shuō)課稿 新人教版
- 1 折彩粽(說(shuō)課稿)蘇教版二年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)001
- Unit 4 My home Part B Lets learn(說(shuō)課稿)-2024-2025學(xué)年人教PEP版英語(yǔ)四年級(jí)上冊(cè)
- 2025樓房承包合同協(xié)議模板
- 2025家居裝修工程施工合同范文
- 2025房地產(chǎn)銷(xiāo)售代理合同范本
- 物業(yè)管理服務(wù)應(yīng)急響應(yīng)方案
- 醫(yī)院培訓(xùn)課件:《如何撰寫(xiě)護(hù)理科研標(biāo)書(shū)》
- 風(fēng)車(chē)的原理小班課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案)
- 2024年北師大版八年級(jí)上冊(cè)全冊(cè)數(shù)學(xué)單元測(cè)試題含答案
- 江蘇省南京市第二十九中2025屆數(shù)學(xué)高二上期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 六年級(jí)數(shù)學(xué)競(jìng)賽試題及答案(六套)
- 八年級(jí)下學(xué)期期末考試語(yǔ)文試題(PDF版含答案)
- 浙教版八年級(jí)下冊(cè)科學(xué)第一章 電和磁整章思維導(dǎo)圖
- (正式版)SH∕T 3541-2024 石油化工泵組施工及驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論