專利名稱:用于與存儲器裝置一起使用的軟件斷點的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微控制器和存儲器裝置,且更特定來說涉及在存儲器裝置中使用軟件斷 點來中斷微控制器上的程序執(zhí)行。
背景技術(shù):
微處理器和其它微控制器的開發(fā)人員具有一種廣泛的方法來測試他們所開發(fā)的微控 制器應(yīng)用程序。此方法的關(guān)鍵部分在于通過執(zhí)行程序指令以及使用調(diào)試程序來測試微控 制器例行程序。在調(diào)試或其它時候,通常會由于各種原因而需要中斷正運行的程序。舉例來說,在 調(diào)試過程中,開發(fā)人員可能需要停止程序來確定中途已通過程序的執(zhí)行而分配給變量或 存儲器位置的值?;蛘?,可能發(fā)生要求程序停止執(zhí)行的事件,隨后程序?qū)⒂谄渫V固幚^ 續(xù)。在系統(tǒng)運行期間執(zhí)行代碼的調(diào)試操作可由調(diào)試代理(程序)來進行,此調(diào)試代理通 過微處理器和其端口 (例如,聯(lián)合測試行動小組(JTAG)端口)而提供訪問。使程序執(zhí)行中斷的一種方法是通過使用斷點。軟件斷點是基于程序執(zhí)行期間由微處 理器處理的指令來執(zhí)行的。軟件斷點依賴存儲于由微處理器訪問的存儲器中的斷點指令 或"斷點模式"。當(dāng)微處理器讀取并辨識出來自存儲器的斷點模式時,微處理器便被迫進 入調(diào)試狀態(tài)。斷點模式可存儲在存儲器中的特定存儲器位置上,使得在程序促使此位置 的模式待執(zhí)行時,產(chǎn)生斷點??梢詷O少的額外成本或組件來實施大量的軟件斷點,因為 它們僅需要有限的額外邏輯。為了在特定的存儲器地址處設(shè)定軟件斷點,調(diào)試代理(或提供斷點的其它程序)指 示微處理器用斷點模式替換存儲器中的指定斷點地址處的原始指令。被替換的原始指令 存儲于其它存儲器中。在程序執(zhí)行期間,當(dāng)微處理器到達斷點地址時,獲取并執(zhí)行斷點 模式,從而迫使微處理器進入調(diào)試狀態(tài)。在調(diào)試狀態(tài)下,調(diào)試代理可指示微處理器返回 到非調(diào)試模式。將原始指令恢復(fù)到斷點存儲地址并加以執(zhí)行(在一些實施例中,斷點模 式隨后可再次替換此斷點地址處的原始指令),且微處理器返回到剩余程序指令的正常執(zhí) 行。每一調(diào)試代理通過與微處理器的連接(例如JTAG端口)而充當(dāng)存儲器監(jiān)視器,使 得每設(shè)定一個軟件斷點,便在存儲器中用斷點模式來替換指令。每當(dāng)斷點結(jié)束或被移除時,便在存儲器中用原始指令替換斷點指令。因此,設(shè)定軟件斷點要求所有系統(tǒng)存儲器 均為可寫的。軟件斷點通常不用于某些類型的存儲器中(例如,許多類型的非易失性存儲器),因 為為了設(shè)定軟件斷點,必須將斷點模式寫入存儲器中,而在使用簡單的微處理器寫入訪 問時大多數(shù)非易失性存儲器無法被寫入。標(biāo)準(zhǔn)的ROM是不合適的,因為在操作中無法寫 入數(shù)據(jù)。例如快閃存儲器的其它類型非易失性存儲器通常使用軟件斷點,因為用于代碼 存儲的典型的大尺寸非易失性存儲器無法采用與靜態(tài)隨機訪問存儲器(SRAM)相同的 簡單方式進行寫入。此外,快閃存儲器在其損壞之前僅具有相對較小量的容許擦除循環(huán), 且因此其非常不適合使用軟件斷點。因此,在將芯片上系統(tǒng)嵌入非易失性存儲器中時此等系統(tǒng)的調(diào)試極難進行,因為通 過調(diào)試代理來設(shè)定軟件斷點是不可能的或并非易于完成的。已提出某些解決方案。例如, 可跟蹤關(guān)于電路輸出的內(nèi)部總線行為以確定程序何時不執(zhí)行其被期望執(zhí)行的動作,但此 需要許多可用的電路輸出;用于此特征的額外引腳數(shù)將增加電路成本??蓤?zhí)行專用于對 芯片上的目標(biāo)存儲器執(zhí)行訪問的減少的跡線然而,封裝的引線數(shù)仍需增加。此等及其 它所提議的解決方案實施起來較為昂貴,尤其是在用于斷點和調(diào)試目的時。因此,需要一種在具有用簡單的微處理器寫入訪問不可寫入的存儲器裝置的系統(tǒng)中, 用于設(shè)定和執(zhí)行軟件斷點的方法和系統(tǒng),且其中所述解決方案可以簡單并低廉的方式來 實施。本發(fā)明解決了這一需要。 發(fā)明內(nèi)容本申請案的發(fā)明涉及提供用于與存儲器裝置一起使用的軟件斷點。本發(fā)明的一方面, 一種用于提供存儲器的軟件斷點的系統(tǒng)包括微處理器、可通過耦合到微處理器的數(shù)據(jù) 總線和地址總線進行訪問的存儲器裝置,和耦合到存儲器裝置及微處理器的處理邏輯, 所述處理邏輯可操作以通過用斷點模式替代待從存儲器裝置讀取的值來設(shè)定用于存儲器 裝置的軟件斷點,其中代替所述值的所述斷點模式在數(shù)據(jù)總線上被發(fā)送到微處理器。在本發(fā)明的另一方面中, 一種用于提供用于與存儲器裝置一起使用的軟件斷點的方 法包括在存儲器裝置的讀取訪問中從微處理器接收一個地址值,且用斷點模式替代存 儲于所述存儲器裝置中的數(shù)據(jù)值并將斷點模式提供到微處理器。在本發(fā)明的另一方面中, 一種用于提供用于存儲器裝置的軟件斷點的方法包括在 從微處理器到存儲器裝置的寫入訪問中接收地址和數(shù)據(jù);如果數(shù)據(jù)與斷點模式匹配,那 么將地址存儲到斷點管理單元中的斷點高速緩沖存儲器中;且如果數(shù)據(jù)與斷點模式不匹配,那么清除斷點管理單元的斷點高速緩沖存儲器中所存儲的地址。
本發(fā)明提供允許由無法以簡單的微處理器寫入訪問寫入數(shù)據(jù)的存儲器裝置(例如, 大多數(shù)非易失性存儲器裝置)使用軟件斷點的架構(gòu)。本發(fā)明允許在使用最小數(shù)量的額外 邏輯和寄存器的情況下向多個這樣的存儲器裝置提供軟件斷點,因此顯著減小系統(tǒng)成本。
圖1是說明包括微處理器和存儲器裝置的現(xiàn)有技術(shù)系統(tǒng)的方框圖; 圖2是說明向非易失性存儲器裝置提供軟件斷點的本發(fā)明系統(tǒng)的方框圖; 圖3是說明圖2的軟件斷點管理單元中所使用的用于清除和存儲軟件斷點的邏輯的 實例的示意圖4是說明圖2的軟件斷點管理單元中所使用的用于提供軟件斷點的邏輯的實例的 示意圖5是說明用于在非易失性存儲器中設(shè)定和清除軟件斷點的本發(fā)明方法的流程和
圖6是說明用于在非易失性存儲器中讀取軟件斷點的本發(fā)明方法的流程圖。
具體實施例方式
本發(fā)明涉及存儲器使用的用以中斷微控制器上的程序執(zhí)行的軟件斷點。提供以下說 明內(nèi)容以使得所屬領(lǐng)域的技術(shù)人員能作出和使用本發(fā)明,且是結(jié)合專利申請和其要求而 提供的。對優(yōu)選實施例的各種修改以及本文所描述的一般性原理和特征易于為所屬領(lǐng)域 的技術(shù)人員所了解。因此,本發(fā)明不期望受限于所示實施例,而是符合與本文所描述的 原理和特征相一致的最廣泛范疇。
本發(fā)明主要依據(jù)特定實施方案中所提供的特定系統(tǒng)加以描述。然而,所屬領(lǐng)域的技 術(shù)人員易于認(rèn)識到,此方法和系統(tǒng)將在其它實施方案中有效地操作。本發(fā)明也將結(jié)合具 有某些步驟的特定方法加以描述。然而,此方法及系統(tǒng)也可有效用于具有與本發(fā)明不一 致的不同和/或額外步驟的其它方法。
為了更加具體地描述本發(fā)明的特征,請結(jié)合以下論述參見圖1到圖6。
圖1是包括微處理器和芯片上存儲器裝置的現(xiàn)有技術(shù)系統(tǒng)10的方框圖。系統(tǒng)10包 括微處理器12、隨機訪問存儲器(RAM)裝置14、非易失性存儲器(NVM)裝置16、 系統(tǒng)地址解碼器18,和逐位數(shù)據(jù)多路復(fù)用器20。
微處理器12在執(zhí)行對從屬裝置(例如,存儲器裝置14和16)的讀取和寫入訪問時 產(chǎn)生控制信號。RAM裝置14能夠存儲稍后可被覆寫或擦除的數(shù)據(jù)。NVM裝置16存儲數(shù)據(jù),但無法以常規(guī)方法存儲軟件斷點模式,因為該模式無法采用簡單的微處理器寫入 訪問寫入到存儲器中。例如,非易失性存儲器裝置(例如,ROM(只讀存儲器)、EPROM (電可擦除只讀存儲器)和快閃存儲器)至少因為此原因而不適合使用軟件斷點模式。
微處理器12控制信號包括讀取/寫入控制信號30、訪問大小控制總線32、地址總線 34和寫入數(shù)據(jù)總線36。讀取/寫入控制信號30選擇對存儲器裝置14或16的讀取或?qū)懭?操作。地址總線34耦合到系統(tǒng)地址解碼器18;訪問大小控制總線32也可在將管理地址 未對準(zhǔn)的情況下耦合到解碼器18。系統(tǒng)地址解碼器18對每一從屬裝置產(chǎn)生從屬選擇信 號,以指示從屬裝置執(zhí)行由主控器(微控制器12)請求的傳遞,例如讀取或?qū)懭氩僮鳌?從屬選擇信號38被發(fā)送到RAM裝置14,且從屬選擇信號40被發(fā)送到ROM裝置16。 寫入數(shù)據(jù)總線36將微處理器12耦合到存儲器裝置14和16并提供來自微處理器12的待 寫入RAM裝置14中的數(shù)據(jù)。
為了進行讀取訪問,存儲器裝置14和16的輸出總線42和44耦合到逐位數(shù)據(jù)多路 復(fù)用器20,逐位數(shù)據(jù)多路復(fù)用器20多路復(fù)用輸出總線42和44并在返回耦合到微處理 器12的讀取數(shù)據(jù)總線46上提供輸出數(shù)據(jù)。
現(xiàn)有技術(shù)系統(tǒng)10可提供用于RAM裝置14的軟件斷點,但難以結(jié)合NVM裝置16 或其它非易失性存儲器裝置來使用軟件斷點,且因此在調(diào)試和測試環(huán)境方面具有明顯的
限制性。
圖2是提供用于包括易失性和非易失性存儲器裝置的系統(tǒng)的軟件斷點的本發(fā)明系統(tǒng) 100的一個實施例的方框圖。系統(tǒng)IOO包括微處理器102、 RAM裝置104、非易失性存儲 器(NVM)裝置106、系統(tǒng)地址解碼器108、軟件斷點管理單元(SBMU) 110和逐位數(shù) 據(jù)多路復(fù)用器112。
微處理器102在執(zhí)行對從屬裝置(例如,存儲器裝置104和106)的讀取或?qū)懭朐L 問時產(chǎn)生控制信號。在所描述的實施例中,微處理器102包括在與系統(tǒng)IOO的其它組件 相同的芯片上或集成電路上。在其它實施例中,微處理器102可獨立于其它組件而提供。 微處理器102可以是任何類型的合適的微控制器。
RAM裝置104能夠存儲稍后可被覆寫或擦除的數(shù)據(jù),且因此易于存儲來自通常在外 部運行且通過微處理器102來操作的調(diào)試代理的標(biāo)準(zhǔn)軟件斷點。RAM裝置104可以是各 種可編程存儲器裝置中的任一種,通常是易失性存儲器,例如靜態(tài)隨機訪問存儲器 (SRAM)。
NVM裝置106是存儲可由微處理器102讀取的數(shù)據(jù)的非易失性存儲器裝置。然而,難以通過簡單的微處理器寫入訪問來寫入或改變數(shù)據(jù)。本文所使用的術(shù)語"非易失性存 儲器裝置"是指標(biāo)準(zhǔn)的只讀存儲器(其僅可編程一次)、電可編程只讀存儲器(EPROM)、 電可擦除只讀存儲器(EEPROM)和快閃存儲器,以及任何其它類似類型的非易失性存 儲器。所有這些提到類型的存儲器難以與軟件斷點一起使用,因為其在編程方面不具有 易失性存儲器(例如RAM104)所具有的通用性,且無法采用簡單的微處理器寫入訪問 將數(shù)據(jù)寫入到其中。微處理器102產(chǎn)生的控制信號包括讀取/寫入控制信號120、訪問大小控制總線122、 地址總線124,和寫入數(shù)據(jù)總線126。讀取/寫入控制信號120選擇讀取或?qū)懭氩僮饕詥?用對存儲器裝置104或106的操作。地址總線124耦合到系統(tǒng)地址解碼器108以將存儲 器裝置104或106中的地址提供到解碼器108。訪問大小控制總線122也可在將管理地 址未對準(zhǔn)的情況下耦合到解碼器108。系統(tǒng)地址解碼器108對從屬裝置產(chǎn)生從屬選擇信 號,以指示適當(dāng)?shù)膹膶傺b置執(zhí)行由主控器(微控制器102)請求的傳遞,例如讀取或?qū)?入操作。從屬選擇信號128被提供到RAM裝置104,且預(yù)期用于NVM裝置106的從屬 選擇信號130被提供到軟件斷點管理單元(SBMU) 110。寫入數(shù)據(jù)總線126將微處理器102耦合到存儲器裝置104和106和SBMU 110,并 提供來自微處理器的待在由地址總線124上的地址值所指定的位置處寫入存儲器裝置 104或106中的數(shù)據(jù)(例如,如果存儲器裝置是EEPROM或快閃存儲器,那么可將寫入 數(shù)據(jù)總線用于NVM裝置106)。可通過通常在調(diào)試應(yīng)用程序時使用的調(diào)試代理在寫入數(shù) 據(jù)總線126上發(fā)送軟件斷點模式。調(diào)試代理也可以在寫入總線126上發(fā)送曾被斷點模式 替換的原始指令以替換斷點模式。在正常操作中,當(dāng)微處理器102正在運行檢索并執(zhí)行 存儲于存儲器104或106中的指令并檢索到斷點模式時,發(fā)生異常,使得程序的執(zhí)行中 斷,且由異常處理程序即時控制處理器,向調(diào)試程序提供信息等。SBMU IIO管理針對NVM裝置106而設(shè)定的軟件斷點。通過使用用于NVM裝置106 的新的從屬選擇信號140來替換進入的從屬選擇信號130,使SBMU 110過濾用于NVM 裝置106的進入的從屬選擇信號130。選擇信號140被發(fā)送到NVM裝置106以在微處理 器的讀取訪問不對應(yīng)于斷點時(即,當(dāng)讀取訪問處于并非為斷點地址的地址時)執(zhí)行正 常的讀取操作。當(dāng)讀取訪問處于斷點地址時,SBMU110不提供選擇信號140,而是通過 SBMU輸出數(shù)據(jù)總線142替代斷點模式。因此,通過在指令獲取對應(yīng)于斷點時過濾NVM 選擇信號140, SBMU 110繞過由NVM輸出總線134提供的來自NVM裝置106的響應(yīng)。為了對NVM裝置106進行寫入訪問,SBMU IIO檢測并檢查寫入操作。如果SBMU110檢測到斷點模式的寫入,那么將相關(guān)地址存儲到地址高速緩沖存儲器中作為斷點地 址,因此有效地存儲用于NVM裝置106的軟件斷點。如果SBMU 110檢測到待恢復(fù)的 原始指令(非斷點模式的數(shù)據(jù))的寫入,那么釋放(清除)相關(guān)的斷點地址高速緩沖存 儲器。下文將關(guān)于圖3-圖6更加詳細(xì)地描述此操作。RAM裝置104的輸出總線132、 NVM裝置106的輸出總線134和SBMU 110的輸 出總線142耦合到逐位數(shù)據(jù)多路復(fù)用器112,逐位數(shù)據(jù)多路復(fù)用器112多路復(fù)用輸出總線 132、 134和140,并通過讀取數(shù)據(jù)總線136將這些總線上的數(shù)據(jù)提供給微處理器102。 多路復(fù)用器112也接收存儲器選擇信號128和140,以及SBMU選擇信號143, SBMU 選擇信號143通知多路復(fù)用器是經(jīng)由讀取數(shù)據(jù)總線136發(fā)送SBMU數(shù)據(jù)總線142上的數(shù) 據(jù)(即,在進行對斷點地址的讀取訪問時),還是發(fā)送NVM輸出總線134上的數(shù)據(jù)。應(yīng)注意,額外的非易失性存儲器裝置可耦合到軟件斷點管理單元(SBMU) 110,其 中SBMU可向任何及所有所連接的非易失性存儲器提供軟件斷點。系統(tǒng)地址解碼器108 可向SBMU 110發(fā)送額外的選擇信號以用于所使用的每一額外的非易失性存儲器裝置, 且SBMU 110可在適當(dāng)時向額外的非易失性存儲器裝置發(fā)送相應(yīng)的選擇信號。例如,可 將用于第二非易失性存儲器裝置的解碼器選擇信號131從系統(tǒng)地址解碼器108發(fā)送到 SBMU 110,且SBMU 110可發(fā)出選擇信號141至第二非易失性存儲器裝置(未圖示)。 使例如SMBU 110的單個單元控制用于多個非易失性存儲器裝置的軟件斷點是本發(fā)明的 一個主要優(yōu)點,因為無需針對每一額外的非易失性存儲器裝置對SBMU的處理邏輯或高 速緩沖存儲器進行復(fù)制,從而極大地減少了所需的邏輯和寄存器,以及系統(tǒng)成本。圖3是包括于圖2的軟件斷點管理單元(SBMU) 110中的存儲和清除斷點的電路 200的示意圖。在調(diào)試代理希望將軟件斷點存儲于NVM裝置106中,或在調(diào)試代理希望 在NVM裝置106中的存儲軟件斷點的存儲器位置處恢復(fù)原始指令時使用此電路200。SBMU 110允許使用SBMU中的N組專用寄存器來存儲(設(shè)定)N個軟件斷點。在 以下說明描述內(nèi)容中,所存儲或清除的軟件斷點標(biāo)記為I,且一個或一個以上其它軟件斷 點被標(biāo)記為J,其中I和J是在O到(N-l)斷點范圍內(nèi)的索引。軟件斷點模式存儲于斷點模式寄存器202中。在所描述的實施例中,此相同的斷點 模式用作用于NVM裝置106的所有所存儲的斷點的模式。在代碼的常規(guī)執(zhí)行期間由微 處理器上的軟件辨析出此模式后,此模式促使在程序執(zhí)行中產(chǎn)生中斷以用于調(diào)試目的。斷點模式從寄存器202經(jīng)由總線204 (總線204等效于圖2中的輸出總線142)發(fā)送 到比較器206,比較器206將斷點模式和在輸入寫入數(shù)據(jù)總線126上接收到的數(shù)據(jù)進行比較。寫入數(shù)據(jù)總線126上的數(shù)據(jù)是運行于微處理器102上的調(diào)試程序希望寫入NVM裝 置106中的數(shù)據(jù)。如果寫入總線126上數(shù)據(jù)是斷點模式,那么這是存儲操作,其中調(diào)試 程序希望將斷點存儲在指定地址。如果數(shù)據(jù)是非斷點模式的其它數(shù)據(jù),那么假定是清除 操作,其中調(diào)試程序希望恢復(fù)存儲在斷點的存儲地址處的原始數(shù)據(jù)。比較器206將斷點模式和數(shù)據(jù)進行比較,并產(chǎn)生比較旗標(biāo)208,比較旗標(biāo)208指示 輸入到比較器的兩個輸入是相等(高電平)還是不相等(低電平)。如果比較器的兩個輸 入的數(shù)據(jù)相等,那么寫入數(shù)據(jù)總線126上的數(shù)據(jù)和軟件斷點模式匹配。由系統(tǒng)地址解碼器108提供非易失性存儲器輸入選擇信號130和131,其中信號130 是用于NVM裝置106的選擇信號且信號131是用于不同的非易失性存儲器裝置(如果 存在的話)的選擇信號。這些信號可選擇微處理器希望從包括NVM裝置106的多個非 易失性存儲器中的哪一者讀取數(shù)據(jù)。如果使用額外的非易失性存儲器裝置,那么每一額 外的存儲器裝置可使其自身的信號類似于信號130和131。選擇信號130和131 (以及任 何其它的選擇信號)以邏輯方式組合于"或"門212處以產(chǎn)生全局選擇信號214,以指 示己選擇非易失性存儲器裝置。比較旗標(biāo)208、讀取/寫入控制信號120 (具有寫入命令 或反相的讀取命令,且來自如圖2所示的微處理器102)和全局選擇信號214被輸入到 "與"門216,"與"門216產(chǎn)生存儲斷點命令218。存儲斷點命令如果為"真",那么指 示調(diào)試程序?qū)VM裝置106的寫入訪問是存儲斷點操作,且指示總線126上的當(dāng)前寫 入訪問的特征必須被存儲。斷點狀態(tài)寄存器220存儲斷點I的狀態(tài)位或"標(biāo)簽";如果所述位是O,那么用于斷 點I的寄存器不在使用中,且如果所述位是l,那么寄存器在使用中。在線路222上將來 自狀態(tài)寄存器1220的位發(fā)出到反相器224,反相器224產(chǎn)生旗標(biāo)信號226。旗標(biāo)信號226 在高電平時指示用于斷點I的一組寄存器不在使用中。還存在可存儲于SBMU IIO中的專用寄存器中的(N-l)個其它軟件斷點。這些其它 斷點中的每一者具有類似于寄存器220的斷點狀態(tài)寄存器和類似于地址寄存器236的地 址寄存器,以及其自身的類似于電路200的邏輯電路,且這些都在圖3中展示。本文中 將先于當(dāng)前斷點I所設(shè)定的任何其它軟件斷點都稱作斷點J,其中J<I。來自斷點狀態(tài)寄存器J的狀態(tài)寄存器位227在"與"門228處經(jīng)受逐位的"與"操 作,即,所有的J狀態(tài)位都被"與"。"與"門228產(chǎn)生狀態(tài)旗標(biāo)信號230,其指示所有先 前組的寄存器J (其中J<I)何時已在使用中,艮P,斷點J在先前何時被設(shè)定且已在使用 中。狀態(tài)旗標(biāo)信號230、存儲斷點命令218和狀態(tài)旗標(biāo)信號226都輸入到"與"門232, "與"門232產(chǎn)生存儲斷點I命令234。因此,僅在以下情況下才產(chǎn)生命令234:所有先 前斷點都在使用中,當(dāng)前斷點寄存器可自由存儲斷點和寫入操作的進入數(shù)據(jù)與斷點模式 匹配。存儲斷點命令234從"與"門232提供到斷點I地址寄存器236,且用于使得能夠 將輸入地址總線124的值存儲在地址寄存器236中。在將存儲或清除軟件斷點時使用電路200的其它部分。將輸入地址總線124與存儲 于斷點模式寄存器中的地址進行比較。這一操作是在將存儲于斷點I地址寄存器236中 的地址237輸入到比較器238以便與地址總線124上的數(shù)據(jù)進行永久比較時完成的。由 比較器238產(chǎn)生比較旗標(biāo)240,且此旗標(biāo)指示地址總線124上的數(shù)據(jù)是否與已設(shè)定軟件 斷點I的斷點地址匹配。如果比較旗標(biāo)240是"真",那么發(fā)生匹配,且將采取的動作取決于當(dāng)前是由調(diào)試程 序清除斷點的寫入訪問還是程序執(zhí)行期間讀取斷點地址處的指令的讀取訪問。此寫入訪 問和讀取訪問由控制信號120指示。如果當(dāng)前訪問是寫入訪問,那么可清除(如果進入 的模式不等同于軟件斷點模式)或可存儲(如果進入的模式等同于軟件斷點模式)使用 中的相關(guān)斷點I。如果當(dāng)前訪問是讀取訪問,那么SBMU IIO可在輸出數(shù)據(jù)總線142上 將存儲在斷點模式寄存器202中的軟件斷點模式返回到逐位數(shù)據(jù)多路復(fù)用器112,如圖2 所示,使得將其返回到微處理器102。為了清除軟件斷點I,將匹配的軟件斷點模式比較旗標(biāo)208發(fā)送到反相器250進行反 相,從而產(chǎn)生旗標(biāo)252,旗標(biāo)252如果是高電平,那么其指示進入的寫入數(shù)據(jù)總線126 上的數(shù)據(jù)不等同于軟件斷點模式,且因此是清除操作。旗標(biāo)252、寫入輸入命令信號120 和全局選擇信號214輸入到"與"門254,與"門254產(chǎn)生清除斷點命令256。清除斷點 命令256、斷點I狀態(tài)寄存器位222 (如果是高電平,那么其指示斷點I在使用中)和地 址比較旗標(biāo)240 (指示待寫入數(shù)據(jù)的地址與地址寄存器236的地址匹配)都輸入到"與" 門258,"與"門258產(chǎn)生清除斷點I信號260。因此,清除軟件斷點I命令260僅在以下 情況下有效斷點I寄存器在使用中,輸入地址總線與斷點I地址匹配,和當(dāng)前寫入訪問 不存儲斷點模式。當(dāng)存儲或清除斷點I時,必須分別設(shè)定或清除斷點I狀態(tài)寄存器220。斷點管理使得 狀態(tài)寄存器262能存儲用于斷點管理的啟用狀態(tài)或禁用狀態(tài)。在所描述的實施例中,僅 在此寄存器262啟用時才可存儲斷點。通常,管理寄存器262在調(diào)試期間被啟用。寄存 器的狀態(tài)作為信號264被發(fā)送到"與"門266。存儲斷點I命令234和斷點I狀態(tài)寄存器位222被輸入到"或"門268,"或"門268的輸出271是提供到"與"門266的設(shè)定斷 點狀態(tài)寄存器位命令。到達"與"門266的第三輸入是清除斷點I命令260,此命令260 已在線路272上經(jīng)反相器270反相。"與"門266產(chǎn)生設(shè)定/清除斷點I狀態(tài)寄存器位命令 274,其被提供到斷點I狀態(tài)寄存器220以設(shè)定其狀態(tài)。因此,僅在存儲斷點I命令234 有效且清除斷點I命令260無效時才將斷點I "在使用中"的狀態(tài)設(shè)定在斷點I狀態(tài)寄存 器220中。相反,僅在清除斷點I命令260有效時(這也是在通過寄存器262使系統(tǒng)的 斷點管理禁用時)才清除斷點I狀態(tài)寄存器220。當(dāng)斷點I狀態(tài)寄存器被清除時,認(rèn)為用 于斷點I的一組寄存器被清除,且隨后用于新斷點的新地址可寫入到地址寄存器236中 (覆蓋舊地址)。圖4是包括于圖2的軟件斷點管理單元(SBMU) 110中的用于提供代替讀取訪問期 間所存儲的指令的斷點模式的斷點提供電路300的示意圖。在微處理器102使用對NVM 裝置106的讀取操作來請求斷點地址處的數(shù)據(jù)時提供斷點模式。當(dāng)微處理器102 (或其它主控制器裝置)正對先前已設(shè)定軟件斷點的存儲位置執(zhí)行 讀取訪問時,電路300負(fù)責(zé)提供將置于讀取數(shù)據(jù)總線136上的斷點模式來替換微處理器 102正期望訪問的非易失性存儲器106中的數(shù)據(jù)。斷點模式存儲在斷點模式寄存器202 (同樣在圖3中展示)中,斷點模式寄存器202在總線142上發(fā)出斷點模式至圖2所示 的多路復(fù)用器112。電路300包括額外的邏輯,其用以過濾用于多個非易失性存儲器裝置(例如,NVM 裝置106)的選擇信號,同時產(chǎn)生與SBMU 110相關(guān)的提供到多路復(fù)用器112的選擇信號。 如果多路復(fù)用架構(gòu)用于讀取數(shù)據(jù)總線,或在任何其它架構(gòu)中,使用此用于過濾選擇信號 的額外邏輯,因為數(shù)據(jù)選擇或啟用(對于三態(tài)總線來說)需要此過濾。存儲于斷點I地址寄存器236中的地址和進入的地址總線124被輸入到比較器304, 比較器304比較信號且產(chǎn)生比較信號306,比較信號306指示地址總線124上的數(shù)據(jù)是 否與關(guān)于斷點I的位置的地址匹配。非易失性存儲器選擇信號130和131被提供到"或" 門212 (與圖2中的相同)以產(chǎn)生單個非易失性存儲器選擇信號214。選擇信號214、匹 配斷點I地址比較信號306、來自微處理器212的讀取控制信號312 (在讀取操作期間其 是有效高電平)和來自斷點I狀態(tài)寄存器220的斷點I狀態(tài)寄存器位222作為輸入提供到 "與"門314。"與"門314產(chǎn)生信號316,信號316指示當(dāng)前的讀取訪問是否與斷點I 地址匹配。系統(tǒng)IOO所提供的N個軟件斷點中的每一者需要使用相同輸入信號耦合到"與"門的比較器,此類似于比較器304和"與"門314,且圖4中并未展示。通過SBMU 110 中其它使用中的斷點J的各自的比較器和"與"門將所述其它使用中的斷點J的地址與 當(dāng)前的讀取訪問進行比較。所有所得信號(類似于信號316)中的每一者都指示當(dāng)前的 讀取訪問是否與軟件斷點J地址匹配(其中J不同于1),其表示為圖4中的總線318并 在"或"門320的輸入處提供。還在"或"門320的輸入處提供斷點I信號316,且"或" 門產(chǎn)生信號322,信號322指示當(dāng)前的讀取訪問是否與軟件斷點位置匹配,即,是否與 當(dāng)前正由SBMU 110中的調(diào)試程序使用的任何斷點的地址匹配。信號322與來自軟件斷點管理啟用狀態(tài)寄存器262的狀態(tài)旗標(biāo)264 —起提供到"與" 門324的輸入,狀態(tài)旗標(biāo)264指示斷點管理是否啟用(寄存器262由于通過微處理器102 進行的配置而被設(shè)定,或由于測試配置而被設(shè)定;斷點管理和SBMU IIO可被啟用或禁 用(默認(rèn)是禁用),使得SBMU的功能性僅在必要時啟用)。"與"門324的輸出是SBMU 數(shù)據(jù)選擇信號143。從SBMU輸出選擇信號143且還將其輸入到產(chǎn)生旗標(biāo)332的反相器 330,旗標(biāo)332指示正被訪問的地址處有(低電平)沒有(高電平)設(shè)定斷點。旗標(biāo)332 用作選擇信號140和141的門信號,其中旗標(biāo)332提供在"與"門334的輸入處以及"與" 門336的輸入處,且選擇信號130輸入到"與"門334,而選擇信號131輸入到"與" 門336。因此,僅當(dāng)未在存儲軟件斷點的位置處執(zhí)行讀取訪問時,旗標(biāo)332才用以使所 需的存儲器選擇信號130作為信號140通往NVM裝置106 (或使信號131作為信號141 通往不同的非易失性存儲器裝置)。這允許NVM裝置106提供存儲在微處理器所請求的 地址處的非斷點數(shù)據(jù)。由讀取數(shù)據(jù)總線多路復(fù)用器112接收和使用SBMU選擇信號143,以在執(zhí)行斷點地 址的讀取訪問時促使多路復(fù)用器112選擇在總線142上從SBMU IIO接收到的來自斷點 模式寄存器的斷點模式,而不是選擇從NVM裝置106接收到的來自總線134的數(shù)據(jù)(斷 點模式寄存器202優(yōu)選一直發(fā)出斷點模式)。多路復(fù)用器112隨后在總線136上將斷點模 式發(fā)送到微處理器102,如圖2所示。本發(fā)明因此允許使用最小數(shù)量的組件來為多個不同的存儲器裝置設(shè)定軟件斷點。 SBMU 110的邏輯能夠以一個或一個以上的存儲器裝置上的系統(tǒng)頻率(全速)來管理若 干軟件斷點,而不添加任何高速緩沖存儲器或復(fù)雜的邏輯。例如,上文在圖3到圖4中 所描述的邏輯可管理N個軟件斷點,且僅需包括一個能夠界定斷點模式的可編程寄存器 (通過當(dāng)前使用中的調(diào)試程序而編程為其用于斷點模式的自身特定值)、 一個將寫入訪問 中的數(shù)據(jù)與斷點模式進行比較的比較器206、用于地址存儲的N個寄存器、提供斷點的使用中狀態(tài)的N個狀態(tài)寄存器位220,和將輸入地址與地址寄存器中所存儲的地址進行 比較的N個比較器238。
在替代性實施例中,可以包括額外的組件。例如,在斷點可能與數(shù)據(jù)的缺省大小不 同時,可以提供N個寄存器(其中N是斷點的數(shù)目)來存儲除斷點地址以外的所寫入斷 點模式的大小??砂~外的狀態(tài)寄存器來指示是否己設(shè)定SBMU IIO能夠管理的最大 數(shù)目的軟件斷點。同樣,管線級可根據(jù)系統(tǒng)總線架構(gòu)的需要而包括在本發(fā)明的實施方案 中,這是眾所周知的。如果使用所述管線級,那么圖2中所示的總線和線路可在其等效 物在圖3或圖4中展示之前或之后通過管線級。例如,圖2的總線和線路120、 124、 130、 131和126可在如圖3和圖4所示的組件處接收之前通過同步級(管線級)。
圖5是說明在對非易失性存儲器(例如,NVM裝置16)的寫入訪問期間用于管理 軟件斷點的本發(fā)明方法400的流程圖。此過程描述設(shè)定或清除軟件斷點;包括讀取先前 設(shè)定的斷點模式的過程將在下文結(jié)合圖6進行描述。
本方法開始于402,且在步驟404中,SBMU IIO接收到來自微處理器102的斷點寫 入訪問命令,其通常由源自用戶在調(diào)試過程中使用的調(diào)試程序代理(通常運行于與微處 理器分離的裝置上)。寫入訪問通常包括存儲器中的地址(在地址總線124上提供),以 及待寫入到該地址的數(shù)據(jù)(在寫入數(shù)據(jù)總線126上提供)。盡管是操作過程中無法簡單地 進行寫入或擦除的非易失性存儲器裝置106,但是調(diào)試程序并不了解此事實而假定其可 被寫入。例如,調(diào)試程序可使用JTAG端口通過微處理器將數(shù)據(jù)直接發(fā)送到存儲器裝置, 而無需任何運行于微處理器上的應(yīng)用程序與存儲器進行交流。
在此寫入訪問下,調(diào)試代理可能希望將軟件斷點指令設(shè)定(即,寫入)在NVM裝 置106的特定地址,本文稱作"斷點地址"。這通常必需使用此斷點指令(或"模式") 替換斷點地址處的現(xiàn)有原始指令。(在正使用斷點時此原始指令可存儲在中間存儲器位 置或寄存器中)。期望將斷點模式置放在將在存儲于NVM裝置106中的正被調(diào)試的程序 的執(zhí)行期間被訪問的存儲器位置,且用戶希望中斷程序執(zhí)行以用于調(diào)試目的,例如在程 序執(zhí)行中的所要位置處檢査變量值或存儲器位置,檢査輸出等。在軟件斷點的典型設(shè)定 操作中,在將斷點模式寫入斷點地址之前,微處理器將斷點地址處的原始指令拷貝到中 間位置。原始指令是正執(zhí)行(和正調(diào)試)的程序的指令中的一者。這個中間位置可位于 存儲器或其它存儲區(qū)域中的任何地方。
或者,調(diào)試程序可能希望通過用原始指令替換斷點模式,來移除或清除通過步驟404 中所接收的寫入訪問而在先前寫入的軟件斷點。在步驟406中,SBMU IIO捕獲預(yù)期用于NVM裝置106的寫入訪問的地址和數(shù)據(jù), 且將寫入訪問的數(shù)據(jù)部分與SBMU 110存儲在其斷點模式寄存器中的斷點模式進行比 較。本文中假定斷點模式是唯一的且不類似于任何實際數(shù)據(jù)。
在步驟408中,檢查寫入訪問的輸入數(shù)據(jù)是否與斷點模式相同。如果相同,那么調(diào) 試程序嘗試在寫入訪問中指定的地址(斷點地址)處設(shè)定斷點。如果是這種情況,那么 在步驟410中SBMU IIO將寫入訪問的地址部分存儲到內(nèi)部高速緩沖存儲器(例如,圖 3的實施例中的寄存器236)中,作為被標(biāo)記的斷點地址。所述地址僅存儲在為空且仍未 保持有使用中的不同軟件斷點的寄存器中。標(biāo)記此地址,從而指示此地址處的斷點在使 用中,且任何其它斷點不可存儲在此地址處。例如,如同圖3的寄存器220的狀態(tài)寄存 器可與地址寄存器202相關(guān)聯(lián)且可將一個位設(shè)定成標(biāo)簽。此方法隨后在414完成。
如果在步驟408中輸入數(shù)據(jù)不與斷點模式匹配,那么方法繼續(xù)進行到步驟412。假 定指示調(diào)試程序正嘗試通過用原始指令替換寫入訪問中指定的地址處的斷點模式來清除 斷點;原始指令是寫入訪問的數(shù)據(jù)部分。在此情況下,SBMU 110清除(釋放)存儲與 寫入訪問中的輸入地址匹配的斷點地址的高速緩沖存儲器。例如,在圖3的實施例中, 斷點的清除是由與匹配的地址高速緩沖存儲器相關(guān)聯(lián)的清除狀態(tài)寄存器236來完成的 (地址寄存器中的地址無需被清除,且可用另一斷點地址進行覆寫)。為了使SBMU的 邏輯和功能保持簡單,且維持系統(tǒng)的兼容性功能,SBMU不檢查包括在寫入訪問中的原 始指令(數(shù)據(jù)本身),而是假定如果調(diào)試程序希望將并非斷點模式的數(shù)據(jù)存儲在斷點地址 處,那么所述數(shù)據(jù)是原始指令。注意,因為在NVM裝置106中,原始指令實際上從未 被斷點模式替換,因此無需將寫入訪問中所發(fā)送的原始指令寫入任何存儲器中。此過程 隨后在414處完成。
在所描述的實施例中,SBMU IIO可存儲N個斷點,其中N是小于可編程寄存器的 數(shù)目的值(需要一個寄存器來對與調(diào)試程序相關(guān)的使用中的斷點模式編程)。如果所有可 用的寄存器存儲使用中的斷點,那么不存儲額外的斷點。然而,只要軟件斷點被清除, 便可設(shè)定新的斷點。
圖6是說明在程序執(zhí)行期間用于管理用于非易失性存儲器的讀取訪問的軟件斷點的 本發(fā)明的方法450的流程圖。此過程描述以下情形其中微處理器102執(zhí)行將代碼指令 存儲在NVM裝置106中的程序,形成讀取斷點地址的請求,且將軟件斷點提供到微處 理器。此讀取訪問發(fā)生在運行于微處理器102上的程序的執(zhí)行期間,且通常不由調(diào)試代 理起始。如果微處理器檢索到其辨識為斷點模式的內(nèi)容,那么其將中斷執(zhí)行,從而允許用戶更簡單地調(diào)試程序。
本方法開始于452,且在步驟454中,SBMU 110接收到預(yù)期用于存儲在NVM裝置 106中的數(shù)據(jù)的讀取訪問(代碼獲取)請求。代碼獲取請求包括圖2的地址總線124上 提供的處于NVM裝置(需要從所述NVM裝置檢索數(shù)據(jù))中的地址。
在步驟456中,SBMU檢査獲取請求的地址是否與被高速緩沖存儲器訪問和被標(biāo)記 的地址中的任一者匹配。被標(biāo)記的地址是用于存儲軟件斷點的那些地址,且軟件斷點實 際上存儲于SBMU 110中的高速緩沖存儲器(例如寄存器)中,如上文參考圖3所描述, 而并非存儲在NVM裝置106中。如果讀取訪問請求地址不與任何標(biāo)記的地址匹配,那 么所請求的地址不保存斷點,且方法繼續(xù)行進到步驟458,其中SBMU 110允許在NVM 裝置106中在所請求的地址處執(zhí)行數(shù)據(jù)的正常讀取訪問。在圖2的實施例中,SBMU 110 可將選擇信號140提供到NVM裝置106以允許讀取操作。所請求地址處的所請求的數(shù) 據(jù)由NVM裝置106發(fā)送到多路復(fù)用器112并通過讀取數(shù)據(jù)總線136發(fā)送到微處理器。 此方法隨后在462處完成。
如果在步驟456獲取請求地址與標(biāo)記的地址匹配,那么微處理器102請求存儲有斷 點的地址,且此過程繼續(xù)行進到步驟460。在步驟460中,SBMU110越過(或繞過)對 NVM裝置106的讀取訪問,且作為替代,用斷點模式來替代NVM裝置中的所述地址處 的任何數(shù)據(jù)。將存儲在SMBU的寄存器中的斷點模式提供到多路復(fù)用器112,多路復(fù)用 器112通過讀取數(shù)據(jù)總線136將所述模式提供到微處理器102。此方法隨后在462處完成。
微處理器102執(zhí)行所接收到的斷點模式并執(zhí)行適當(dāng)?shù)漠惓@谐绦?。在異常例行?序之后,如果需要執(zhí)行原始指令(其被斷點模式替換),那么可由SBMU處理恢復(fù)原始 指令(和清除斷點)的寫入訪問請求,如上文參考圖4所描述。類似地,圖4的過程處 置用于在NVM裝置106中設(shè)定斷點的寫入訪問。
應(yīng)注意,本發(fā)明可適用于其它類型的存儲器裝置,其中所述其它類型的存儲器裝置 可以是易失性的且其難以與軟件斷點一起使用且不能夠用簡單的微處理器寫入訪問進行 寫入。
盡管已根據(jù)所示實施例描述了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員易于認(rèn)識到,這些實 施例可存在變化形式且這些變化形式將在本發(fā)明的精神和范疇內(nèi)。因此,在不脫離所附 權(quán)利要求書的精神和范疇的情況下,所屬領(lǐng)域的技術(shù)人員可進行許多修改。
權(quán)利要求
1.一種用于為存儲器提供軟件斷點的系統(tǒng),所述系統(tǒng)包含微處理器;存儲器裝置,可通過耦合到所述微處理器的數(shù)據(jù)總線和地址總線對其進行訪問;以及處理邏輯,其耦合到所述存儲器裝置并耦合到所述微處理器,所述處理邏輯可操作以通過用斷點模式替代待從所述存儲器裝置讀取的值來設(shè)定用于所述存儲器裝置的所述軟件斷點,其中代替所述值的所述斷點模式在所述數(shù)據(jù)總線上被發(fā)送到所述微處理器。
2. 根據(jù)權(quán)利要求l所述的系統(tǒng),其進一步包含耦合到所述微處理器的一個或一個以上 額外的存儲器裝置,其中所述處理邏輯使用用于所述存儲器裝置中的任一者的所述 斷點模式來替代待讀取的值。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述處理邏輯為耦合到所述處理邏輯的每一存儲 器裝置提供選擇信號。
4. 根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述系統(tǒng)包括耦合到所述存儲器裝置中的每一輸 出的多路復(fù)用器,其中所述多路復(fù)用器將所述數(shù)據(jù)總線上的來自所述存儲器裝置中 的任一者的數(shù)據(jù)發(fā)送到所述微處理器。
5. 根據(jù)權(quán)利要求2所述的系統(tǒng),其進一步包含系統(tǒng)地址解碼器,所述系統(tǒng)地址解碼器 耦合到所述微處理器且向所述處理邏輯提供選擇信號以用于每一存儲器裝置,其中 所述處理邏輯將選擇信號發(fā)送到所述存儲器裝置中的每一者。
6. 根據(jù)權(quán)利要求l所述的系統(tǒng),其中所述存儲器裝置是非易失性存儲器裝置。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述非易失性存儲器裝置是以下裝置中的一者-只讀存儲器(ROM)、電可編程只讀存儲器(EPROM)、電可擦除只讀存儲器(EEPROM)和快閃存儲器。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述處理邏輯包括存儲所述斷點模式的專用寄存 器。
9. 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述處理邏輯包括斷點地址寄存器,所述斷點地 址寄存器存儲所述微處理器認(rèn)為將要存儲所述斷點模式的所述存儲器裝置的地址。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述處理邏輯包括斷點狀態(tài)寄存器,所述斷點狀 態(tài)寄存器存儲指示所述斷點地址寄存器中的所述地址是否正用作軟件斷點的狀態(tài)。
11 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述處理邏輯包括一組專用寄存器以用于由所述 處理邏輯存儲的每一斷點,其中所述處理邏輯存儲多個軟件斷點。
12. —種用于提供用于與存儲器裝置一起使用的軟件斷點的方法,所述方法包含-在所述存儲器裝置的讀取訪問中從微處理器接收地址值;以及 用斷點模式替代存儲在所述存儲器裝置中的數(shù)據(jù)值,且將所述斷點模式提供到所 述微處理器。
13. 根據(jù)權(quán)利要求12所述的方法,其中從包括在處理邏輯中的高速緩沖存儲器中檢索 所述斷點模式,其中所述處理邏輯耦合到所述微處理器并耦合到所述存儲器裝置。
14. 根據(jù)權(quán)利要求12所述的方法,其進一步包含耦合到所述微處理器的一個或一個以 上額外的存儲器裝置,其中用所述斷點模式替代來自所述存儲器裝置中的任一者的 值。
15. 根據(jù)權(quán)利要求12所述的方法,其中所述微處理器在存儲于所述存儲器裝置中的程 序指令的執(zhí)行期間請求所述讀取訪問。
16. 根據(jù)權(quán)利要求15所述的方法,其中在所述微處理器接收到所述斷點模式而導(dǎo)致所 述程序指令的執(zhí)行發(fā)生中斷后強迫發(fā)生異常。
17. 根據(jù)權(quán)利要求12所述的方法,其進一步包含將所述地址值與存儲在處理邏輯的寄 存器中的至少一個斷點地址進行比較,其中所述處理邏輯耦合到所述微處理器并耦 合到所述存儲器裝置,其中僅在所述地址值與所述至少一個斷點地址匹配時才執(zhí)行 所述數(shù)據(jù)值的所述替代。
18. 根據(jù)權(quán)利要求17所述的方法,其中如果所述地址值與所述斷點地址中的任一者均 不匹配,那么將來自所述存儲器裝置的所述數(shù)據(jù)值提供到所述微處理器,其中將所 述數(shù)據(jù)值存儲在所述存儲器裝置的等于所述地址值的地址處。
19. 根據(jù)權(quán)利要求12所述的方法,其中所述存儲器裝置是非易失性存儲器裝置。
20. 根據(jù)權(quán)利要求19所述的方法,其中所述非易失性存儲器裝置是以下裝置中的一者 只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)、電可擦除只讀存儲器(EEPROM)和快閃存儲器。
21. 根據(jù)權(quán)利要求13所述的方法,其中所述處理邏輯包括斷點地址寄存器,所述斷點 地址寄存器存儲提供到所述微處理器的所述斷點模式的地址。
22. 根據(jù)權(quán)利要求21所述的方法,其中所述處理邏輯包括斷點狀態(tài)寄存器,所述斷點 狀態(tài)寄存器存儲指示所述斷點地址寄存器中的所述地址是否正用作軟件斷點的狀態(tài)。
23. —種用于為存儲器裝置提供軟件斷點的方法,所述方法包含在從微處理器到所述存儲器裝置的寫入訪問中接收地址和數(shù)據(jù); 如果所述數(shù)據(jù)與斷點模式匹配,那么將所述地址存儲在斷點管理單元中的斷點高速緩沖存儲器中;以及如果所述存儲的地址與所述接收到的地址匹配,且所述數(shù)據(jù)與所述斷點模式不匹配,那么清除所述斷點管理單元的所述斷點高速緩沖存儲器中所存儲的地址。
24. 根據(jù)權(quán)利要求23所述的方法,其中所述將所述地址存儲在所述斷點高速緩沖存儲 器中包括將所述地址存儲在多個斷點高速緩沖存儲器中的一可用的斷點高速緩沖 存儲器中,其中所述可用的斷點高速緩沖存儲器不存儲不同的軟件斷點地址。
25. 根據(jù)權(quán)利要求23所述的方法,其中所述清除所述存儲地址包括清除所述斷點管 理單元中的斷點狀態(tài)寄存器。
26. 根據(jù)權(quán)利要求23所述的方法,其中所述清除所述存儲地址包括清除多個斷點狀 態(tài)寄存器中的一者,所述被清除的斷點狀態(tài)寄存器與所述接收到的地址相關(guān)聯(lián)。
27. 根據(jù)權(quán)利要求23所述的方法,其中所述存儲器裝置是耦合到所述微處理器的多個 存儲器裝置中的一者,每一存儲器裝置可由所述微處理器進行訪問。
28. 根據(jù)權(quán)利要求23所述的方法,其進一步包含在從所述微處理器到所述存儲器裝置的讀取訪問中接收地址;以及 如果所述讀取訪問中的所述接收到的地址與存儲在所述斷點管理單元的所述斷點高速緩沖存儲器中的地址匹配,那么代替所述存儲器裝置中的數(shù)據(jù),而將所述斷點模式提供到所述微處理器。
29. 根據(jù)權(quán)利要求28所述的方法,其中從包括在所述斷點管理單元中的寄存器中檢索 所述斷點模式。
30. 根據(jù)權(quán)利要求23所述的方法,其中所述存儲器裝置是非易失性存儲器裝置。
31. 根據(jù)權(quán)利要求30所述的方法,其中所述非易失性存儲器裝置是以下裝置中的一者 只讀存儲器(ROM)、電可編程只讀存儲器(EPROM)、電可擦除只讀存儲器(EEPROM)和快閃存儲器。
32. 根據(jù)權(quán)利要求23所述的方法,其中所述斷點管理單元包括斷點地址寄存器,所述 斷點地址寄存器存儲提供到所述微處理器的所述斷點模式的地址。
33. 根據(jù)權(quán)利要求23所述的方法,其中由期望在所述存儲器裝置中設(shè)定或清除軟件斷點的調(diào)試程序提供所述寫入訪問中所接收的所述地址和數(shù)據(jù)。
34. 根據(jù)權(quán)利要求33所述的方法,其中當(dāng)所述調(diào)試程序希望清除所述軟件斷點時,在 所述寫入訪問中提供的所述數(shù)據(jù)是曾被所述斷點模式替代的原始指令。
35. —種用于為存儲器提供軟件斷點的系統(tǒng),所述系統(tǒng)包含存儲器裝置,其可由微處理器通過數(shù)據(jù)總線和地址總線進行訪問;以及 處理邏輯,其耦合到所述存儲器裝置并耦合到所述數(shù)據(jù)總線和所述地址總線,所 述處理邏輯可操作以通過用斷點模式替代待從所述存儲器裝置讀取的值來設(shè)定用 于所述存儲器裝置的所述軟件斷點,其中代替所述值的所述斷點模式在所述數(shù)據(jù)總 線上被發(fā)送到所述微處理器。
36. 根據(jù)權(quán)利要求35所述的系統(tǒng),其進一步包含耦合到所述微處理器的一個或一個以 上額外的存儲器裝置,其中所述處理邏輯使用用于所述存儲器裝置中的任一者的所 述斷點模式來替代待讀取的值。
37. 根據(jù)權(quán)利要求36所述的系統(tǒng),其進一步包含系統(tǒng)地址解碼器,所述系統(tǒng)地址解碼 器耦合到所述微處理器且向所述處理邏輯提供選擇信號以用于每一存儲器裝置,其 中所述處理邏輯將選擇信號發(fā)送到所述存儲器裝置中的每一者。
38. 根據(jù)權(quán)利要求35所述的系統(tǒng),其中所述存儲器裝置是非易失性存儲器裝置。
39. 根據(jù)權(quán)利要求35所述的系統(tǒng),其中所述處理邏輯包括一組專用寄存器以用于由所 述處理邏輯存儲的每一斷點,其中所述處理邏輯存儲多個軟件斷點。
全文摘要
本發(fā)明涉及用于提供與存儲器裝置一起使用的軟件斷點的系統(tǒng)和方法。本發(fā)明的一方面包括微處理器;存儲器裝置,可通過耦合到所述微處理器的數(shù)據(jù)總線和地址總線對其進行訪問;和處理邏輯,其耦合到所述存儲器裝置并耦合到所述微處理器。所述處理邏輯通過用斷點模式替代待從所述存儲器裝置讀取的值來設(shè)定用于所述存儲器裝置的軟件斷點,其中代替所述值的所述斷點模式在數(shù)據(jù)總線上被發(fā)送到所述微處理器。
文檔編號G06F11/00GK101410807SQ200680002477
公開日2009年4月15日 申請日期2006年1月18日 優(yōu)先權(quán)日2005年1月19日
發(fā)明者奧利維耶·德比茨基, 斯特凡娜·格拉瓦耶, 熱羅姆·阿蘭格利 申請人:愛特梅爾公司