版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Embedded System Development聊城大學(xué)(dxu) 理工學(xué)院曹銀杰caoyinjie 嵌入式系統(tǒng)(xtng)與應(yīng)用 共一百二十二頁(yè)第四章 Keil MDK-ARM集成開(kāi)發(fā)(kif)環(huán)境4.1 Keil MDK-ARM簡(jiǎn)介(jin ji)4.2 Keil MDK-ARM安裝4.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境共一百二十二頁(yè)4.1 Keil MDK-ARM簡(jiǎn)介(jin ji)Keil MDK-ARM (Microcontroller Development Kit)開(kāi)發(fā)工具源自德國(guó)Keil(),被全球超過(guò)10萬(wàn)的嵌入式開(kāi)發(fā)工程師使用。支持 1200 多種基于 ARM
2、Cortex-M 系列、ARM7、ARM9 和 Cortex-R4 處理器的設(shè)備。它包含眾多示例、項(xiàng)目模板和中間件庫(kù),具有廣泛的 TCP/IP 軟件堆棧、Flash 文件系統(tǒng)、USB 主機(jī)和設(shè)備堆棧、CAN 訪問(wèn)以及舒適的圖形用戶界面解決方案。易于使用的 IDE 和帶有高級(jí)分析功能的全功能調(diào)試器可幫助開(kāi)發(fā)人員快速啟動(dòng)項(xiàng)目,并集中精力實(shí)現(xiàn)其應(yīng)用程序的差異(chy)功能。MDK-ARM四種版本:MDK-Lite、基礎(chǔ)版、標(biāo)準(zhǔn)版和專業(yè)版。都提供C/C+開(kāi)發(fā)環(huán)境,專業(yè)版包括豐富的中間件庫(kù)。共一百二十二頁(yè)Keil MDK-ARM簡(jiǎn)介(jin ji)PC、IDE開(kāi)發(fā)環(huán)境(hunjng)、仿真器、評(píng)估板宿主
3、機(jī)仿真器評(píng)估板IDE開(kāi)發(fā)環(huán)境邏輯分析儀示波器Keil MDK-ARM共一百二十二頁(yè)Keil MDK-ARM簡(jiǎn)介(jin ji)完全支持 Cortex-M、Cortex-R4、ARM7 和 ARM9 設(shè)備行業(yè)領(lǐng)先的 ARM C/C+ 編譯工具鏈Vision4 IDE、調(diào)試器和模擬環(huán)境Keil RTX 確定性、占用空間小的實(shí)時(shí)操作系統(tǒng)(具有(jyu)源代碼)TCP/IP 網(wǎng)絡(luò)套件提供多個(gè)協(xié)議和各種應(yīng)用程序USB 設(shè)備和 USB 主機(jī)堆棧配備標(biāo)準(zhǔn)驅(qū)動(dòng)程序類ULINKpro 支持對(duì)正在運(yùn)行的應(yīng)用程序進(jìn)行即時(shí)分析并記錄執(zhí)行的每條 Cortex-M 指令有關(guān)程序執(zhí)行的完整代碼覆蓋率信息執(zhí)行性能分析器和性能
4、分析器支持程序優(yōu)化大量示例項(xiàng)目可幫您快速熟悉 MDK-ARM 強(qiáng)大的內(nèi)置功能符合 CMSIS Cortex 微控制器軟件接口標(biāo)準(zhǔn)共一百二十二頁(yè)Keil MDK-ARM簡(jiǎn)介(jin ji)在ARM公司的網(wǎng)站()注冊(cè)、下載最新的Keil MDK-ARM開(kāi)發(fā)工具軟件, MDK-Lite版:受限制的32K編譯(biny)、鏈接、部分模塊功能。共一百二十二頁(yè)Keil MDK-ARM簡(jiǎn)介(jin ji)MDK-Lite版: mdk_510.exe,約280M,直接(zhji)安裝即可。共一百二十二頁(yè)4.2 Keil MDK-ARM安裝(nzhung)共一百二十二頁(yè)Keil MDK-ARM安裝(nzhung
5、)軟件安裝后需要安裝所選用芯片(xn pin)的驅(qū)動(dòng)包安裝,里面包含了開(kāi)發(fā)模板、接口驅(qū)動(dòng)等。共一百二十二頁(yè)Keil MDK-ARM安裝(nzhung)選中要安裝的公司的芯片型號(hào)即可到對(duì)應(yīng)頁(yè)面(y min)下載安裝包DFP文件。共一百二十二頁(yè)Keil MDK-ARM安裝(nzhung)下載后的DFP文件,可直接安裝到開(kāi)發(fā)(kif)環(huán)境內(nèi)。共一百二十二頁(yè)4.3 Keil MDK-ARM集成(j chn)開(kāi)發(fā)環(huán)境安裝(nzhung)后在桌面快捷圖標(biāo),或開(kāi)始菜單啟動(dòng)即可。ToolbarsWatchWindowMemoryWindowLogic AnalyzerEditorWorkspaceMenu B
6、arProjectWorkspaceOutputWindowToolboxPage TabsPeripheralDialog共一百二十二頁(yè)共一百二十二頁(yè)共一百二十二頁(yè)共一百二十二頁(yè)共一百二十二頁(yè)第一個(gè)按鈕:Translate 就是翻譯當(dāng)下修改過(guò)的文件,說(shuō)明白點(diǎn)就是檢查下有沒(méi)有語(yǔ)法錯(cuò)誤,并不會(huì)去鏈接庫(kù)文件,也不會(huì)生成可執(zhí)行文件。 第二個(gè)按鈕:Build 就是編譯(biny)當(dāng)下修改過(guò)的文件,它包含了語(yǔ)法檢查,鏈接動(dòng)態(tài)庫(kù)文件,生成可執(zhí)行文件。 第三個(gè)按鈕:Rebuild 重新編譯整個(gè)工程,跟 Build 這個(gè)按鈕實(shí)現(xiàn)的功能是一樣的,但有所不同的是它編譯的是整個(gè)工程的所有文件,耗時(shí)巨大。 共一百二十
7、二頁(yè)共一百二十二頁(yè)共一百二十二頁(yè)共一百二十二頁(yè)“File”菜單(ci dn)芯片(xn pin)數(shù)據(jù)庫(kù)Licenses注冊(cè)管理新建、保存源程序文件共一百二十二頁(yè)“Edit”菜單(ci dn)設(shè)置(shzh)書(shū)簽分組隱藏源文件共一百二十二頁(yè)“Edit”菜單(ci dn)編輯配置(pizh)菜單:代碼編輯器設(shè)置顏色與字體設(shè)置用戶關(guān)鍵字快捷鍵代碼模板共一百二十二頁(yè)“View”菜單(ci dn)顯示(xinsh)或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch & Call Stack
8、 窗口顯示或隱藏存儲(chǔ)器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號(hào)窗口顯示或隱藏Call Stack顯示或隱藏Trace顯示窗口顯示或隱藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運(yùn)行時(shí)更新調(diào)試窗口顯示或隱藏源文件中的頭文件共一百二十二頁(yè)“Project”菜單(ci dn)創(chuàng)建(chungjin)一個(gè)新工程創(chuàng)建一個(gè)新工作區(qū)導(dǎo)入一個(gè)工程打開(kāi)一個(gè)工程關(guān)閉當(dāng)前工程維護(hù)工程組件、配置環(huán)境及管理書(shū)從設(shè)備庫(kù)中選擇CPU改變目標(biāo)、組、文件的工具選項(xiàng)清除編譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開(kāi)最近使用的工程文件共一百二十
9、二頁(yè)“Project”菜單(ci dn)維護(hù)(wih)工程組件、配置工具環(huán)境及管理書(shū):工程管理共一百二十二頁(yè)“Project”菜單(ci dn)-維護(hù)工程組件、配置(pizh)工具環(huán)境及管理書(shū):配置工具環(huán)境共一百二十二頁(yè)“Project”菜單(ci dn)-維護(hù)工程組件(z jin)、配置工具環(huán)境及管理書(shū):管理電子書(shū)共一百二十二頁(yè)“Project”菜單(ci dn)-改變目標(biāo)、組、文件(wnjin)的工具選項(xiàng):配置目標(biāo)板共一百二十二頁(yè)改變目標(biāo)、組、文件(wnjin)的工具選項(xiàng):目標(biāo)(mbio)處理器“Project”菜單-共一百二十二頁(yè)改變(gibin)目標(biāo)、組、文件的工具選項(xiàng):設(shè)置(shzh
10、)輸出文件“Project”菜單-共一百二十二頁(yè)改變目標(biāo)、組、文件(wnjin)的工具選項(xiàng):設(shè)置(shzh)表單文件“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):設(shè)置用戶(yngh)自定義程序“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):配置(pizh)C編譯器“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):配置(pizh)匯編器“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):配置(pizh)鏈接器“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文
11、件的工具選項(xiàng):配置(pizh)調(diào)試信息“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):仿真器信息(xnx)“Project”菜單-共一百二十二頁(yè)改變目標(biāo)(mbio)、組、文件的工具選項(xiàng):配置(pizh)Flash下載工具“Project”菜單-共一百二十二頁(yè)“Debug”菜單(ci dn)運(yùn)行到下一個(gè)(y )活動(dòng)斷點(diǎn)單步運(yùn)行進(jìn)入一個(gè)函數(shù)單步運(yùn)行跳過(guò)一個(gè)函數(shù)從當(dāng)前函數(shù)跳出運(yùn)行到當(dāng)前行光標(biāo)處啟動(dòng)或停止Vision3調(diào)試模式停止運(yùn)行打開(kāi)斷點(diǎn)對(duì)話框在當(dāng)前行設(shè)置斷點(diǎn)Enable/disable當(dāng)前行的斷點(diǎn)使程序中的所有斷點(diǎn)無(wú)效去除程序中的所有斷點(diǎn)顯示下一條要執(zhí)行的指令DE
12、BUG設(shè)置使能Trace跟蹤查看Trace結(jié)果記錄代碼執(zhí)行次數(shù)或時(shí)間打開(kāi)邏輯分析儀對(duì)話框打開(kāi)存儲(chǔ)器映射對(duì)話框打開(kāi)性能分析儀對(duì)話框打開(kāi)在線匯編對(duì)話框編輯調(diào)試函數(shù)及調(diào)試初始化文件共一百二十二頁(yè)“Flash”菜單(ci dn)擦除Flash配置(pizh)Flash工具下載程序映象到Flash中共一百二十二頁(yè)“Peripherals”菜單(ci dn)共一百二十二頁(yè)“Tools”菜單(ci dn)共一百二十二頁(yè)MDK工具欄常規(guī)(chnggu)狀態(tài)下工具欄:調(diào)試(dio sh)狀態(tài)下工具欄:共一百二十二頁(yè)工程管理(gunl)窗口工程文件(wnjin)窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板共一百二十
13、二頁(yè)源代碼窗口(chungku)源代碼彩色顯示文本(wnbn)的選擇任意數(shù)量的文本在文本上拖曳一個(gè)單詞雙擊這個(gè)單詞一行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并單擊它多行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并拖拽它垂直文本按住Alt并拖拽源代碼和匯編混合顯示共一百二十二頁(yè)調(diào)試(dio sh)窗口及對(duì)話框Breakpoint 對(duì)話框,可在此對(duì)話框中定義程序執(zhí)行停止的條件; Code Coverage 窗口統(tǒng)計(jì)了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息; Disassembly Window 可以反匯編方式來(lái)查看及測(cè)試程序; Logic Analyzer 窗口可以以圖形的方
14、式來(lái)顯示變量及外設(shè)寄存器值的變化; Memory Window 對(duì)話框可查看及修改內(nèi)存內(nèi)容; Memory Map 指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間; Output Window - Command 窗口可進(jìn)行命令輸入和信息輸出; Execution Profiler 窗口被集成在編輯和反匯編窗口中,用于時(shí)間及調(diào)用信息統(tǒng)計(jì); Performance Analyzer 窗口可以顯示執(zhí)行時(shí)間的統(tǒng)計(jì)信息; Serial Window 用串口通信,顯示串口通信內(nèi)容; Symbol Window 用于顯示應(yīng)用程序中的調(diào)試符號(hào)信息; Toolbox 提供一個(gè)可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)
15、(hnsh)的執(zhí)行; Watch Window 可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。 共一百二十二頁(yè)Breakpoint對(duì)話框Debug - Breakpoint Execution Break(E):當(dāng)表達(dá)式是代碼地址(dzh)時(shí),斷點(diǎn)被定義。 Access Break(A):當(dāng)所指定的內(nèi)存訪問(wèn)發(fā)生時(shí),此斷點(diǎn)有效。 Conditional Break(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時(shí),一個(gè)類型的斷點(diǎn)被定義。 共一百二十二頁(yè)代碼(di m)統(tǒng)計(jì)對(duì)話框View - Code Coverage Windows 代碼統(tǒng)計(jì)對(duì)話框提供(tgng)了程序中各個(gè)模塊及函數(shù)的執(zhí)行情況。 在Cu
16、rrent Module(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個(gè)模塊或函數(shù)的指令執(zhí)行百分比共一百二十二頁(yè)反匯編窗口(chungku)View - Disassembly Window 反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。 通過(guò)Debug - View Trace Records可以查看前面(qin mian)指令的執(zhí)行記錄。共一百二十二頁(yè)邏輯(lu j)分析儀Debug - Logic Analyzer Window Vision3邏輯分析儀可以將指定的變量或VTREGs值的變化以圖形方式(fngsh)表示出來(lái)。 邏輯分析儀信號(hào)配置詳細(xì)設(shè)置使用限制共一百二
17、十二頁(yè)內(nèi)存(ni cn)窗口View - Memory Window 通過(guò)內(nèi)存窗口可以查看存儲(chǔ)器內(nèi)容(nirng)。 內(nèi)存窗口最多可將四個(gè)不同的存儲(chǔ)域顯示在不同的頁(yè)中。 窗口中的右鍵菜單可以選擇輸出格式。 在Address域內(nèi),可以輸入一個(gè)表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。 在某個(gè)單元的值上雙擊可打開(kāi)一個(gè)編輯框,它允許鍵入一個(gè)新的存儲(chǔ)值改變存儲(chǔ)內(nèi)容。 使能View Periodic Window Update,可以在運(yùn)行目標(biāo)程序時(shí)更新此窗口中的值。共一百二十二頁(yè)內(nèi)存映射(yngsh)窗口Debug - Memory Map 內(nèi)存映射對(duì)話框可以用來(lái)設(shè)定那些地址空間用于存儲(chǔ)數(shù)據(jù)(shj)、那
18、些地址空間用于存儲(chǔ)程序。 被訪問(wèn)的地址空間沒(méi)有被明確聲明時(shí)就必須進(jìn)行地址映射,如存儲(chǔ)映射I/O空間。 在目標(biāo)程序運(yùn)行期間,保證讓程序不進(jìn)行非法的存儲(chǔ)區(qū)訪問(wèn)。共一百二十二頁(yè)輸出(shch)窗口View - Output Window 輸出窗口:編譯信息輸出、命令輸出、文件(wnjin)查找結(jié)果輸出。 命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。共一百二十二頁(yè)執(zhí)行(zhxng)剖析器Debug - Execution Profiling - Time/Calls 執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時(shí)間。 它具有兩種顯示方式:Call(顯示(xinsh)執(zhí)行次數(shù))和Time
19、(顯示執(zhí)行時(shí)間)。 將鼠標(biāo)放在指定的入口處即可顯示有關(guān)執(zhí)行時(shí)間及次數(shù)的詳細(xì)信息。共一百二十二頁(yè)性能(xngnng)分析儀Debug - Performance Analyzer 性能分析儀用于記錄和顯示(xinsh)程序的執(zhí)行時(shí)間。 Vision ARM 仿真器記錄整個(gè)程序代碼的時(shí)間統(tǒng)計(jì)信息。共一百二十二頁(yè)串行窗口(chungku)View - Serial Window printf - int fputc(int ch, FILE *f); getchar - int fgetc(FILE * stream);共一百二十二頁(yè)符號(hào)(fho)窗口View - Symbol Window 顯示定
20、義在當(dāng)前被載入的應(yīng)用程序中的公有符號(hào)(fho)、局部符號(hào)(fho)及行號(hào)信息。 CPU特殊功能寄存器SFR符號(hào)也顯示在此窗口中。共一百二十二頁(yè)工具箱View - Toolbox Toolbox中包含用戶可配置(pizh)的按鈕。點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令(debug command) 或調(diào)試函數(shù)(debug function)。工具箱按鈕可以在任何時(shí)間執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。參考(cnko) 實(shí)例:DEFINE BUTTON My Status Info, MyStatus()DEFINE BUTTON Analog0 0.3V, analog0(3) DEFINE BUTT
21、ON Stop Analog0, signal kill analog0共一百二十二頁(yè)Watch窗口(chungku)View - Watch & Call stack Window Locals 頁(yè)列出了當(dāng)前函數(shù)(hnsh)中全部的局部變量。 Watch 頁(yè)列出了用戶指定的程序變量。 Call Stack 頁(yè)顯示了當(dāng)前的函數(shù)調(diào)用嵌套關(guān)系。共一百二十二頁(yè)新建工程、編譯、調(diào)試(dio sh)、下載內(nèi)容(nirng)四共一百二十二頁(yè)MDK開(kāi)發(fā)(kif)的四個(gè)步驟Step 1:選擇設(shè)備和指定硬件(yn jin)對(duì)象Step 2:配置設(shè)備和創(chuàng)建應(yīng)用程序代碼Vision 包含了工程管理器、編輯器和調(diào)試器
22、網(wǎng)上龐大地設(shè)備數(shù)據(jù)庫(kù) & Vision 簡(jiǎn)單化地芯片選擇與設(shè)置共一百二十二頁(yè)MDK開(kāi)發(fā)(kif)的四個(gè)步驟通過(guò)(tnggu) ULINK 進(jìn)行Flash Download 和 Target Debugging 通過(guò) Vision Debugger 和 Device Simulator調(diào)試Step 3:用Vision設(shè)備仿真器分析代碼Step 4: Flash下載最后在目標(biāo)硬件上測(cè)試共一百二十二頁(yè)新建工程(gngchng)建立源碼存放(cnfng)路徑:C:KeilARMExamplesFirst;新建工程文件First.Uv2;Project - New Vision Project設(shè)置CPU
23、:NXP - LPC2129;添加啟動(dòng)代碼。共一百二十二頁(yè)新建工程(gngchng)共一百二十二頁(yè)添加(tin ji)管理源文件組織源碼結(jié)構(gòu);添加源文件:從C:KeilARMExamplesMeasure拷貝(kobi)源文件。建立軟仿真工程:Simulator為設(shè)備仿真工程。Startup啟動(dòng)代碼Source實(shí)驗(yàn)源文件System系統(tǒng)調(diào)用源文件IniFile初始化命令文件ReadMe說(shuō)明文件共一百二十二頁(yè)添加(tin ji)管理源文件點(diǎn)擊(din j)工具欄“ ”管理工程,添加源碼。注:為了說(shuō)明操作,直接拷貝附帶例程源碼。共一百二十二頁(yè)設(shè)置RTX庫(kù)設(shè)置ROM設(shè)置RAM設(shè)置使用微庫(kù)創(chuàng)建HEX文
24、件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑配置(pizh)工程點(diǎn)擊工具欄“ ”打開(kāi)工程(gngchng)配置窗口。設(shè)置分散加載設(shè)置初始化文件共一百二十二頁(yè)配置啟動(dòng)(qdng)代碼圖形化配置(pizh) 圖形化對(duì)話框,直觀方便 免除手寫(xiě)幾百行匯編代碼 快速生成啟動(dòng)代碼共一百二十二頁(yè)編譯鏈接(lin ji)工程點(diǎn)擊(din j)工具欄“ ”編譯鏈接工程Build target Simulatorassembling Spiling Mpiling Mpiling Gpiling Rpiling Serial.c.linking.Program Size: Code=9402 RO-data=958 RW-d
25、ata=48 ZI-data=1272 First.axf - 0 Error(s), 0 Warning(s).共一百二十二頁(yè)Debug調(diào)試(dio sh)點(diǎn)擊工具欄“ ”下載程序到目標(biāo)板進(jìn)入(jnr)調(diào)試狀態(tài)共一百二十二頁(yè)單步、查看(chkn)各個(gè)窗口單步、斷點(diǎn)、全速運(yùn)行:查看Debug狀態(tài)下各個(gè)(gg)窗口:共一百二十二頁(yè)設(shè)置編程工具Flash下載(xi zi)Flash - Configure Flash Tools:Flash芯片型號(hào)共一百二十二頁(yè)設(shè)備仿真(fn zhn)實(shí)例內(nèi)容(nirng)五共一百二十二頁(yè)MDK的設(shè)備(shbi)仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼(di m)可在
26、整個(gè)設(shè)備上運(yùn)行完全的目標(biāo)硬件仿真完整的目標(biāo)高效指令集仿真中斷仿真片內(nèi)外圍設(shè)備ADC, DAC, EBI, TimersUART, CAN, I2C. 包含外部信號(hào)和 I/O包含外部信號(hào)和 I/O充足的仿真信息包含在設(shè)備數(shù)據(jù)庫(kù)里Supports 250 ARM based MCUsIncluded in RealView MDK/uvision/db_sim.asp共一百二十二頁(yè)Measure程序(chngx)介紹默認(rèn)路徑: C:KeilARMExamplesMeasure;uVision Simulator for LPC2129;該例程描述了如何使用uVision的信號(hào)函數(shù)功能(gngnng
27、)來(lái)仿真LPC21XX一個(gè)模擬量的輸入。共一百二十二頁(yè)編譯、鏈接(lin ji)、調(diào)試打開(kāi)Measure工程,編譯、鏈接程序(chngx),點(diǎn)擊Debug進(jìn)入調(diào)試狀態(tài)。編譯、鏈接Debug共一百二十二頁(yè)虛擬(xn)串口打開(kāi)虛擬串口2,全速(qun s)運(yùn)行程序查看結(jié)果;Retarget庫(kù)文件/ Serial.cint sendchar (int ch) if (ch = n) while (!(U1LSR & 0 x20); U1THR = CR; while (!(U1LSR & 0 x20); return (U1THR = ch);int getkey (void) while (!(U
28、1LSR & 0 x01); return (U1RBR);/ Retarget.cint fputc(int ch, FILE *f) return (sendchar(ch);RealView微控制器開(kāi)發(fā)工具集帶有一個(gè)預(yù)定義的retarget庫(kù)文件,它是許多例程的一部分。retarget文件修改了底層的I/O 程序,并禁止了semi-hosting SWI 中斷的使用。共一百二十二頁(yè)查看(chkn)程序代碼代碼塊彩色顯示顯示混合的源代碼與反匯編代碼改變(gibin)顯示模式并且使用context menu中的其他命令 (在Disassembly窗口中點(diǎn)擊右鍵)共一百二十二頁(yè)調(diào)用(dioyn
29、g)棧View - Watch & Call stack Window View - Call stack Unwinder 顯示函數(shù)的嵌套情況雙擊此頁(yè)中的某行,將會(huì)在工作(gngzu)區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。顯示函數(shù)的嵌套情況顯示函數(shù)參數(shù)的值或者地址雙擊此頁(yè)中的某行,將會(huì)在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。共一百二十二頁(yè)通過(guò)(tnggu)設(shè)置Trace功能,可以跟蹤代碼跟蹤(gnzng)代碼要求設(shè)置Enable/Disable Trace Recording可以查看到在到達(dá)斷點(diǎn)前CPU所執(zhí)行的指令在工程工作空間的Regs頁(yè)面會(huì)顯示執(zhí)行所選擇的指令在執(zhí)行過(guò)程中相應(yīng)的CPU寄存器內(nèi)容。
30、共一百二十二頁(yè)雙擊一行代碼,在代碼的左面出現(xiàn)(chxin)一個(gè)紅點(diǎn),表示斷電設(shè)置成功斷點(diǎn)(dun din)使用工具欄的斷點(diǎn)相關(guān)按鈕:調(diào)試狀態(tài)下:Debug - Breakpoint,可以設(shè)置高級(jí)斷點(diǎn)在不具備trace功能的硬件環(huán)境下,不具備條件觸發(fā)中斷的能力條件觸發(fā)中斷只能在軟件仿真的情況下實(shí)現(xiàn)當(dāng)對(duì)變量current.time.sec進(jìn)行寫(xiě)操作且值恒等于3的產(chǎn)生斷點(diǎn)共一百二十二頁(yè)查看(chkn)變量View - Watch Window可以隨時(shí)查看變量、結(jié)構(gòu)體以及數(shù)組的內(nèi)容。在空白行雙擊鼠標(biāo)左鍵或者按F2鍵即可添加變量,通過(guò)同樣的方式也可以修改變量的值。 在源文件編輯窗口(chungku)選擇
31、需要添加的變量名,單擊鼠標(biāo)右鍵,在彈出的局部菜單中選擇Add to Watch Window選項(xiàng)將其加入。共一百二十二頁(yè)查看(chkn)片上外設(shè)Vision里提供了片上外設(shè)對(duì)話框:I/O端口,中斷,定時(shí)器,A/D轉(zhuǎn)換器,串口和一些芯片特有的外設(shè)。對(duì)話框會(huì)顯示當(dāng)前外設(shè)的狀態(tài),同時(shí)(tngsh)也可以直接在對(duì)話框中改變相應(yīng)的輸入值。共一百二十二頁(yè)性能(xngnng)分析儀&代碼覆蓋統(tǒng)計(jì)Debug - Performance AnalyzeView - Code Coverage Windows共一百二十二頁(yè)信號(hào)(xnho)函數(shù)信號(hào)函數(shù)可以在后臺(tái)實(shí)現(xiàn)信號(hào)輸入、脈沖(michng)輸入等重復(fù)操作。信號(hào)
32、函數(shù)可用于模擬和測(cè)試串行I/O、模擬I/O、端口通訊和其他一些重復(fù)發(fā)生的外部事件。FUNC void MyStatus (void) printf (=n); printf ( Analog-Input-0: %fn, ain0); printf ( Analog-Input-1: %fn, ain1); printf ( Analog-Input-2: %fn, ain2); printf ( Analog-Input-3: %fn, ain3); printf ( Port 0: %08Xn, port0); printf (=n);/* MEASURE.INI: Measure Debu
33、g Init File */Signal void analog0 (float limit) float volts; printf (Analog0 (%f) entered.n, limit); while (1) /* forever */ volts = 0; while (volts = 0.0) ain0 = volts; swatch (0.01); /* wait 0.01 seconds */ volts -= 0.1; /* decrease voltage */ 初始化文件信號(hào)函數(shù)共一百二十二頁(yè)ToolboxView - Toolbox;DEFINE BUTTON My
34、 Status Info, MyStatus()DEFINE BUTTON Analog0 0.3V, analog0(3)DEFINE BUTTON Stop Analog0, signal kill analog0Toolbox中包含用戶可配置的按鈕。點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令或調(diào)試函數(shù)。工具箱按鈕可以在任何時(shí)間(shjin)執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。添加(tin ji)按鈕語(yǔ)法:刪除按鈕語(yǔ)法:DEFINE BUTTON button_label, command“Kill Button num共一百二十二頁(yè)邏輯(lu j)分析儀Debug - Logic Analyzer
35、 Window可以(ky)是變量或VTREGs值共一百二十二頁(yè)綜合(zngh)全速運(yùn)行(ynxng)程序,串口輸入“d”,在終端顯示ADC采樣值;點(diǎn)擊Toolbox的“Analog0 0.3”按鈕,輸出外部信號(hào);查看各個(gè)調(diào)試窗口狀態(tài)。共一百二十二頁(yè)調(diào)試命令(mng lng)/函數(shù)、分散加載文件內(nèi)容(nirng)六共一百二十二頁(yè)調(diào)試(dio sh)命令Vision3支持(zhch)大量命令,可以通過(guò) Output Window Command Line 鍵入命令在命令入口處,語(yǔ)法生成器會(huì)顯示命令,選項(xiàng)和參數(shù)。僅需鍵入命令名單詞的首字符。類別描述斷點(diǎn)命令允許創(chuàng)建和刪除斷點(diǎn)。當(dāng)遇到一個(gè)特定指令時(shí)可以
36、使用斷點(diǎn)停止程序執(zhí)行或執(zhí)行Vision3 命令或用戶函數(shù)。普通命令可以執(zhí)行一些混合的調(diào)試操作。存儲(chǔ)器命令顯示和改變存儲(chǔ)器內(nèi)容程序命令執(zhí)行目標(biāo)程序并分析其性能共一百二十二頁(yè)調(diào)試(dio sh)命令-斷點(diǎn)命令命令 描述 BreakAccess添加一個(gè)指定長(zhǎng)度(地址域)的訪問(wèn)斷點(diǎn)到斷點(diǎn)列表。BreakDisable使一個(gè)或多個(gè)斷點(diǎn)不可用。BreakEnable使能一個(gè)或多個(gè)斷點(diǎn)。BreakKill從斷點(diǎn)列表中移除一個(gè)或多個(gè)斷點(diǎn)。BreakList列出當(dāng)前斷點(diǎn)。BreakSet添加一個(gè)斷點(diǎn)表達(dá)式到斷點(diǎn)列表。共一百二十二頁(yè)調(diào)試(dio sh)命令-普通命令命令 描述ASSIGN為串行窗口分配輸入輸出源。
37、DEFINE創(chuàng)建一個(gè)工具箱按鈕。DIR生成一個(gè)符號(hào)名目錄。EXIT退出Vision3 調(diào)試模式。INCLUDE讀取并執(zhí)行命令文件中的命令。KILL刪除Vision3 調(diào)試函數(shù)和工具箱按鈕。LOAD載入目標(biāo)模塊和十六進(jìn)制文件。LOG為調(diào)試窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。MODE為PC機(jī)的COM口設(shè)置波特率,奇偶位和停止位。RESET重啟Vision3, 重設(shè)存儲(chǔ)映射分配及重置預(yù)定義變量。SAVE在Intel HEX386文件中保存一個(gè)存儲(chǔ)域。SCOPE顯示目標(biāo)程序的模塊和函數(shù)的地址分配。SET為預(yù)定義變量設(shè)備字符串值。SIGNAL顯示信號(hào)函數(shù)的狀態(tài)和移除有效信號(hào)函數(shù)。SLOG為串行
38、窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。共一百二十二頁(yè)調(diào)試(dio sh)命令-存儲(chǔ)器命令命令 描述 ASM匯編內(nèi)嵌代碼。DEFINE定義可能在Vision3中使用的符號(hào)。DISPLAY顯示存儲(chǔ)器的內(nèi)容。ENTER把值鍵入到指定的存儲(chǔ)域。EVALuate求表達(dá)式的值并輸出結(jié)果。MAP為存儲(chǔ)域指定訪問(wèn)參數(shù)。Unassemble反匯編程序存儲(chǔ)域。WatchSet向觀測(cè)窗口中添加一個(gè)觀測(cè)變量。WatchKill刪除觀測(cè)窗口中的所有觀測(cè)變量共一百二十二頁(yè)調(diào)試命令(mng lng)-程序命令(mng lng)命令 描述 COVERAGE顯示代碼統(tǒng)計(jì)信息Go啟動(dòng)程序執(zhí)行LogicAnalyze初始化
39、邏輯分析儀PerformanceAnalyze初始化內(nèi)置的性能分析儀。Pstep執(zhí)行指令但不跳入過(guò)程或函數(shù)。Ostep跳出當(dāng)前函數(shù)。Tstep跳過(guò)指令并跳入函數(shù)。共一百二十二頁(yè)調(diào)試(dio sh)函數(shù)Vision3 中有一個(gè)內(nèi)建的函數(shù)編輯器,通過(guò)Debug - Function Editor來(lái)打開(kāi)。打開(kāi)函數(shù)編輯器時(shí)需要輸入一個(gè)文件名或者打開(kāi)一個(gè)由Options for Target Debug Initialization File指定的文件。該編輯器的用法與Vision3編輯器相同,允許用戶(yngh)輸入和編譯調(diào)試函數(shù)。共一百二十二頁(yè)調(diào)試(dio sh)函數(shù)Vision3提高了一些可被調(diào)用
40、的預(yù)定義調(diào)試函數(shù),它們不能被重定義或者被刪除。預(yù)定義函數(shù)用來(lái)幫助開(kāi)發(fā)者定義用戶(yngh)和信號(hào)函數(shù)。名字參數(shù)描述voidexec執(zhí)行調(diào)試命令doublegetdbl請(qǐng)求用戶輸入一個(gè)雙精度浮點(diǎn)數(shù)據(jù)intgetint請(qǐng)求用戶輸入一個(gè)整型數(shù)據(jù)longgetlong請(qǐng)求用戶輸入一個(gè)長(zhǎng)整型數(shù)據(jù)voidmemset以常量填充內(nèi)存voidprintf輸出函數(shù)intrand返回介于0到32767之間的隨即數(shù)voidrwatch延遲執(zhí)行信號(hào)函數(shù)直到讀取地址成功更多函數(shù) 共一百二十二頁(yè)裝載域BINROMRAM文件(wnjin)映像域裝載域描述運(yùn)行前輸出段和域在ROM/RAM里的分布(fnb)狀態(tài);運(yùn)行域描述了運(yùn)
41、行時(shí)輸出段和域在ROM/RAM里的分布狀態(tài)。CODEDATA運(yùn)行域RO sectionRW sectionZI sectionSTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Limit共一百二十二頁(yè)運(yùn)行(ynxng)時(shí)的數(shù)據(jù)搬移RW段搬移(bn y)&ZI段清零裝載域BINROMRAMCODEDATA運(yùn)行域RORWZISTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Li
42、mit# Copy RW dataInitialize: ldr r0, =Image$RO$Limit ldr r1, =Image$RW$Base ldr r3, =Image$RW$Limit cmp r0, r1 beq F1F0: cmp r1, r3 LDRCC r2, r0, #4 strcc r2, r1, #4 bcc F0# Paste zero initialized dataF1: ldr r1, =Image$ZI$Limit ldr r3, =Image$ZI$Base mov r2, #0F2: cmp r3, r1 strcc r2, r3, #4 bcc F2
43、共一百二十二頁(yè)Scatterfile分散(fnsn)加載文件分散加載(Scatlerloading),即工程里的.scf文件;在scatterfile中可以為每一個(gè)代碼(di m)或數(shù)據(jù)區(qū)執(zhí)行時(shí)指定不同的存儲(chǔ)區(qū)域地址。分散加載文件;RUN IN FLASHLR_ROM1 0 x00000000 0 x00200000 ER_ROM1 0 x00000000 0 x00200000 *.o (RESET, +First) *(InRoot$Sections) .ANY (+RO) RW_RAM1 0 x30000000 0 x04000000 .ANY (+RW +ZI) ;RUN IN RAM
44、LR_ROM1 0 x30000000 0 x00010000 ER_ROM1 0 x30000000 0 x00010000 *.o (RESET, +First) *(InRoot$Sections) .ANY (+RO) RW_RAM1 0 x30010000 0 x00010000 .ANY (+RW +ZI) *(InRoot$Sections)它是_main()的一部分共一百二十二頁(yè)基于硬件(yn jin)的開(kāi)發(fā)調(diào)試內(nèi)容(nirng)七共一百二十二頁(yè)環(huán)境(hunjng)工具的準(zhǔn)備硬件:EduKit-IV+Mini2410平臺(tái)一套;仿真器:ARM RealView MDK套件一套;其
45、他:電腦一臺(tái)(安裝(nzhung)Windows XP系統(tǒng)、MDK環(huán)境);拷貝出廠光盤(pán)DISK3_S3C241003-Codes01-MDKMini2410-IV文件夾到MDK安裝路徑: C:KeilARMBoardsEmbest;正確安裝Mini2410核心板,BOOT跳線斷開(kāi),連接好交叉串口線、電源線;以8.2_ADC_Test程序?yàn)槔?。共一百二十二?yè)硬件(yn jin)原理隨著數(shù)字技術(shù),特別是計(jì)算機(jī)技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制、通信及檢測(cè)領(lǐng)域中,對(duì)信號(hào)的處理廣泛采用了數(shù)字計(jì)算機(jī)技術(shù)。由于系統(tǒng)的實(shí)際處理對(duì)象(duxing)往往都是一些模擬量(如溫度、壓力、位移、圖像等),要使計(jì)算機(jī)或數(shù)
46、字儀表能識(shí)別和處理這些信號(hào),必須首先將這些模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),這就必須用到 A/D 轉(zhuǎn)換器。參考資料:基于S3C2410嵌入式MDK開(kāi)發(fā)實(shí)驗(yàn)與實(shí)踐.pdf0_EDUKIT-IV.pdf1_Mini2410-IV.pdf共一百二十二頁(yè)S3C2410 ADC控制器分析(fnx)S3C2410處理器內(nèi)部集成了采用近似比較算法(計(jì)數(shù)式)的 8 路 10 位 ADC,集成零比較器,內(nèi)部產(chǎn)生比較時(shí)鐘信號(hào);支持軟件使能休眠模式,以減少電源(dinyun)損耗。其中AIN5和AIN7可作為觸摸屏控制。主要特性:精度10bit、微分線性誤差 1.5 LSB、積分線性誤差 2.0 LSB、最大轉(zhuǎn)換速率500K
47、SPS、輸入電壓03.3V。主要寄存器寄存器地址R/W功能描述復(fù)位值A(chǔ)DCCON0 x58000000R/WADC控制寄存器0 x3FC4ADCDAT00 x5800000CRADC數(shù)據(jù)寄存器-/ .CommonInc 2410addr.h/ ADC#define rADCCON (*(volatile unsigned *)0 x58000000)#define rADCDAT0 (*(volatile unsigned *)0 x5800000c)共一百二十二頁(yè)S3C2410 ADC控制器-ADCCONADCCONBitDescriptionInitial StateECFLG15End
48、of conversion flag (read only).0 = A/D conversion in process 1 = End of A/D conversion0PRSCEN14A/D converter prescaler enable.0 = Disable 1 = Enable0PRSCVL13:6A/D converter prescaler value.Data value: 1 255ADC frequency = PCLK/(PRSCVL + 1)NOTE: This A/D converter is designed to operate at maximum 2.
49、5 MHz clock,0 xFFSEL_MUX5:3Analog input channel select.000 = AIN0 001 = AIN1 010 = AIN2 011 = AIN3100 = AIN4 101 = AIN5 110 = AIN6 111 = AIN7 (XP)0STDBM2Standby mode select.0 = Normal operation mode 1 = Standby mode1READ_START1A/D conversion start by read.0 = Disable start by read operation1 = Enabl
50、e start by read operationENABLE_START0A/D conversion starts by setting this bit.If READ_START is enabled, this value is not valid.0 = No operation1 = A/D conversion starts and this bit is cleared after the start-up.0共一百二十二頁(yè)S3C2410 ADC控制器-ADCDAT0ADCDAT0BitDescriptionInitial StateUPDOWN15Up or down st
51、ate of Stylus at Waiting for Interrupt Mode.0 = Stylus down state 1 = Stylus up state-AUTO_PST14Automatic sequencing conversion of X-position andY-position.0 = Normal ADC conversion1 = Sequencing measurement of X-position, Y-position-XY_PST13:12Manual measurement of X-position or Y-position.00 = No
52、operation mode01 = X-position measurement10 = Y-position measurement11 = Waiting for Interrupt Mode-Reserved11:10ReservedXPDATA(Normal ADC)9:0X-position conversion data value. (include Normal ADC conversion data value)Data value: 0 3FF-共一百二十二頁(yè)程序設(shè)計(jì)(chn x sh j)啟動(dòng)(qdng)代碼系統(tǒng)庫(kù)初始化ADC配置ADC采樣采樣是否結(jié)束打印采樣值開(kāi)始是否
53、是否繼續(xù)采樣是結(jié)束否共一百二十二頁(yè)相關(guān)(xinggun)代碼(一)啟動(dòng)(qdng)代碼/ S3C2410A.s系統(tǒng)庫(kù)代碼/ .CommonSrc2410lib.cvoid uart_printf(char *fmt,.);void port_init(void);void change_clock_divider(int nHdiv,int nPdiv);/ .CommonSrcsys_init.cvoid sys_init();ADC配置/ adc_test.c void adc_test(void);#define ADC_FREQ 2500000unPreScaler = PCLK/ADC_FREQ - 1;rADCCON=(114)|(unPreScaler6)|(03)|(02)|(11);共一百二十二頁(yè)相關(guān)(xinggun)代碼(二)判斷(pndun)ADC采樣是否結(jié)束/ adc_test.c void adc_test(void);while(!(rADCCON & 0 x8000);打印采樣值/ adc_test.c void adc_test(void)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東松山職業(yè)技術(shù)學(xué)院《工程制圖基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東汕頭幼兒師范高等??茖W(xué)校《時(shí)裝表演藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東南方職業(yè)學(xué)院《市場(chǎng)調(diào)研》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名幼兒師范??茖W(xué)?!独碡?cái)與稅收籌劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東理工職業(yè)學(xué)院《幼兒藝術(shù)教育與活動(dòng)指導(dǎo)(美術(shù))》2023-2024學(xué)年第一學(xué)期期末試卷
- 從“愚昧”到“科學(xué)”:科學(xué)技術(shù)簡(jiǎn)史(清華大學(xué))學(xué)習(xí)通測(cè)試及答案
- 【高考解碼】2021屆高三生物二輪復(fù)習(xí)專題-生物與環(huán)境檢測(cè)試題(B)
- 2024全光智慧城市發(fā)展報(bào)告
- 內(nèi)蒙古包頭市一機(jī)一中2014-2021學(xué)年高一上學(xué)期期中政治試題-含解析
- 【中學(xué)教材全解】2020年秋高中物理必修一課時(shí)學(xué)案:第四章-牛頓運(yùn)動(dòng)定律-第5節(jié)-牛頓第三定律
- 水利安全生產(chǎn)風(fēng)險(xiǎn)防控“六項(xiàng)機(jī)制”右江模式經(jīng)驗(yàn)分享
- “雙減”背景下小學(xué)數(shù)學(xué)“教、學(xué)、評(píng)”一體化的思考與實(shí)踐
- 中外美術(shù)評(píng)析與欣賞智慧樹(shù)知到期末考試答案章節(jié)答案2024年湖南大學(xué)
- 事業(yè)單位考試《綜合知識(shí)和能力測(cè)試》試卷
- 2023年山西普通高中會(huì)考信息技術(shù)真題及答案
- 老人健康飲食知識(shí)講座
- 福利住房與購(gòu)房補(bǔ)貼制度
- 康師傅烏龍茗茶營(yíng)銷策劃書(shū)
- 浙江省溫州市2022-2023學(xué)年四年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 【川教版】《生命 生態(tài) 安全》四上第13課《預(yù)防凍瘡》課件
- 工廠籌建方案
評(píng)論
0/150
提交評(píng)論