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

下載本文檔

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

文檔簡介

第3章STM32微控制器的

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

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

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

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

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

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

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

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

編譯器RVCT,適合不同層次的開發(fā)者使用,包括專業(yè)的應用程序開發(fā)工程師和嵌入式軟件開發(fā)的入門者。圖3-68標準外設庫體系結(jié)構(gòu)STM32固件庫文件介紹如下:1)匯編編寫的啟動文件startup_stm32f10x_hd.s:設置堆棧指針、設置PC指針、初始化中斷向量表、配置系統(tǒng)時鐘。2)時鐘配置文件system_stm32f10x.c:把外部時鐘HSE=8M,經(jīng)過PLL倍頻為72MHz。3)外設相關的文件stm32f10x.h:實現(xiàn)了內(nèi)核之外的外設的寄存器映射;xxx:GPIO、USRAT、I2C、SPI、FSMC;stm32f10x_xx.c:外設的驅(qū)動函數(shù)庫文件;stm32f10x_xx.h:存放外設的初始化結(jié)構(gòu)體,外設初始化結(jié)構(gòu)體成員的參數(shù)列表,外設固件庫函數(shù)的聲明。4)內(nèi)核相關的文件CMSIS-Cortex微控制器軟件接口標準;core_cm3.h:實現(xiàn)了內(nèi)核里面外設的寄存器映射;core_cm3.c:內(nèi)核外設的驅(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)專門存放中斷服務函數(shù)的C文件stm32f10x_it.c;stm32f10x_it.h。中斷服務函數(shù)可以隨意放在其他的地方,并不是一定要放在stm32f10x_it.c#include"stm32f10x.h"http://相當于51單片機中的#include<reg51.h>intmain(void){ //主程序}3.8STM32F103開發(fā)板的選擇本書應用實例是在野火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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論