《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第3章 STM32微控制器的開發(fā)平臺_第1頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第3章 STM32微控制器的開發(fā)平臺_第2頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第3章 STM32微控制器的開發(fā)平臺_第3頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第3章 STM32微控制器的開發(fā)平臺_第4頁
《STM32嵌入式單片機(jī)原理與應(yīng)用》 課件 第3章 STM32微控制器的開發(fā)平臺_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第3章STM32微控制器的

開發(fā)平臺本章講述了STM32微控制器的開發(fā)平臺,包括KeilMDK5安裝配置、KeilMDK下新工程的創(chuàng)建、J-Link驅(qū)動安裝、KeilMDK5調(diào)試方法、J-Scope安裝、J-Scope調(diào)試方法、Cortex-M3微控制器軟件接口標(biāo)準(zhǔn)CMSIS、STM32F103開發(fā)板的選擇和STM32下載器的選擇。3.1KeilMDK5安裝配置Keil公司是一家業(yè)界領(lǐng)先的微控制器(MCU)軟件開發(fā)工具的獨(dú)立供應(yīng)商,由兩家私人公司聯(lián)合運(yùn)營,分別是德國慕尼黑的Keil

ElektronikGmbH和美國德克薩斯的KeilSoftwareInc。Keil公司制造和銷售種類廣泛的開發(fā)工具,包括ANSIC編譯器、宏匯編程序、調(diào)試器、連接器、庫管理器、固件和實(shí)時操作系統(tǒng)核心(real-timekernel)。MDK即RealViewMDK或MDK-ARM(MicrocontrollerDevelopmentkit),是ARM公司收購Keil公司以后,基于μVision界面推出的針對ARM7、ARM9、Cortex-M系列、Cortex-R4等ARM處理器的嵌入式軟件開發(fā)工具。3.1.1Keil

簡介MDK-ARM主要包含以下四個核心組成部分:1)μVisionIDE:是一個集項(xiàng)目管理器、源代碼編輯器、調(diào)試器于一體的強(qiáng)大集成開發(fā)環(huán)境。2)RVCT:ARM公司提供的編譯工具鏈,包含編譯器、匯編器、鏈接器和相關(guān)工具。3)RL-ARM:實(shí)時庫,可將其作為工程的庫來使用。4)ULINK/JLINKUSB-JTAG仿真器:用于連接目標(biāo)系統(tǒng)的調(diào)試接口(JTAG或SWD方式),幫助用戶在目標(biāo)硬件上調(diào)試程序。μVisionIDE是一個基于Windows操作系統(tǒng)的嵌入式軟件開發(fā)平臺,集編譯器、調(diào)試器、項(xiàng)目管理器和一些Make工具于一體。具有如下主要特征:1)項(xiàng)目管理器,用于產(chǎn)生和維護(hù)項(xiàng)目。2)處理器數(shù)據(jù)庫,集成了一個能自動配置選項(xiàng)的工具。3)帶有用于匯編、編譯和鏈接的Make工具。4)全功能的源碼編輯器。5)模板編輯器,可用于在源碼中插入通用文本序列和頭部塊。6)源碼瀏覽器,用于快速尋找、定位和分析應(yīng)用程序中的代碼和數(shù)據(jù)。7)函數(shù)瀏覽器,用于在程序中對函數(shù)進(jìn)行快速導(dǎo)航。8)函數(shù)略圖(FunctionOutlining),可形成某個源文件的函數(shù)視圖。9)帶有一些內(nèi)置工具,例如“FindinFiles”等。10)集模擬調(diào)試和目標(biāo)硬件調(diào)試于一體。11)配置向?qū)?,可?shí)現(xiàn)圖形化的快速生成啟動文件和配置文件。12)可與多種第三方工具和軟件版本控制系統(tǒng)接口。13)帶有Flash編程工具對話窗口。14)豐富的工具設(shè)置對話窗口。15)完善的在線幫助和用戶指南。使用MDK-ARM作為嵌入式開發(fā)工具,其開發(fā)的流程與其他開發(fā)工具基本一樣,一般可以分以下幾步:1)新建一個工程,從處理器庫中選擇目標(biāo)芯片。2)自動生成啟動文件或使用芯片廠商提供的基于CMSIS標(biāo)準(zhǔn)的啟動文件及固件庫。3)配置編譯器環(huán)境。4)用C語言或匯編語言編寫源文件。5)編譯目標(biāo)應(yīng)用程序。6)修改源程序中的錯誤。7)調(diào)試應(yīng)用程序。KeilMDK主要能夠?yàn)殚_發(fā)者提供以下開發(fā)優(yōu)勢。(1)啟動代碼生成向?qū)?。啟動代碼和系統(tǒng)硬件結(jié)合緊密。只有使用匯編語言才能編寫,因此成為許多開發(fā)者難以跨越的門檻。KeilMDK的μVision5工具可以自動生成完善的啟動代碼,并提供圖形化的窗口,方便修改。無論是對于初學(xué)者還是對于有經(jīng)驗(yàn)的開發(fā)者而言。都能大大節(jié)省開發(fā)時間,提高系統(tǒng)設(shè)計(jì)效率。(2)設(shè)備模擬器。KeilMDK的設(shè)備模擬器可以仿真整個目標(biāo)硬件,如快速指令集仿真、外部信號和I/O端口仿真、中斷過程仿真、片內(nèi)外圍設(shè)備仿真等。這使開發(fā)者在沒有硬件的情況下也能進(jìn)行完整的軟件設(shè)計(jì)開發(fā)與調(diào)試工作,軟硬件開發(fā)可以同步進(jìn)行,大大縮短了開發(fā)周期。(3)性能分析器。KeilMDK的性能分析器可輔助開發(fā)者查看代碼覆蓋情況、程序運(yùn)行時間、函數(shù)調(diào)用次數(shù)等高端控制功能,幫助開發(fā)者輕松地進(jìn)行代碼優(yōu)化,提高嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的質(zhì)量。(4)RealView編譯器。KeilMDK的RealView編譯器與ARM公司以前的工具包ADS相比,其代碼尺寸比ADS1.2編譯器的代碼尺對小10%,其代碼性能也比ADS1.2編譯器的代碼性能提高了至少20%。(5)ULINK2/Pro仿真器和FLASH編程模塊。KeilMDK無須尋求第三方編程軟硬件的支持。通過配套的ULINK2仿真器與FLASH編程工具,可以輕松地實(shí)現(xiàn)CPU片內(nèi)FLASH和外擴(kuò)FLASH燒寫。并支持用戶自行添加PLASH編程算法,而且支持FLASH的整片刪除、扇區(qū)刪除、編程前自動刪除和編程后自動校驗(yàn)等功能。(6)Cortex系列內(nèi)核。Cortex系列內(nèi)核具備高性能和低成本等優(yōu)點(diǎn)。是ARM公司最新推出的微控制器內(nèi)核,是單片機(jī)應(yīng)用的熱點(diǎn)和主流。而KeilMDK是第一款支持Cortex系列內(nèi)核開發(fā)的開發(fā)工具。并為開發(fā)者提供了完善的工具集,因此,可以用它設(shè)計(jì)與開發(fā)基于Cortex-M3內(nèi)核的STM32嵌入式系統(tǒng)。(7)提供專業(yè)的本地化技術(shù)支持和服務(wù)。KeilMDK的國內(nèi)用戶可以享受專業(yè)的本地化技術(shù)支持和服務(wù),如電話、E-mail、論壇和中文技術(shù)文檔等,這將為開發(fā)者設(shè)計(jì)出更有競爭力的產(chǎn)品提供更多的助力。此外,KeilMDK還具有自己的實(shí)時操作系統(tǒng)(RTOS),即RTX。傳統(tǒng)的8位或16位單片機(jī)往往不適合使用實(shí)時操作系統(tǒng),但Cortex-M3內(nèi)核除了為用戶提供更強(qiáng)勁的性能、更高的性價比。還具備對小型操作系統(tǒng)的良好支持,因此在設(shè)計(jì)和開發(fā)STM32嵌人式系統(tǒng)時,開發(fā)者可以在KeilMDK上使用RTOS。使用RTOS可以為工程組織提供良好的結(jié)構(gòu),并提高代碼的重復(fù)使用率,使程序調(diào)試更加容易、項(xiàng)目管理更加簡單。官方下載地址:/mdk5。1.打開官方網(wǎng)站,點(diǎn)擊下載MDKMDK下載界面如圖3-1所示。3.1.2Keil下載圖3-1MDK下載界面2.按照要求填寫信息,并點(diǎn)擊Submit信息填寫界面如圖3-2所示。圖3-2信息填寫界面3.點(diǎn)擊MDKxxx.exe下載MDKxxx.exe下載界面如圖3-3所示。這里下載的是MDK536.exe,等待下載完成。圖3-3MDKxxx.exe下載界面1.雙擊安裝文件雙擊MDK安裝文件,MDK圖標(biāo)如圖3-4所示。3.1.3MDK安裝圖3-4MDK圖標(biāo)2.MDK安裝過程安裝界面如圖3-5所示。圖3-5MDK安裝界面歡迎界面點(diǎn)下一步;勾選“同意協(xié)議”,點(diǎn)下一步;選擇安裝路徑,建議默認(rèn),點(diǎn)下一步;填寫用戶信息,點(diǎn)下一步;等待安裝。MDK安裝進(jìn)程如圖3-6所示。圖3-6MDK安裝進(jìn)程需要顯示版本信息,點(diǎn)擊Finish,完成安裝。安裝完成后,彈出PackInstaller歡迎界面。先關(guān)閉,破解后再安裝Pack包。MDK安裝成功后,桌面會有KeilμVision5的圖標(biāo)(以下簡稱Keil5),如圖3-7所示。圖3-7KeilμVision5的圖標(biāo)如果購買了正版的KeilμVision5,以管理員身份運(yùn)行KeilμVision5,打開后點(diǎn)擊File-LicenseManagement,安裝License,如圖3-8所示。至此就可以使用KeilμVision5了。圖3-8安裝License界面如果沒有購買正版的KeilμVision5,使用就會受到限制。公司要購買正版的KeilμVision5軟件,若用于教學(xué),可以對KeilμVision5進(jìn)行破解。若破解成功,則出現(xiàn)如圖3-9所示界面。圖3-9KeilμVision5破解成功界面此時,如果License區(qū)SupportPeriod時間晚于當(dāng)前時間,表示破解成功。如果SupportPeriod時間早于當(dāng)前時間,破解失敗會顯示紅色,如圖3-10所示。重新生成破解代碼即可(可能需要嘗試多次才能找到合適的破解文件)。圖3-10KeilμVision5破解不成功界面破解成功后的版本為Plus版,不破解為Lite版。KeilμVision5功能限制如表3-1所示。表3-1KeilμVision5功能限制步驟1:回到Keil5界面,點(diǎn)擊圖3-11中圈內(nèi)的PackInstaller按鈕。3.1.4安裝庫文件圖3-11PackInstaller按鈕工具欄步驟2:將彈出之前關(guān)閉的PackInstaller窗口,如圖3-12所示。圖3-12PackInstaller窗口步驟3:左側(cè)窗口選擇所使用的芯片STM32F107系列,右側(cè)點(diǎn)擊DeviceSpecific->Keil::STM32F4xx_DFP處的Install按鈕安裝庫文件,下方output區(qū)可看到庫文件的下載進(jìn)度。步驟4:等待庫文件下載完成。Keil::STM32F1xx_DFP處Action狀態(tài)變?yōu)閁ptodate,表示該庫下載完成。打開一個工程,測試編譯是否成功。3.2KeilMDK下新工程的創(chuàng)建建立文件夾GPIO_TEST,來存放整個工程項(xiàng)目。在GPIO_TEST工程目錄下,建立四個文件夾來存放不同類別的文件,工程目錄如圖3-13所示。圖中4個文件夾存放文件類型如下:lib:存放庫文件;obj:存放工程文件;out:存放編譯輸出文件;user:存放用戶源代碼文件。3.2.1建立文件夾圖3-13工程目錄創(chuàng)建一個新工程,對STM32的GPIO功能進(jìn)行簡單的測試。打開KeiluVision后,將顯示上一次使用的工程,如圖3-14所示。3.2.2打開KeiluVision圖3-14打開KeilμVision選擇菜單Project-->NewuVisionProject,如圖3-15所示。3.2.3新建工程圖3-15新建工程把該工程存放在剛剛建立的obj子文件夾下,并輸入工程文件名稱,如圖3-16和3-17所示。圖3-16選擇工程文件存放目錄圖3-17工程文件命名點(diǎn)擊保存后彈出選擇器件窗口,如圖3-18所示。選擇STMicroelectronics下STM32F103VB器件(選擇使用器件型號)。圖3-18芯片型號選擇點(diǎn)擊OK后彈出界面如圖3-19所示,在該界面中選擇“是”,以加載STM32的啟動代碼。圖3-19加載啟動代碼至此工程建立成功,顯示畫面如圖3-20所示。圖3-20工程建立成功畫面3.3J-Link驅(qū)動安裝J-LINK是SEGGER公司為支持仿真ARM內(nèi)核芯片推出的JTAG仿真器。它與眾多諸如IAREWAR、ADS、KEIL、WINARM、RealView

等集成開發(fā)環(huán)境配合,可支持所有ARM7/ARM9/ARM11、CortexM0/M1/M3/M4,CortexA5/A8/A9等內(nèi)核芯片的仿真。它與IAR,KEIL等編譯環(huán)境可無縫連接,因此操作方便、連接方便、簡單易學(xué),是學(xué)習(xí)開發(fā)ARM最好、最實(shí)用的開發(fā)工具。J-LINK具有J-LinkPlus,J-LinkUltra,J-LinkUltra+,J-LinkPro,J-LinkEDU,J-Trace等多個版本,可以根據(jù)不同的需求選擇不同的產(chǎn)品。3.3.1J-Link簡介安裝J-Link驅(qū)動,以便Keil5、J-Scope能夠使用J-Link。J-LINK主要用于在線調(diào)試,它集程序下載器和控制器為一體,使得PC上的集成開發(fā)軟件能夠?qū)RM的運(yùn)行進(jìn)行控制,比如,單步運(yùn)行,設(shè)置斷點(diǎn),查看寄存器等。一般調(diào)試信息用串口“打印”出來,就如VC用printf在屏幕上顯示信息一樣,通過串口ARM就可以將需要的信息輸出到計(jì)算機(jī)的串口界面。由于筆記本一般都沒有串口,所以常用USB轉(zhuǎn)串口電纜或轉(zhuǎn)接頭實(shí)現(xiàn)。官方下載地址:/downloads/J-Link/。J-Link驅(qū)動下載界面如圖3-21所示。3.3.2J-Link驅(qū)動安裝圖3-21J-Link驅(qū)動下載界面下載后得到J-Link驅(qū)動的圖標(biāo),如圖3-22所示。圖3-22J-Link驅(qū)動的圖標(biāo)1.J-Link安裝J-Link安裝步驟簡單,默認(rèn)配置即可。J-Link驅(qū)動安裝過程如圖3-23所示。圖3-23J-Link驅(qū)動安裝過程2.打開Keil5的OptionsforTarget按鈕安裝完成后,連接J-Link到電腦,打開Keil5的OptionsforTarget按鈕。3.調(diào)試工具選擇切換到Debug選項(xiàng)卡,調(diào)試工具選擇J-LINK/J-TRACECortex,如圖3-24所示。打開Settings。可以看到J-Link的SN、版本等信息,表示J-Link驅(qū)動安裝成功,當(dāng)前J-Link可正常使用。圖3-24OptionsforTarget按鈕界面3.4KeilMDK5調(diào)試方法進(jìn)入調(diào)試模式步驟如下:1)連接J-Link到呼吸機(jī)主板STM32調(diào)試口,此時J-LinkUSB線不要連接計(jì)算機(jī)。2)開發(fā)板上電。3)連接J-LinkUSB線到計(jì)算機(jī),J-Link指示燈應(yīng)為綠色。4)使用Keil5打開一個程序。5)進(jìn)入調(diào)試模式。進(jìn)入調(diào)試模式界面如圖3-25所示。3.4.1進(jìn)入調(diào)試模式圖3-25進(jìn)入調(diào)試模式界面3.4KeilMDK5調(diào)試方法進(jìn)入調(diào)試模式步驟如下:1)連接J-Link到呼吸機(jī)主板STM32調(diào)試口,此時J-LinkUSB線不要連接計(jì)算機(jī)。2)開發(fā)板上電。3)連接J-LinkUSB線到計(jì)算機(jī),J-Link指示燈應(yīng)為綠色。4)使用Keil5打開一個程序。5)進(jìn)入調(diào)試模式。進(jìn)入調(diào)試模式界面如圖3-25所示。3.4.1進(jìn)入調(diào)試模式圖3-25進(jìn)入調(diào)試模式界面3.4.2調(diào)試界面介紹1.黃色箭頭處為當(dāng)前執(zhí)行語句執(zhí)行語句界面如圖3-26所示。圖3-26中的圈內(nèi)為執(zhí)行語句。圖3-26執(zhí)行語句界面2.

拖動各窗口,調(diào)整成習(xí)慣的布局。調(diào)試界面布局如圖3-27所示。圖3-27調(diào)試界面布局保存當(dāng)前布局,下次進(jìn)入調(diào)試模式不必重新設(shè)置,調(diào)試時主要使用Debug菜單和工具欄。Debug菜單和工具欄分別如圖3-28和圖3-29所示。圖3-28Debug菜單圖3-29Debug工具欄Debug菜單命令介紹如下:1)Start/StopDebugSesion:開始/停止調(diào)試2)ResetCPU:復(fù)位CPU3)Run:全速運(yùn)行4)Stop:停止運(yùn)行5)Step:單步調(diào)試(進(jìn)入函數(shù))6)StepOver:逐步調(diào)試(跳過函數(shù))7)StepOut:跳出調(diào)試(跳出函數(shù))8)RuntoCursorLine:運(yùn)行到光標(biāo)處9)ShowNextStatemt:顯示正在執(zhí)行的代碼行10)Breakpoints:查看工程中所有的斷點(diǎn)11)Insert/RemoveBreakpoint:插入/移除斷點(diǎn)12)Enable/DisableBreakpoint:使能/失能斷點(diǎn)13)DisableAllBreakpoint:失能所有斷點(diǎn)14)KillAllBreakpoint:取消所有斷點(diǎn)15)OSSupport:系統(tǒng)支持(打開子菜單訪問事件查看器和RTX任務(wù)和系統(tǒng)信息)16)ExecutionProfiling:執(zhí)行分析17)MemoryMap:內(nèi)存映射18)InlineAssembly:內(nèi)聯(lián)匯編19)FunctionEditor:函數(shù)編輯器20)DebugSetting:調(diào)試設(shè)置3.4.3變量查詢功能方法1:雙擊選中變量,如hot_reset_times,拖動到Watch區(qū),即可查看該變量的值。變量查詢方法1界面如圖3-30所示。圖3-30變量查詢方法1界面方法2:可在Watch區(qū)直接輸入要查詢的變量。變量查詢方法2界面如圖3-31所示。圖3-31變量查詢方法2界面3.4.4斷點(diǎn)功能當(dāng)需要程序執(zhí)行到某處停下時,可以使用斷點(diǎn)功能。舉例如下:1)確定添加斷點(diǎn)處代碼為: GetSNdisplay(SN_display);添加斷點(diǎn)如圖3-32所示。圖3-32添加斷點(diǎn)2)單擊代碼左側(cè)陰影處(陰影表示程序可以執(zhí)行到此處,無陰影一般為未編譯或注釋語句,不可設(shè)置斷點(diǎn)),可以設(shè)置或取消該語句的斷點(diǎn)。添加斷點(diǎn)成功后會有一個紅色圓點(diǎn),如圖3-33所示。圖3-33添加斷點(diǎn)成功3)全速運(yùn)行程序,操作某一設(shè)備,進(jìn)入“信息->關(guān)于本機(jī)”菜單。此時程序會運(yùn)行至斷點(diǎn)設(shè)置處,黃色運(yùn)行指示箭頭指向斷點(diǎn)語句。如圖3-34所示。圖3-34指向斷點(diǎn)語句的界面4)可根據(jù)調(diào)試需求,使用如下調(diào)試方法:(1)Step:單步調(diào)試(進(jìn)入函數(shù))(2)StepOver:逐步調(diào)試(跳過函數(shù))(3)StepOut:跳出調(diào)試(跳出函數(shù))(4)RuntoCursorLine:運(yùn)行到光標(biāo)處此處以執(zhí)行“Step單步調(diào)試”命令為例,進(jìn)入GetSNdisplay函數(shù),如圖3-35所示。圖3-35Step單步調(diào)試命令Step單步調(diào)試程序界面如圖3-36所示。圖3-36Step單步調(diào)試程序界面5)調(diào)試完成后,可進(jìn)入全速運(yùn)行模式。全速運(yùn)行模式時可正常操作所開發(fā)設(shè)備及監(jiān)視變量。如圖3-37所示。圖3-37全速運(yùn)行命令3.4.5結(jié)束調(diào)試模式結(jié)束調(diào)試模式,執(zhí)行Start/StopDebugSession命令,如圖3-38所示。圖3-38結(jié)束調(diào)試模式3.5J-Scope安裝J-Scope是SEGGER公司推出的,可在目標(biāo)MCU運(yùn)行時實(shí)時分析數(shù)據(jù)并圖形化顯示的軟件。J-Scope讀取elf或axf文件,并允許選擇多個變量進(jìn)行可視化顯示。J-Scope主要有RTT和HSS兩種工作模式。RTT模式:需要用戶在MCU上添加代碼,有點(diǎn)類似串口上傳數(shù)據(jù),因?yàn)橛蓄~外的代碼,所以需要占用MCU的資源。優(yōu)點(diǎn)是速度快,缺點(diǎn)是需要額外的代碼。HSS模式:不需要用戶在MCU上添加任何代碼,只需要使用J_Scope加載MDK或IAR的可執(zhí)行文件即可,而且可以隨時連接MCU,不影響MCU的正常功能,不需要額外的資源。使用標(biāo)準(zhǔn)SWD接口即可。優(yōu)點(diǎn)是不需要添加代碼,缺點(diǎn)是速度較慢,一般為1KHz。當(dāng)前調(diào)試均使用HSS模式。3.5.1J-Scope簡介HSS模式支持的內(nèi)核如圖3-39所示。圖3-39HSS模式支持的內(nèi)核3.5.2J-Scope安裝官方地址:/products/debug-probes/j-link/tools/j-scope/。官方地址已找不到下載入口,可在瀏覽器直接檢索setup_jscope_v611m。當(dāng)前可用地址如下:/forum.php?mod=viewthread&tid=86881。J-Scope安裝步驟簡單,默認(rèn)配置即可。安裝過程如下。雙擊圖3-40所示的J-Scope圖標(biāo),開始安裝,如圖3-41所示,安裝路徑選擇默認(rèn)。圖3-40J-Scope圖標(biāo)圖3-41J-Scope安裝界面J-Scope安裝完成后,出現(xiàn)如圖3-42所示界面。圖3-42J-Scope安裝完成界面勾選RunSEGGER–J-ScopeV6.11m后,會彈出如圖3-43所示的J-Scope演示界面。圖3-43J-Scope演示界面3.6J-Scope調(diào)試方法1)從桌面或開始菜單找到J-Scope快捷方式,如圖3-44所示,雙擊J-Scope圖標(biāo),打開J-Scope。2)此時會彈出J-Scope新建工程菜單,可先關(guān)閉或開始新建工程。J-Scope新建工程菜單如圖3-45所示。3.6.1打開J-Scope圖3-44J-Scope圖標(biāo)圖3-45J-Scope新建工程菜單3.6.2J-Scope功能區(qū)介紹1.J-Scope的File菜單File菜單及功能如圖3-46所示。2.J-Scope的工具欄J-Scope的工具欄如圖3-47所示。圖3-46File菜單及功能圖3-47J-Scope的工具欄J-Scope工具欄的命令介紹如下:1)

OpenProjectSettings:打開工程配置對話框。2)

ToggleGraphWindow:關(guān)閉圖形窗口,不常用。3)

ToggleWatchWindow:關(guān)閉變量觀察窗口,不常用。4)

Start/ResumeSampling:啟動/重啟采樣(調(diào)試模式)。5)

StopSampling:停止采樣。6)PauseSampling:暫停采樣。7)ZoomIn/Out:放大/縮小圖形。8)TriggerRising/Falling/BothEdge:上升/下降/雙沿觸發(fā),未使用。9)

Start/Stop/ResetTarget:啟動/暫停/復(fù)位目標(biāo),未使用。3.變量窗口右鍵菜單變量窗口右鍵菜單如圖3-48所示。圖3-48變量窗口右鍵菜單4.圖形和變量窗口圖形和變量窗口如圖3-49所示。圖3-49圖形和變量窗口3.6.3新建工程1)在File菜單執(zhí)行新建工程命令,如圖3-50所示。圖3-50新建工程命令或者在剛開始打開J-Scope時,彈出的新建工程菜單選擇OK。新建工程界面如圖3-51所示。圖3-51新建工程界面

2)進(jìn)入工程配置界面。以下設(shè)置默認(rèn)即可:連接方式USB,不指定腳本,SWD接口4000kHz,采樣方式HSS,采樣間隔100us。如圖3-52所示。圖3-52工程配置界面3)進(jìn)入目標(biāo)設(shè)備設(shè)置界面。需要設(shè)置目標(biāo)設(shè)備和Elf文件。J-ScopeConfiguration界面如圖3-53所示。圖3-53J-ScopeConfiguration界面4)Device處輸入STM32F407,選中STM32F407ZE,選OK確認(rèn),如圖3-54所示。這里選擇的目標(biāo)設(shè)備是以STM32F407為核心的呼吸機(jī),所以Device選擇STM32F407ZE。若目標(biāo)設(shè)備使用的是STM32F103ZE,Device選擇STM32F103ZE。圖3-54目標(biāo)設(shè)備設(shè)置界面5)進(jìn)入Elf文件選擇界面,選擇STM32主程序生成的elf或axf文件,如圖3-55所示。圖3-55選擇axf文件界面6)配置完成后,界面如圖3-56所示。圖3-56J-Scope配置完成界面7)點(diǎn)擊OK,會進(jìn)入變量添加界面。3.6.4添加變量1)新建工程完成后會進(jìn)入變量添加界面,也可在變量區(qū)空白處右鍵彈出AddSymbols菜單,如圖3-57所示。圖3-57AddSymbols菜單2)添加變量界面,可以拖動滾動條選擇變量,也可通過下方FilterSymbolsbyname處輸入變量名稱篩選,如圖3-58所示。圖3-58J-ScopeSymbol選擇界面3)添加數(shù)組變量時,需先在AddSymbol框中輸入要查看數(shù)組的索引,然后點(diǎn)擊變量名,下方會出現(xiàn)數(shù)組索引成員,選中即可,如圖3-59所示。圖3-59添加數(shù)組變量4)單個J-Scope工程能添加的變量總數(shù)與J-Link型號有關(guān)。當(dāng)前使用的J-Link最多支持10個變量。超過10個會無法進(jìn)入調(diào)試狀態(tài)。如果監(jiān)測的變量超過10個,可以通過同時運(yùn)行多個工程實(shí)現(xiàn)。鼠標(biāo)指向要刪除的變量,右鍵彈出菜單“RemoveSymbol”或鍵盤按Delete鍵,即可刪除變量。3.6.5保存工程添加/刪除變量、修改工程配置、修改視圖設(shè)置等操作后,J-Scope左上角工程名處會有*示意,如圖3-60所示。點(diǎn)擊File菜單中SaveProject按鈕,保存工程,如圖3-61所示。圖3-60工程有變動界面圖3-61保存工程3.6.6進(jìn)入調(diào)試模式1)連接J-Link到呼吸機(jī)主板STM32調(diào)試口,此時J-LinkUSB線不要連接電腦。2)呼吸機(jī)主板上電。3)連接J-LinkUSB線到電腦,J-Link指示燈應(yīng)為綠色。4)點(diǎn)擊啟動按鈕,如圖3-62所示。然后進(jìn)入J-Scope調(diào)試模式,如圖3-63所示。圖3-62啟動/停止工具欄圖3-63J-Scope調(diào)試模式調(diào)試模式可看到變量實(shí)時波形和變量值,但調(diào)試模式不可以添加、刪除變量。3.6.8停止調(diào)試點(diǎn)擊工具欄可以停止調(diào)試模式,如圖3-64所示。圖3-64停止調(diào)試模式3.6.9查看存儲的變量在圖形和變量區(qū)可看到存儲的變量,如圖3-65所示。圖3-65在圖形和變量區(qū)可看到存儲的變量需要注意的是導(dǎo)入數(shù)據(jù)時的J-Scope工程、加載的axf文件要與存儲時的工程和axf文件保持一致,否則可能導(dǎo)致數(shù)據(jù)加載混亂。3.7Cortex-M3微控制器軟件接口標(biāo)準(zhǔn)CMSIS目前,軟件開發(fā)已經(jīng)是嵌入式系統(tǒng)行業(yè)公認(rèn)的主要開發(fā)成本,通過將所有Cortex-M芯片供應(yīng)商產(chǎn)品的軟件接口標(biāo)準(zhǔn)化,能有效降低這一成本,尤其是進(jìn)行新產(chǎn)品開發(fā)或者將現(xiàn)有項(xiàng)目或軟件移植到基于不同廠商MCU的產(chǎn)品時。為此,2008年ARM公司發(fā)布了ARMCortex單片機(jī)軟件接口標(biāo)準(zhǔn)(CortexMicrocontrollerSoftwareIntrfaceStandard,CMSIS)。ST公司為開發(fā)者提供了標(biāo)準(zhǔn)外設(shè)庫,通過使用該標(biāo)準(zhǔn)庫無需深入掌握細(xì)節(jié)便可開發(fā)每一個外設(shè),減少了用戶編程時間,從而降低開發(fā)成本。同時,標(biāo)準(zhǔn)庫也是學(xué)習(xí)者深入學(xué)習(xí)STM32原理的重要參考工具。3.7.1CMSIS介紹CMSIS軟件架構(gòu)由4層構(gòu)成:用戶應(yīng)用層、操作系統(tǒng)及中間件接口層、CMSIS層和硬件層,如圖3-66所示。圖3-66CMSIS軟件架構(gòu)其中,CMSIS層起著承上啟下的作用:一方面對硬件寄存器層進(jìn)行統(tǒng)一實(shí)現(xiàn),屏蔽不同廠商對Cortex-M系列微處理器核內(nèi)外設(shè)寄存器的不同定義;另一方面又向上層的操作系統(tǒng)及中間件接口層和用戶應(yīng)用層提供接口,簡化應(yīng)用程序開發(fā),使開發(fā)人員能夠在完全透明的情況下進(jìn)行應(yīng)用程序開發(fā)。CMSIS層主要由以下3部分組成。1)核內(nèi)外設(shè)訪問層CPAL(CorePeripheralAccessLayer):由ARM公司實(shí)現(xiàn),包括了命名定義、地址定義、存取內(nèi)核寄存器和外圍設(shè)備的協(xié)助函數(shù),同時定義了一個與設(shè)備無關(guān)的RTOS內(nèi)核接口函數(shù)。2)中間件訪問層MWAL(MiddlewareAccessLayer):由ARM公司實(shí)現(xiàn),芯片廠商提供更新,主要負(fù)責(zé)定義中間件訪問的應(yīng)用程序編程接口API(ApplicationProgrammingInter-face)函數(shù),如TCP/IP協(xié)議棧、SD/MMC、USB等協(xié)議。3)設(shè)備外設(shè)訪問層DPAL(DevicePeripheralAccessLayer):由芯片廠商實(shí)現(xiàn),負(fù)責(zé)對硬件寄存器地址及外設(shè)接口進(jìn)行定義。另外,芯片廠商會對異常向量進(jìn)行擴(kuò)展,以處理相應(yīng)異常。3.7.2STM32F10x標(biāo)準(zhǔn)外設(shè)庫STM32標(biāo)準(zhǔn)函數(shù)庫也稱為固件庫,它是ST公司為嵌入式系統(tǒng)開發(fā)者訪問STM32底層硬件而提供的一個中間函數(shù)接口,即API(ApplicationProgramInterface),由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,還包括微控制器所有外設(shè)的性能特征、驅(qū)動描述和應(yīng)用實(shí)例。在STM32標(biāo)準(zhǔn)函數(shù)庫中,每個外設(shè)驅(qū)動都由一組函數(shù)組成,這組函數(shù)覆蓋了外設(shè)驅(qū)動的所有功能??梢詫TM32標(biāo)準(zhǔn)函數(shù)庫中的函數(shù)視為對寄存器復(fù)雜配置過程高度封裝后所形成的函數(shù)接口,通過調(diào)用這些函數(shù)接口即可實(shí)現(xiàn)對STM32寄存器的配置,從而達(dá)到控制的目的。STM32標(biāo)準(zhǔn)函數(shù)庫覆蓋了從GPIO端口到定時器,再到CAN、PC、SPI、UART和ADC等所有的標(biāo)準(zhǔn)外設(shè),對應(yīng)的函數(shù)源代碼只使用了基本的C編程知識,非常易于理解和使用,并且方便進(jìn)行二次開發(fā)和應(yīng)用。實(shí)際上,STM32標(biāo)準(zhǔn)函數(shù)庫中的函數(shù)只是建立在寄存器與應(yīng)用程序之間的程序代碼,向下對相關(guān)的寄存器進(jìn)行配置,向上為應(yīng)用程序提供配置寄存器的標(biāo)準(zhǔn)函數(shù)接口。STM32標(biāo)準(zhǔn)函數(shù)庫的函數(shù)構(gòu)建已由ST公司完成,這里不再詳述。在使用庫函數(shù)開發(fā)應(yīng)用程序時,只要調(diào)用相應(yīng)的函數(shù)接口即可實(shí)現(xiàn)對寄存器的配置,不需要探求底層硬件細(xì)節(jié)即可靈活規(guī)范地使用每個外設(shè)。STM32F10x標(biāo)準(zhǔn)外設(shè)庫包括微控制器所有外設(shè)的性能特征,而且包括每一個外設(shè)的驅(qū)動描述和應(yīng)用實(shí)例。通過使用該固件函數(shù)庫無需深入掌握細(xì)節(jié)便可開發(fā)每一個外設(shè),減少了用戶編程時間,從而降低開發(fā)成本。每一個外設(shè)驅(qū)動都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)的所有功能,每個器件的開發(fā)都由一個通用API驅(qū)動,API對該程序的結(jié)構(gòu)、函數(shù)和參數(shù)名都進(jìn)行了標(biāo)準(zhǔn)化。因此,對于多數(shù)應(yīng)用程序來說,用戶可以直接使用。對于那些在代碼大小和執(zhí)行速度方面有嚴(yán)格要求的應(yīng)用程序,可以參考固件庫,根據(jù)實(shí)際情況進(jìn)行調(diào)整。因此,在掌握了微控制器細(xì)節(jié)之后結(jié)合標(biāo)準(zhǔn)外設(shè)庫進(jìn)行開發(fā)將達(dá)到事半功倍的效果。系統(tǒng)相關(guān)的源程序文件和頭文件都以“stm32f10x_”開頭,如stm32f10x.h。外設(shè)函數(shù)的命名以該外設(shè)的縮寫加下劃線開頭,下劃線用以分隔外設(shè)縮寫和函數(shù)名,函數(shù)名的每個單詞的第一個字母大寫,如GPIO_ReadInputDataBit。1.Libraries文件夾下的標(biāo)準(zhǔn)庫的源代碼及啟動文件Libraries文件夾由CMSIS和STM32F10x_StdPeriph_Driver組成,如圖3-67所示。圖3-67Libraries文件結(jié)構(gòu)1)core_cm3.c和core_cm3.h分別是核內(nèi)外設(shè)訪問層(CPAL)的源文件和頭文件,作用是為采用Cortex-M3內(nèi)核的芯片外設(shè)提供進(jìn)入M3內(nèi)核的接口。這兩個文件對其他公司的M3系列芯片也是相同的。2)stm32f10x.h是設(shè)備外設(shè)訪問層(DPAL)的頭文件,包含了STM32F10x全圖3-2STM32的3.5版標(biāo)準(zhǔn)外設(shè)庫文件結(jié)構(gòu)系列所有外設(shè)寄存器的定義(寄存器的基地址和布局)、位定義、中斷向量表、存儲空間的地址映射等。3)system_stm32f10x.c和system_stm32f10x.h分別是設(shè)備外設(shè)訪問層(DPAL)的源文件和頭文件,包含了兩個函數(shù)和一個全局變量。函數(shù)SystemInit()用來初始化系統(tǒng)時鐘(系統(tǒng)時鐘源、PLL倍頻因子、AHB/APBx的預(yù)分頻及其Flash),啟動文件在完成復(fù)位后跳轉(zhuǎn)到main()函數(shù)之前調(diào)用該函數(shù)。函數(shù)SystemCoreClockUpdate()用來更新系統(tǒng)時鐘,當(dāng)系統(tǒng)內(nèi)核時鐘變化后必須執(zhí)行該函數(shù)進(jìn)行更新。全局變量SystemCoreClock包含了內(nèi)核時鐘(HCLK),方便用戶在程序中設(shè)置SysTick定時器和其他參數(shù)。4)startup_stm32f10x_X.s是用匯編寫的系統(tǒng)啟動文件,X代表不同的芯片型號,使用時要與芯片對應(yīng)。啟動文件是任何處理器上電復(fù)位后首先運(yùn)行的一段匯編程序,為C語言的運(yùn)行搭建合適的環(huán)境。其主要作用為:設(shè)置初始堆棧指針(SP);設(shè)置初始程序計(jì)數(shù)器(PC)為復(fù)位向量,并在執(zhí)行main()函數(shù)前調(diào)用SystemInit()函數(shù)初始化系統(tǒng)時鐘;設(shè)置向量表入口為異常事件的入口地址;復(fù)位后處理器為線程模式,優(yōu)先級為特權(quán)級,堆棧設(shè)置為MSP主堆棧。5)stm32f10x_ppp.c和stm32f10x_ppp.h分別為外設(shè)驅(qū)動源文件和頭文件,ppp代表不同的外設(shè),使用時將相應(yīng)文件加入工程。其包含了相關(guān)外設(shè)的初始化配置和部分功能應(yīng)用函數(shù),這部分是進(jìn)行編程功能實(shí)現(xiàn)的重要組成部分。6)misc.c和misc.h提供了外設(shè)對內(nèi)核中的嵌套向量中斷控制器NVIC的訪問函數(shù),在配置中斷時,必須把這兩個文件加到工程中。2.Project文件夾下是采用標(biāo)準(zhǔn)庫寫的一些工程模板和例子Project由STM32F10x_StdPeriphTemplate和STM32F10x_StdPeriph_Examples組成。在STM32F10x_StdPeriph_Template中有3個重要文件:stm32f10x_it.c、stm32fl0x_it.h和stm32f10x_conf.h。1)stm32f10x_it.c和stm32f10x_it.h是用來編寫中斷服務(wù)函數(shù)的,其中已經(jīng)定義了一些系統(tǒng)異常的接口,其他普通中斷服務(wù)函數(shù)要自己添加,中斷服務(wù)函數(shù)的接口在啟動文件中已經(jīng)寫好。2)stm32f10x_conf.h文件被包含進(jìn)stm32f10x.h文件,用來配置使用了哪些外設(shè)的頭文件,用這個頭文件可以方便地增加和刪除外設(shè)驅(qū)動函數(shù)。為了更好地使用標(biāo)準(zhǔn)外設(shè)庫進(jìn)行程序設(shè)計(jì),除了掌握標(biāo)準(zhǔn)庫的文件結(jié)構(gòu),還必須掌握其體系結(jié)構(gòu),將這些文件對應(yīng)到CMSIS標(biāo)準(zhǔn)架構(gòu)上。標(biāo)準(zhǔn)外設(shè)庫體系結(jié)構(gòu)如圖3-68所示。圖3-68描述了庫文件之間的包含調(diào)用關(guān)系,在使用標(biāo)準(zhǔn)庫開發(fā)時,把位于CMSIS層的文件添加到工程中不用修改,用戶只需根據(jù)需要修改用戶層的文件便可以進(jìn)行軟件開發(fā)。德國Keil公司于2007年推出嵌入式開發(fā)工具M(jìn)DK(MicrocontrollerDevelopmentKit),集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括μVision

集成開發(fā)環(huán)境與RealView

編譯器RVCT,適合不同層次的開發(fā)者使用,包括專業(yè)的應(yīng)用程序開發(fā)工程師和嵌入式軟件開發(fā)的入門者。圖3-68標(biāo)準(zhǔn)外設(shè)庫體系結(jié)構(gòu)STM32固件庫文件介紹如下:1)匯編編寫的啟動文件startup_stm32f10x_hd.s:設(shè)置堆棧指針、設(shè)置PC指針、初始化中斷向量表、配置系統(tǒng)時鐘。2)時鐘配置文件system_stm32f10x.c:把外部時鐘HSE=8M,經(jīng)過PLL倍頻為72MHz。3)外設(shè)相關(guān)的文件stm32f10x.h:實(shí)現(xiàn)了內(nèi)核之外的外設(shè)的寄存器映射;xxx:GPIO、USRAT、I2C、SPI、FSMC;stm32f10x_xx.c:外設(shè)的驅(qū)動函數(shù)庫文件;stm32f10x_xx.h:存放外設(shè)的初始化結(jié)構(gòu)體,外設(shè)初始化結(jié)構(gòu)體成員的參數(shù)列表,外設(shè)固件庫函數(shù)的聲明。4)內(nèi)核相關(guān)的文件CMSIS-Cortex微控制器軟件接口標(biāo)準(zhǔn);core_cm3.h:實(shí)現(xiàn)了內(nèi)核里面外設(shè)的寄存器映射;core_cm3.c:內(nèi)核外設(shè)的驅(qū)動固件庫;NVIC(嵌套向量中斷控制器)、SysTick(系統(tǒng)滴答定時器);misc.h;misc.c。5)頭文件的配置文件stm32f10x_conf.h:頭文件的頭文件;//stm32f10x_usart.h;//stm32f10x_i2c.h;//stm32f10x_spi.h;//stm32f10x_adc.h;//stm32f10x_fsmc.h;

......6)專門存放中斷服務(wù)函數(shù)的C文件stm32f10x_it.c;stm32f10x_it.h。中斷服務(wù)函數(shù)可以隨意放在其他的地方,并不是一定要放在stm32f10x_it.c#include"stm32f10x.h"http://相當(dāng)于51單片機(jī)中的#include<reg51.h>intmain(void){ //主程序}3.8STM32F103開發(fā)板的選擇本書應(yīng)用實(shí)例是在野火F103-指南者開發(fā)板上調(diào)試通過的,該開發(fā)板可以在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論