<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 高級調試動(dòng)態(tài)系統mC/Probe

高級調試動(dòng)態(tài)系統mC/Probe

作者:Micrium 公司總裁 Jean J.Labrosse 時(shí)間:2008-04-14 來(lái)源:電子產(chǎn)品世界 收藏

  前言

本文引用地址:http://dyxdggzs.com/article/81531.htm

  隨著(zhù)低成本的在線(xiàn)調試能力的增強,通過(guò)指令單步調試變得更容易,成本也比較低。這種方式可以查看和修改變量值,顯示寄存器的內容,查看內存塊,但通常只有在目標系統停止運行時(shí)使用。然而,很多實(shí)時(shí)系統是不能停止的。因此,在不設置斷點(diǎn)的情況下,如何查看系統正在做什么?如何在不妨礙和影響系統動(dòng)態(tài)性能的前提下,實(shí)時(shí)查看和監測系統的行為?

  當我們試圖測試實(shí)時(shí)系統的動(dòng)態(tài)行為時(shí),傳統的調試技術(shù)功能很快就變得有限了。自從第一片微處理器誕生以來(lái),用于監控和調試的工具基本上沒(méi)有發(fā)生什么變化。為了解決這個(gè)問(wèn)題,嵌入式工程師采用了諸如LED、測試端口、示波器、邏輯分析儀、仿真器、字符型LCD、圖形顯示等工具。事實(shí)上,上述的任何一種方式都可以從嵌入式系統中獲取一些正在運行的信息,每種方式都可以提供嵌入式硬件操作的觀(guān)察點(diǎn),用以揭露系統內部發(fā)生的神秘事情。但是,其中許多技術(shù)需要額外的硬件和軟件來(lái)記錄和查看目標系統發(fā)生的信息。

  下文首先簡(jiǎn)要評估在監控目標系統實(shí)時(shí)行為時(shí),嵌入式工程師常用的一些初級技術(shù),然后推薦一種便宜的、使用簡(jiǎn)單,但性能強大的新調試技術(shù)。
  
  常用的初級調試工具

  LED

  很多嵌入式系統都會(huì )包含一個(gè),在某些情況下會(huì )有多個(gè)發(fā)光二極管(LED)。LED被用來(lái)顯示各種各樣的動(dòng)態(tài)信息。它們可以指示嵌入式系統是否在運行,某個(gè)條件是否發(fā)生,系統是否發(fā)生了錯誤,已經(jīng)運行到了某個(gè)位置等等。

  LED是一種簡(jiǎn)單、有效且比較便宜的器件,但同時(shí)它們也有局限性。首先,它們增加了成本,除非將它們進(jìn)行組合,形成條形或其它更復雜的顯示方式,否則它們不能傳遞變量值。其次,LED顯示的數據量是有限的,并且顯示方式也不夠友好。必須承認,LED具有比較好的指示方式,顯示系統正在運行或一個(gè)特定的事件已經(jīng)發(fā)生,但在其它方面并不擅長(cháng)。

  使用printf()函數

  嵌入式工程師可以在代碼中使用printf()函數(假設采用C語(yǔ)言編程)設置斷點(diǎn)來(lái)獲得對象的動(dòng)態(tài)行為。在調試過(guò)程中,printf()函數可以到處移動(dòng)來(lái)顯示目標的應用,以便在系統開(kāi)發(fā)過(guò)程中獲取信息。不難想象,過(guò)度使用printf()函數將導致應用程序臃腫。通常printf()函數會(huì )放在主機的終端輸出窗口,由于這個(gè)原因,當連續獲取數據時(shí),工程師需要將各種數據流實(shí)時(shí)地重新分類(lèi)。這些數據流一般是由整數或浮點(diǎn)數據轉換得到的文本值,故迫使工程師讀取每個(gè)值時(shí),調整它的量級,理解它的重要性。大多數情況下,采用數據值曲線(xiàn)圖或許比文本值更恰當。

  由于printf()函數占用代碼量,在一些系統中,特別是在8位微控制器中,不能簡(jiǎn)單地應用這種方法。即使在代碼不受限制的情況下,printf()函數在格式化輸入時(shí)也會(huì )引起延時(shí)。當通過(guò)串口傳遞信息時(shí),產(chǎn)生的延時(shí)會(huì )更長(cháng),更不用說(shuō)增加了系統的負載。況且新的PC機不再包含串行接口RS-232C,因此這個(gè)技術(shù)幾乎要銷(xiāo)聲匿跡了。

  LCD字符顯示

  有一些嵌入式處理器使用額外的I/O口與字符型LCD。這種方式相對費用比較昂貴,且需要寫(xiě)代碼來(lái)顯示希望得到的狀態(tài)和變量值。這種設備可以顯示的變量數是有限的,需要一次或幾次完成所有的顯示。此外,還需要實(shí)現一個(gè)用戶(hù)接口來(lái)選擇查看變量值。很明顯,這種方式占用了嵌入式工程師開(kāi)發(fā)實(shí)際產(chǎn)品精力。取決于產(chǎn)品本身的成本或其它原因,顯示可能不會(huì )作為最終產(chǎn)品的一部分。

  圖形顯示

  那些擁有圖形顯示設備的嵌入式系統可以傳遞很多系統的實(shí)時(shí)信息,數值、圖、列表、柱狀圖等都很容易顯示出來(lái)。然而,這種顯示手段會(huì )導致系統成本的增加,如電子顯示設備和圖形用戶(hù)接口(GUI)軟件,以及創(chuàng )建接口傳遞信息所占用時(shí)間。盡管在開(kāi)發(fā)的初級階段,顯示設備可以被借用來(lái)幫助開(kāi)發(fā),事實(shí)上,很多嵌入式系統擁有的顯示設備,通常是將其作為用戶(hù)接口,而不是用于開(kāi)發(fā)。
  
  高級調試工具

  我們需要的是監測目標系統,而不必負擔額外的費用或增加設備的負載。有一種設備允許我們以圖形方式顯示從目標系統獲取的任何信息,它就是普遍存在的PC機。

  以上結論使得Micrium公司開(kāi)發(fā)了高級調試系統。這個(gè)概念很簡(jiǎn)單,我們可以把大部分的負擔轉移到運行Microsoft Windows的PC機上,而將盡量少的代碼放到目標系統中。

  是一個(gè)基于Microsoft Windows的應用程序,可以實(shí)時(shí)顯示產(chǎn)品中任何變量值、內存分配和I/O口值。通過(guò)邏輯圖、數據指示器、溫度計、柱狀圖、速度圖、餅圖、LED以及其他方式來(lái)顯示變量值。而不需要在嵌入式產(chǎn)品中寫(xiě)入任何代碼,不使用printf()函數,也不必在產(chǎn)品中增加用戶(hù)接口。Micrium公司以源代碼的方式提供了一個(gè)小且簡(jiǎn)單的stub(占位程序),在創(chuàng )建目標應用時(shí)需要PC機端的stub,使用通用的UART、USB、TCP/IP、JTAG接口或其它目標系統接口。在開(kāi)發(fā)產(chǎn)品的過(guò)程中,一旦stub與產(chǎn)品一起編譯連接,即可開(kāi)始查看嵌入式系統的實(shí)時(shí)行為。

  mC/Probe可以用于任何編譯器和處理器(8、16、32位CPU或DSP)。事實(shí)上,任何工具鏈(編譯器、匯編器、連接器)都適用。如果系統中有RTOS,亦可以與RTOS結合使用。

  mC/Probe工作流程如下:Windows應用程序分析由工具鏈的連接器產(chǎn)生的文件,確定目標板上每個(gè)全局變量的名稱(chēng)、類(lèi)型和地址,并在符號瀏覽器中列出所有的變量。然后用戶(hù)將圖形組件(虛擬對象)拖拽到數據屏幕中的一個(gè)畫(huà)面,并為每個(gè)對象指定符號瀏覽器中的一個(gè)變量。在目標系統接口允許的情況下,放在開(kāi)放數據屏幕中的圖形組件關(guān)聯(lián)符號值將很快獲得更新。如果工程師需要修改目標代碼,則連接器將改變變量的地址,mC/Probe重新加載新的連接文件,調整數據屏幕中所有圖形組件的信息。

  事實(shí)上,目標系統只需要很少的代碼,就足夠響應如“發(fā)送0x40102030地址開(kāi)始的12個(gè)字節”這樣的要求。Windows應用程序在收到應答后,根據新的值更新數據屏幕中相關(guān)的組件。因為代碼位于RTOS的空閑任務(wù)中,在與RTOS一起使用時(shí),目標駐留代碼通常不會(huì )插入。換句話(huà)說(shuō),因為在空閑任務(wù)中CPU不執行任何操作,它不占用應用程序的CPU周期。如果工程師希望僅僅更新某一段代碼中的變量值,他可以將目標駐留代碼放在那個(gè)位置上。結果是,與Windows應用程序通信所占用的時(shí)鐘周期的百分比,可以通過(guò)簡(jiǎn)單地修改目標系統中調用駐留代碼的頻率(和調用的位置)來(lái)滿(mǎn)足用戶(hù)的需求。

  采用mC/Probe可以顯示溫度、壓強、濕度、過(guò)程變量、狀態(tài)變量、定時(shí)器、計算結果、邏輯I/O、最大/最小值、執行時(shí)間、堆棧使用、I/O寄存器、I/O口、列表、數組、繪圖變量隨時(shí)間的變化等等。也可以顯示布爾型、整數、浮點(diǎn)數據和字符串。

  mC/Probe允許創(chuàng )建多個(gè)數據屏幕,通過(guò)邏輯分組來(lái)顯示變量,查看目標的行為。如果設計一個(gè)發(fā)動(dòng)機控制器,可以通過(guò)創(chuàng )建一個(gè)數據屏幕來(lái)顯示控制器的實(shí)時(shí)數據,例如:制動(dòng)位置、電流和每分鐘最大轉數、氣缸溫度、發(fā)動(dòng)機運行時(shí)間、發(fā)動(dòng)機油壓和溫度、空氣壓強和溫度、停止時(shí)間、燃料數量等等。

  mC/Probe提供了完整的圖形對象,包括模擬LED、標簽、標準尺、圖、列表,增強了控制的靈活性。

  標簽用于顯示變量值或者內容,如ASCII 字符串,但作為數字量則代表了一個(gè)整數或浮點(diǎn)數,或者用于簡(jiǎn)單地顯示一個(gè)可配置長(cháng)度的字符串。標準尺使用模擬尺或者儀表方式來(lái)顯示數據。圖形通過(guò)線(xiàn)圖和柱狀圖來(lái)顯示數據。列表是最靈活的,并且有一個(gè)電子數據表接口,允許包含其它數據單元的數據,或者目標系統中變量值的計算公式。極大增強了列表的擴展性和靈活性。以枚舉類(lèi)型為例,可以從整數值轉換為邏輯字符串的形式表示,因為比數值更有意義。
  
  應用級的調試

  對于應用級別的調試來(lái)講,高級調試工具,例如mC/Probe比初級的工具更合適。由實(shí)現相關(guān)功能的幾個(gè)任務(wù)組成的嵌入式系統,不適合采用斷點(diǎn)和LED的方式來(lái)調試。通過(guò)使用mC/Probe窗口接口,可以在一個(gè)觀(guān)察點(diǎn)獲取更廣泛的信息,更適合應用級的調試工作。為某一個(gè)特定的模塊,如RTOS、TCP/IP、USB協(xié)議等開(kāi)發(fā)的數據屏幕,可以用于這些模塊的任何嵌入式系統。與模塊相對應的數據屏幕可以用于新的工作屏幕,與圖形相關(guān)聯(lián)的變量將被重新連接,這意味著(zhù)變量地址將從新目標上運行的代碼連接輸出文件中自動(dòng)獲取。

  認為“高級調試工具在對有問(wèn)題的底層代碼函數調試時(shí)缺乏洞察力”的評論也是正確的。對這種任務(wù)調試來(lái)說(shuō),斷點(diǎn)和LED是不可替代的。應該指出,mC/Probe可以作為在所有產(chǎn)品的初期開(kāi)發(fā)階段使用的工具,對于高級特性的系統缺陷,如任務(wù)的性能、堆棧使用、或緩存使用等,在早期就提供一些警告信息。



關(guān)鍵詞: 動(dòng)態(tài)系統 mC/Probe

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>