電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>你的單片機(jī)程序怎么調(diào)試?我教你用Keil uVision2軟件如何調(diào)試資料下載

你的單片機(jī)程序怎么調(diào)試?我教你用Keil uVision2軟件如何調(diào)試資料下載

2021-04-16 | pdf | 114.28KB | 次下載 | 3積分

資料介紹

先說一個(gè)概念:調(diào)試,在企業(yè)程序設(shè)計(jì)里(我把企業(yè)商務(wù)類型的軟件開發(fā)叫企業(yè)程序設(shè)計(jì),把單片機(jī)與驅(qū)動(dòng)程序這樣接觸底層匯編硬件相關(guān)的程序設(shè)計(jì)叫底層程序設(shè)計(jì)),調(diào)試一般都用來跟蹤變量的賦值過程,以及查看內(nèi)存堆棧的內(nèi)容,查看這些內(nèi)容的目的在于觀察變量的賦值過程與賦值情況從而達(dá)到調(diào)試的目的。由于企業(yè)程序的宿主就是開發(fā)它的計(jì)算機(jī)本身,因此企業(yè)程序設(shè)計(jì)比起底層程序設(shè)計(jì),特別是單片機(jī)的程序設(shè)計(jì)調(diào)試來的更直觀,調(diào)試也更方便。 單片機(jī)的程序設(shè)計(jì)調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,意思就是用開發(fā)單片機(jī)程序的計(jì)算機(jī)去模擬單片機(jī)的指令執(zhí)行,并虛擬單片機(jī)片內(nèi)資源,從而實(shí)現(xiàn)調(diào)試的目的,但是軟件調(diào)試存在一些問題,如計(jì)算機(jī)本身是多任務(wù)系統(tǒng),劃分執(zhí)行時(shí)間片是由操作系統(tǒng)本身完成的,無法得到控制,這樣就無法時(shí)時(shí)的模擬單片機(jī)的執(zhí)行時(shí)序,也就是說 ,不可能像真正的單片機(jī)運(yùn)行環(huán)境那樣執(zhí)行的指令在同樣一個(gè)時(shí)間能完成(往往要完成的比單片機(jī)慢)。為了解決軟件調(diào)試的問題,第二種是硬件調(diào)試,硬件調(diào)試其實(shí)也需要計(jì)算機(jī)軟件的配合,大致過程是這樣的:計(jì)算機(jī)軟件把編譯好的程序通過串行口、并行口或者USB口傳輸?shù)接布{(diào)試設(shè)備中(這個(gè)設(shè)備叫仿真器),仿真器仿真全部的單片機(jī)資源(所有的單片機(jī)接口,并且有真實(shí)的引腳輸出),仿真器可以接入實(shí)際的電路中,然后與單片機(jī)一樣執(zhí)行。同時(shí),仿真器也會(huì)返回單片機(jī)內(nèi)部?jī)?nèi)存與時(shí)序等情況給計(jì)算機(jī)的輔助軟件,這樣 就可以在軟件里看到真實(shí)的執(zhí)行情況。不僅如此,還可以通過計(jì)算機(jī)斷的軟件實(shí)現(xiàn)單步、全速、運(yùn)行到光標(biāo)的常規(guī)調(diào)試手段。 圖1:仿真器 總結(jié)一下兩者的不同與相同: 相同點(diǎn): 1:都可以檢測(cè)單片機(jī)執(zhí)行時(shí)序下的片內(nèi)資源情況(如R0-R7 、PC計(jì)數(shù)器等) 2:可以實(shí)現(xiàn)斷點(diǎn)、全速、單步、運(yùn)行到光標(biāo)等常規(guī)調(diào)試手段。 不同: 1:軟件調(diào)試無法實(shí)現(xiàn)直接連接硬件電路的調(diào)試,只能通過軟件窗口虛擬硬件端口的電平輸出情況而仿真器可以實(shí)現(xiàn)與單片機(jī)一樣的功能的硬件連接,從某種意義上說這個(gè)時(shí)候仿真器就是一個(gè)單片機(jī)。 2:軟件調(diào)試執(zhí)行單片機(jī)指令的時(shí)間無法與真實(shí)的單片機(jī)執(zhí)行時(shí)間畫上等號(hào),也就是說如果一個(gè)程序在單片機(jī)中要執(zhí)行300us,可能在計(jì)算機(jī)中執(zhí)行的時(shí)間可能會(huì)比這個(gè)長(zhǎng)很多,而且無法預(yù)料。仿真器則是完全與單片機(jī)相同。 3:軟件調(diào)試只能是一種初步的,小型工程的調(diào)試,比如一個(gè)只有幾百上千行的代碼的程序,軟件調(diào)試能很好的完成,如果是一個(gè)協(xié)調(diào)系統(tǒng),可能還需要借助幾個(gè)單片機(jī)仿真器和相關(guān)的儀器才能解決。 4:軟件仿真不需要額外花錢,而硬件需要,一個(gè)仿真器一般都上千元,同時(shí)可以仿真許多種單片機(jī)的工作。 最后,調(diào)試一般都是在發(fā)生錯(cuò)誤與意外的情況下使用的,如果程序能正常執(zhí)行調(diào)試很多時(shí)候是用不上的,所以最高效率的程序開發(fā)還是程序員自己做好規(guī)范,而不是指望調(diào)試來解決問題。 下面將具體介紹如何使用Keil uVision 來軟件調(diào)試單片機(jī)程序。 首先:打開一個(gè)已經(jīng)編譯通過的單片機(jī)項(xiàng)目(如何新建與編譯單片機(jī)程序項(xiàng)目這里省略) 選擇Debug下面的Start/Stop Debug Session,這個(gè)選項(xiàng)可以打開調(diào)試也可以關(guān)閉調(diào)試 接下來看到的窗口就是調(diào)試窗口了: 下面具體說說相關(guān)子窗口的功能: 1:左側(cè)的ProjectWorkspace Regs是片內(nèi)內(nèi)存的相關(guān)情況值,Sys是系統(tǒng)一些累加器、計(jì)數(shù)器等。Regs很簡(jiǎn)單就不多說。具體介紹一下Sys a 累加器ACC,往往在運(yùn)算前暫存一個(gè)操作數(shù)(如被加數(shù)),而運(yùn)算后又保存其結(jié)果(如代數(shù)和)。 b 寄存器B ,主要用于乘法和除法操作 sp sp_max dptr 數(shù)據(jù)指針DPTR PC $ states 執(zhí)行指令的數(shù)量 sec 執(zhí)行指令的時(shí)間累計(jì)(單位 秒) psw 程序狀態(tài)標(biāo)志寄存器PSW,八位寄存器,用來存放運(yùn)算結(jié)果的一些特征,如有無進(jìn)位、借位等。 p 奇偶標(biāo)志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運(yùn)算結(jié)果有偶數(shù)個(gè)1(如11001100B,其中有4個(gè)1),則P為0,否則,P=1。 f1 ov 溢出標(biāo)志位OV。MCS-51反映帶符號(hào)數(shù)的運(yùn)算結(jié)果是否有溢出,有溢出時(shí),此位為1,否則為0。 rs f0 ac 輔助進(jìn)位標(biāo)志AC。又稱半進(jìn)位標(biāo)志,它反映了兩個(gè)八位數(shù)運(yùn)算低四位是否有半進(jìn)位,即低四位相加(或減)有否進(jìn)位(或借位),如有則AC為1狀態(tài),否則為0。 cy 進(jìn)位標(biāo)志CY(PSW7)。它表示了運(yùn)算是否有進(jìn)位(或借位)。如果操作結(jié)果在最高位有進(jìn)位(加法)或者借位(減法),則該位為1,否則為0 由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字?運(yùn)算器中還有一個(gè)按位(bit)進(jìn)行邏輯運(yùn)算的邏輯處理機(jī)(又稱布爾處理機(jī)) 根據(jù)指令執(zhí)行的不同上述值會(huì)有相應(yīng)的變化,也正是為了監(jiān)測(cè)這些在單片機(jī)中看不到的值而達(dá)到調(diào)試的目的。 雖然軟件調(diào)試無法實(shí)現(xiàn)硬件調(diào)試那樣的信號(hào)輸出,但是可以通過軟件窗口的模擬監(jiān)測(cè)輸出信號(hào)的高低電平以及單片機(jī)相關(guān)端口的變化。 上圖所示,Port0,Port1,Port2,Port3就對(duì)應(yīng)于單片機(jī)的四個(gè)P0,P1,P2,P3 口,共32個(gè)針腳。 這是全部打開后的效果。 有了輸出,就應(yīng)該有輸入的設(shè)置: 這個(gè)按鈕可以打開輸入預(yù)設(shè)窗口,輸入值窗口如下:
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1FS4059B帶NTC升壓型兩節(jié)鋰電池充電管理IC數(shù)據(jù)手冊(cè)
  2. 3.24 MB   |  1次下載  |  免費(fèi)
  3. 2基于波形捕獲的超聲波傳感水流量計(jì)量技術(shù)應(yīng)用說明
  4. 1.01MB   |  1次下載  |  免費(fèi)
  5. 3ADE-12H混頻器規(guī)格書
  6. 0.28 MB   |  1次下載  |  5 積分
  7. 4AD9984A高性能10位顯示接口英文手冊(cè)
  8. 0.49 MB   |  1次下載  |  5 積分
  9. 551開發(fā)板芯片資料
  10. 14.95 MB   |  1次下載  |  1 積分
  11. 6用TL431LI-Q1監(jiān)控電流供應(yīng)
  12. 176.71KB   |  1次下載  |  免費(fèi)
  13. 7Q1和非Q1器件的TPS54340/360/540/560和TPS54340B/360B/540B/560B之間的差異
  14. 123.6KB   |  次下載  |  免費(fèi)
  15. 8TPS512xx MOSFET驅(qū)動(dòng)電路設(shè)計(jì)指南
  16. 886.86KB   |  次下載  |  免費(fèi)

本月

  1. 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
  2. 24.30 MB   |  129次下載  |  1 積分
  3. 2繼電保護(hù)原理
  4. 2.80 MB   |  42次下載  |  免費(fèi)
  5. 3正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
  6. 0.91 MB   |  36次下載  |  1 積分
  7. 4GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
  8. 7.43 MB   |  18次下載  |  免費(fèi)
  9. 5在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
  10. 1.57MB   |  15次下載  |  免費(fèi)
  11. 6AD18學(xué)習(xí)筆記
  12. 14.47 MB   |  8次下載  |  2 積分
  13. 7H橋中的電流感測(cè)
  14. 545.39KB   |  7次下載  |  免費(fèi)
  15. 8幾張電動(dòng)車充電器電路圖
  16. 0.23 MB   |  6次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935113次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191360次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81578次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73804次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分