新四季網

易於測試和調試程序的中央處理單元的製作方法

2023-05-16 23:48:06

專利名稱:易於測試和調試程序的中央處理單元的製作方法
技術領域:
本發明涉及易於測試和調試程序的中央處理單元(CPU),尤其涉及能夠對在調試狀態下已經從主計算機下載的測試和調試應用程式進行測試和調試的易於測試和調試程序的CPU。
通常,CPU或微處理器讀出存儲在存儲器中的由一組多個指令字構成的程序,通過指令句法分析程序對這些指令字進行句法分析以及通過執行單元而執行對應於每個指令字的操作。
應當測試存儲在存儲器中的由一組多個指令字構成的應用程式是否正確建立。在應用程式不是正確建立的情況中,應當調試該應用程式。


圖1是一方框圖,表明通過利用傳統電路內仿真器測試和調試應用程式的例子。
利用電路內仿真器測試和調試程序的系統包括具有CPU模塊3、輸入/輸出(I/O)單元1、和存儲器2的目標系統4;與CPU模塊3連接的電路內仿真器(ICE)5,用CPU模塊3已經替代目標系統4中CPU,目標系統4中CPU被CPU模塊3替代,以便測試和調試目標系統4;以及主計算機6,輸出測試和調試應用程式的指令,對電路內仿真器作調試。
電路內仿真器5接收來自主計算機6的應用程式和存儲能夠調試該應用程式的調試程序,以及按照從主計算機6輸入的命令啟動位於電路內仿真器的中央處理單元(CPU)。此外,電路內仿真器5通過CPU模塊3直接控制位於目標系統4中的一條控制總線、一條地址總線和一條數據總線,以便進行輸入/輸出單元1和存儲器2所需的輸入/輸出操作。此外,電路內仿真器5能夠讀出電路內仿真器5內CPU的內寄存器或者改變內寄存器中數據。
即,電路內仿真器5接收來自主計算機的調試應用程式,運行該程序、以及操作電路內仿真器5中CPU。此外,電路內仿真器5通過CPU模塊3直接控制位於目標系統4中的控制總線、地址總線和數據總線,以便進行輸入/輸出單元1和存儲器2所需的輸入/輸出操作,強迫停止應用程式的運行,以便測試和調該試應用程式。然後,根據來自主計算機6的命令,相對於目標系統4中輸入/輸出單元1和存儲器2讀出或寫入數據,或者讀出或寫入存儲在電路內仿真器5內寄存器中的數據。於是,判定該應用程式是否正確地被製成。如果有差錯,對該應用程式作調試。
電路內仿真器5僅僅在當利用傳統電路內仿真器對應用程式進行測試和調試時目標系統中CPU能夠被與電路內仿真器5連接的CPU模塊3替代的情況中可以是有用的。此外,由於起目標系統的CPU功能作用的硬體單元應當存在於電路內仿真器5內,這是個問題,即電路內仿真器很昂貴。此外,由於在目標系統用單個半導體晶片集成的情況中位於電路內仿真器內的CPU不能被CPU模塊3替代,不能使用電路內仿真器。
圖2是一方框圖,表明用於測試和調試程序的裝置,其中串行通信單元12和後臺調試監視器11被集合在傳統中央處理單元(CPU)13中。
參考圖2,CPU 13包括後臺調試監視器(DBM)11和串行通信單元12,以便解決在圖1的目標系統已經被集成為單個半導體晶片的情況下不能使用電路內仿真器的問題。
圖2的裝置包括目標系統10,其中具有DBM11和串行通信單元12的CPU13、輸入/輸出(I/O)單元14和存儲器15被集成在單個半導體晶片中;和經過串行通信單元12用於測試和調試應用程式的主計算機20。
DBM11用包括寄存器和控制單元的控制器應當能夠直接控制位於CPU13中的所有內部元件,以便句法分析來自主計算機20經過串行通信單元12輸入的命令,由此進行必要操作。即,DBM11與內部總線連接,以讀出或改變存儲在寄存器中的值。DBM11控制著控制器、存儲器地址寄存器和存儲器數據寄存器,由此控制著控制信號總線、地址總線和數據總線,在圖2中未示出它們。
在包括如圖2所述的傳統DBM的CPU中,主計算機20應當經過串行通信單元12與DBM11進行通信。在這種情況中,連接主計算機20與CPU13的輸入/輸出線的所需數目為2或3。於是,圖2的測試和調試裝置比圖1中所示的替代整個CPU的情況更有效。
然而,由於傳統的DBM11應當直接控制CPU13中的所有內部元件,與圖2的DBM相結合的CPU是昂貴的,並具有複雜的硬體裝置。
為了解決現有技術問題,本發明的目的是提供一種便於程序測試和調試操作的中央處理單元(CPU),其中通過啟動調試輸入信號把調試模式新增加到具有用戶模式的CPU中,在調試模式下從主計算機下載的用於測試和調試的應用程式易於被測試和調試,由此把CPU的硬體簡化為較低價格的CPU,和執行更有效的測試和調試操作。
為了實現本發明的上述目的,提供一種易於測試和調試程序的中央處理單元(CPU),該CPU包括用於執行與主計算機的數據通信的數據通信單元;具有標記的狀態寄存器,該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表調試狀態的調試模式;被用作堆棧指針的調試堆棧指針寄存器,所述堆棧指針指定存儲調試程序的數據的堆棧存儲器;以及比較存儲在斷點寄存器中的值與斷點數據的比較器,其中,如果斷點寄存器值與斷點數據相同將CPU轉換到調試模式,狀態寄存器的標記具有代表調試模式的值,用於執行調試程序的啟動地址被裝載在程序計數器中,以及運行該調試程序,按照經數據通信單元來自主計算機的命令執行調試。
根據本發明的另一個方面,提供一種易於測試和調試程序的中央處理單元(CPU),該CPU包括執行與主計算機的數據通信的數據通信單元;具有一標記的狀態寄存器,該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表調試狀態的調試模式;指定存儲調試初始化程序的數據和調試服務程序的數據的堆棧存儲器的調試堆棧指針寄存器;控制單元,用於通過復位信號對CPU初始化、檢查調試模式進程信號、如果已經激活該調試模式進程信號則把執行調試初始化程序的啟動地址裝載在程序計數器中,由此將CPU轉換到調試初始化模式中以及把狀態寄存器的標記設定到代表調試模式的值、和輸出與內部總線連接的CPU的內部和外部元件所需的各種控制信號;以及比較存儲在斷點寄存器中的值與斷點數據的比較器,其中,如果斷點寄存器值與斷點數據相同將CPU轉換到調試模式,狀態寄存器的標記具有代表調試服務模式的值,執行調試服務程序的啟動地址被裝載在程序計數器中,以及運行該調試服務程序,按照經數據通信單元來自主計算機的命令執行調試。
通過參考附圖對本發明較佳實施例的更詳細描述,本發明的以上目的和其它優點將變得更加明顯。
圖1是表明利用傳統電路內仿真器測試和調試程序的方框圖。
圖2是一方框圖,表明用於測試和調試在傳統中央處理單元(CPU)中加入了串行通信單元和後臺調試監視器的程序的裝置。
圖3是根據本發明的易於測試和調試程序的CPU的方框圖。
圖4是根據本發明的用於測試和調試程序的狀態寄存器的視圖。
圖5A是一工作圖,表明在一般操作的應用程式和調試程序被存儲在同一存儲器中的情況中的矢量處理。
圖5B是一工作圖,表明在調試程序被存儲在不同於一般操作應用程式存儲器的一單獨存儲器中的情況中的矢量處理。
圖5C是一工作圖,表明在調試程序既被存儲在與一般操作應用程式存儲器相同的存儲器中又被存儲在與一般操作應用程式存儲器不同的一單獨存儲器中的情況中的矢量處理。
將參考附圖更詳細地描述根據本發明較佳實施例的中央處理單元(CPU)。
圖3是根據本發明的易於測試和調試程序的CPU的方框圖。
在圖3中,根據本發明的易於測試和調試程序的CPU包括臨時存儲數據和地址操作所需的數據的通用寄存器組100;專用寄存器組200,它包括存儲程序所存儲的存儲器地址的程序計數器(PC)、具有一標記的狀態寄存器(SR),該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表程序測試和調試狀態的調試模式、斷點寄存器(BR)、掩蔽寄存器(MR)、和指定一存儲器的調試堆棧指針(ISP),該存儲器存儲調試初始化程序和調試服務程序的數據;連接通用寄存器組100和專用寄存器組200的內部總線(IB);連接內部總線(IB)的控制單元300,用於輸出CPU的內部和外部元件所需的各種控制信號(CONT)、通過復位信號(RESET)使CPU初始化、校驗調試模式進程信號(OSI),由此把執行調試初始化程序的啟動地址裝載在程序計數器中,如果已經啟動調試模式進程信號(OSI)則將CPU轉換為調試初始化模式以及使得狀態寄存器(SR)的標記具有代表調試模式的值;存儲器地址寄存器400;存儲器數據寄存器500;數據通信單元600,進行與主計算機的數據通信;以及比較器700,比較存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD),如果斷點寄存器值與斷點數據相同將CPU轉換為調試服務模式。
此外,作為另一種方法,根據本發明的易於測試和調試程序的CPU包括;進行與主計算機的數據通信的數據通信單元600;狀態寄存器(SR),它具有一標記,該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表程序測試和調試狀態的調試模式;和被用作堆棧指針的調試堆棧指針(ISP),以指定存儲調試程序的數據的存儲器;以及比較器700,比較存儲在斷點寄存器中的值與斷點數據,如果斷點寄存器值與斷點數據相同將CPU轉換為調試模式,其中,如果存儲在斷點寄存器(BR)中的值與根據初始調試模式項從主計算機輸入的斷點數據(BD)相同,把執行由調試初始化程序和調試服務程序組成的調試程序的啟動地址裝載到程序計數器(PC)中,由此執行調試程序把CPU轉換為調試模式並按照經數據通信單元600來自主計算機的命令進行調試,在這種情況中,狀態寄存器標記具有代表調試模式的值。
輸入到比較器700中的斷點數據(BD)可以是存儲在程序計數器(PC)中的程序地址、數據被存儲的存儲器地址、輸入和輸出數據、以及輸入和輸出地址。此外,利用掩蔽寄存器(MR),斷點數據(BD)可以是存儲在程序計數器中的程序地址與存儲在掩蔽寄存器(MR)中的值的運算結果、數據被存儲的存儲器地址與存儲在掩蔽寄存器(MR)中的值的運算結果、以及輸入和輸出地址與存儲在掩蔽寄存器(MR)中的值的運算結果。
正如圖3、5A和5B所示,控制單元300接收調試存儲器選擇信號(OSIROM),當存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同時,根據調試存儲器選擇信號(OSIROM)能夠把執行調試服務程序PROG5和PROG7的不同地址分別裝載到程序計數器(PC)中。此外,正如圖5B所示,能夠使存儲調試程序(包括調試初始化程序(PROG6)和調試服務程序(PROG7))的存儲器90與存儲通用程序的存儲器80分開。
換句話說,能夠使存儲調試程序所使用的數據值的數據存儲存儲器與存儲通用程序所使用的數據值的數據存儲存儲器分開。
當CPU被轉換為調試模式時,易於進行測試和調試程序的CPU應當進一步包括快速進行調試的臨時存儲寄存器1200,以及在CPU已經被轉換為調試模式然後執行調試程序後,在執行調試程序之前,把程序計數器(PC)和狀態寄存器(SR)存儲到臨時存儲寄存器1200中。
易於測試和調試程序的CPU進一步包括其上存儲參考數據的參考數據存儲單元900、和參數數據比較器800,將經數據通信單元輸入的數據(DEB1)與參考數據進行比較,如果數據(DEB1)與參考數據相同的話則將CPU轉換為調試服務模式,由此允許用戶經數據通道單元使CPU強制被轉換為調試服務模式,利用主計算機執行該調試服務模式。
根據本發明的易於測試和調試程序的CPU進一步包括存儲事先已經設定的復位數據的復位數據存儲單元1100、和將存儲在該復位數據存儲單元1100中的復位數據與經數據通道單元600輸入的調試數據(DEB2)進行比較的復位數據比較器1000。於是,如果以後把數據從主計算機發送到數據通信單元600,以便對CPU強制初始化,比較器1000將存儲在復位數據存儲單元1100中的復位數據與經數據通信單元600接收的值進行比較,由此在兩個值相同的情況中使CPU初始化。
根據本發明的易於測試和調試程序的CPU的操作如下控制單元300通過復位信號使CPU初始化,如果輸入到控制單元300的調試模式項目信號(OSI)被啟動,控制單元啟動狀態寄存器(SR)的調試模式標記(OSIM),如圖4所示。然後,控制單元300設定CPU進入調試和調試應用程式的起始環境,並執行待測試和調試的應用程式經數據通信單元600從主計算機下載到CPU。在應用程式的執行期間,比較器700判定存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)是否相同。如果兩個值相同,控制單元300則使CPU進到調試模式並根據經數據通信單元600從主計算機輸入的命令進行應用程式的測試和調試。
在調試模式項目信號(OSI)被啟動,因此CPU被設定為測試和調試應用程式的起始環境後,該應用程式從主計算機下載到CPU。否則,在CPU被設定為起始環境後,如果在比較器700的比較結果中存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,那麼CPU進到程序測試和調試狀態,然後應用程式從主計算機下載到CPU。
如果在比較器700的比較結果中存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,控制單元300停止或者完成應用程式的執行,控制待存儲到由臨時存儲寄存器(TR)或者調試堆棧指針(ISP)指定的堆棧存儲器中的被存儲在程序計數器(PC)中的值和被存儲在狀態寄存器(SR)中的值,控制用於執行待存儲在程序計數器(PC)中的調試服務程序的啟動地址,以便測試和調試該應用程式,以及改變狀態寄存器(SR)的數據,從而使CPU處於測試和調試應用程式的狀態。
輸入到比較器700中的斷點數據(BD)可以是存儲在程序計數器(PC)中的程序地址、數據被存儲的存儲器地址、輸入和輸出數據、以及輸入和輸出地址。此外,利用掩蔽寄存器(MR),斷點數據(BD)可以是存儲在程序計數器中的程序地址與存儲在掩蔽寄存器(MR)中的值的運算結果、數據被存儲的存儲器地址與存儲在掩蔽寄存器(MR)中的值的運算結果、輸入和輸出地址與存儲在掩蔽寄存器(MR)中的值的運算結果、以及輸入和輸出數據與存儲在掩蔽寄存器(MR)中的值的運算結果。當僅有一部分待校驗的數據被比較時,掩蔽寄存器(MR)是有用的。即,在輸入和輸出數據當中僅有6個較低位被校驗的情況中,把十六進位數字中3F的值被設定在掩蔽寄存器(MR)中,輸入和輸出數據與掩蔽寄存器(MR)中設定的值邏輯相乘。然後,如果斷點數據(BD)的6個較低位與斷點寄存器(BR)的6個較低位相同,那麼將CPU轉換為調試模式。
正如圖5A所示,用於CPU的初始化和一般操作的應用程式(PROG1、PROG2和PROG4)、根據調試模式項目信號(OSI)的啟動把CPU設定為測試和調試應用程式的起始環境的調試模式初始化程序(PROG3)、和在比較器的比較結果中如果CPU進到程序測試和調試狀態用於測試和調試應用程式的調試服務程序(PROG5)被存儲在同一存儲器80中。否則,正如圖5B所示,調試模式初始化程序(PROG6)和調試服務程序(PROG7)能夠被存儲在另一單獨存儲器90中。
正如圖5B所示,存儲應用程式(PROG1、PROG2和PROG4)(用於CPU的初始化和一般操作)的存儲器80和存儲調試模式初始化程序(PROG6)和調試服務程序(PROG7)的存儲器90是彼此分開的。在這種情況中,如果存儲器90與CPU集成在一起,那麼CPU的操作速度變得更快。
另一方面,正如圖5C所示,存儲調試模式初始化程序(PROG6)和調試服務程序(PROG7)的存儲器90(它與CPU相集成)的獨立,用戶能夠建立調試模式初始化程序(PROG3)和調試服務程序(PROG5)並能夠把它們存儲在存儲用於CPU初始化和一般操作的應用程式(PROG1、PROG2和PROG4)的存儲器80中。
在用於CPU初始化和一般操作的所有應用程式(PROG1、PROG2和PROG4)、調試模式初始化程序(PROG3)和調試服務程序(PROG5)被存儲在同一存儲器的情況中,如圖5A所示,下面將更詳細地本發明的操作。
如果給CPU供電,復位信號(RESET)被啟動。控制單元300根據該復位信號(RESET)對CPU初始化並判定調試模式項目信號(OSI)是否被啟動。如果調試模式項目信號(OSI)處於非啟動狀態,圖4的狀態寄存器(SR)的調試模式標記(OSIM)未被激活。然後,控制單元300從矢量表81讀出存儲存儲器80(存儲待執行的初始程序)地址的復位矢量,並存儲專用寄存器組200的程序計數器(PC)。控制單元300把存儲在程序計數器(PC)中的復位矢量移動到存儲器地址寄存器400並把他輸出到地址總線(ADDB)。此外,控制單元300把存儲器讀出信號輸出到控制總線並讀出存儲應用程式(PROG1)的存儲器80的內容。從存儲器輸出的數據經存儲器數據總線(DATAB)進入控制單元300、存儲器數據寄存器500和內部總線(IB)。以這種方式輸入控制單元300的命令字被句法分析。於是,所需控制信號(CONT)是以執行相應命令字的方式從控制單元300輸出的。
如果CPU被復位矢量初始化而調試模式項目信號(OSI)處於非啟動狀態,以便執行用於調試的應用程式(PROG1),那麼CPU執行該應用程式(PROG1)。
如果CPU被復位信號初始化而輸入到控制單元300的調試模式項目信號(OSI)被啟動,那麼控制單元300啟動狀態寄存器(SR)和調試模式標記(OSIM)。此外,控制單元300讀出調試模式初始化矢量並把讀出結果存儲在程序計數器(PC)中,該矢量是存儲在存儲器80中的調試模式初始化程序(PROG3)的啟動地址。然後,如果根據存儲在程序計數器(PC)中的調試模式初始化矢量執行調試模式初始化程序(PROG3),那麼CPU設定為測試和調試應用程式的初始環境。
控制單元300根據從主計算機輸入的命令不啟動狀態寄存器(SR)的調試模式標記(OSIM),並控制待執行的應用程式的命令字被存儲在程序計數器(PC)中的地址,由此執行該應用程式。如果在應用程式的執行期間,在比較器700的比較結果中,專用寄存器組200的存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,CPU停止或者完成應用程式的執行操作、控制存儲在程序計數器(PC)中的應用程式的地址的值和存儲在狀態寄存器(SR)中的數據(待存儲在臨時存儲寄存器(TR)1200中)、控制調試服務矢量是調試服務程序(PROG5)(用於測試和調試待存儲在程序計數器(PC)中的應用程式)的啟動地址、以及改變CPU的狀態寄存器(SR)的值,由此應用程式處於被測試和調試的狀態中。即,狀態寄存器(SR)的調試模式標記(OSIM)被啟動。
與此同時,如果在比較器700的比較結果中,存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,CPU停止或者完成應用程式的執行操作並能夠控制存儲在程序計數器(PC)中的值和存儲在狀態寄存器(SR)中的數據,它們不被存儲在臨時存儲寄存器(TR)中,但是被存儲在有調試堆棧指針(ISP)指定的堆棧存儲器中。
CPU進到程序測試和調試狀態,然後根據存儲在存儲器80中的調試服務程序(PROG5)執行主計算機的命令,例如由用戶建立的應用程式的下載、被下載應用程式的執行、斷點寄存器(ER)的數據變化、或者存儲在通用寄存器組100和專用寄存器組200的寄存器中的數據的讀出(READ)或寫入(WRITE)、以及根據存儲在存儲器80中的調試服務程序(PROG5)對存儲在存儲器中的數據的讀出或寫入。用戶判定應用程式是否利用命令正確地建立。如果判定應用程式是錯誤地建立,那麼該應用程式被校正。
經數據通信單元執行CPU與主計算機之間的命令的處理過程如下如果由用戶建立的程序根據主計算機的下載命令經數據通信單元600被CPU接收並控制CPU的存儲器中的接收程序,CPU給主計算機發送一信號,表示該程序已經成功地被接收。如果在應用程式的傳送期間發生差錯,那麼CPU請求主計算機重新發送該應用程式。在應用程式已經被下載到CPU後,主計算機輸出一設定CPU中斷點寄存器(BR)數據值的斷點寄存器數據改變命令,以便執行調試操作。在斷點寄存器數據改變命令後,CPU給主計算機發送一信號,表示該應用程式已經被成功地接收。主計算機給CPU發送該應用程式的執行命令,以便執行被下載在存儲器中的應用程式,CPU響應於應用程式的執行命令而執行該應用程式。如果在應用程式的執行期間,在比較器700的比較結果中,存儲在斷點寄存器(BR)中的數據值與程序計數器(PC)的數據(為斷點數據(BD))相同,應用程式的執行操作被停止或者已完成,存儲在程序計數器(PC)中的所有值、存儲在狀態寄存器(SR)中的數據、以及通用寄存器的內容被存儲在臨時存儲寄存器(TR)或者由調試堆棧指針(ISP)指定的堆棧存儲器中。調試服務矢量(為用於測試和調試應用程式的調試服務程序(PROG5)的啟動地址)被存儲在程序計數器(PC)中,狀態寄存器(SR)的數據被改變,使得CPU處於測試和調試應用程式的狀態中。即,狀態寄存器(SR)的調試模式標記(OSIM)被啟動。根據調試服務程序(PROG5)CPU進到測試和調試應用程式的狀態。如果CPU已經進到測試和調試應用程式的調試模式,那麼接收寄存器讀出命令,存儲在臨時存儲寄存器(TR)或由調試堆棧指針(ISP)指定的堆棧中的寄存器的數據被發送到主計算機。然後,用戶分析該發送數據並判定是否輸出正確值。如果在分析的結果中該發送數據不是正確數據,那麼確定應用程式是不正確的。於是,應用程式被校正。
重複上述方法,應用程式能夠被便利地調試。
當最初給CPU加電時復位信號(RESET)被啟動。否則,復位數據比較器1000將經數據通信單元600從主計算機輸入的調試數據(DEB2)與存儲在復位數據存儲單元1100中的復位數據進行比較,如果前者與後者相同,CPU被啟動。換句話說,在待調試的應用程式的執行期間,在CPU處於不可恢復狀態的情況中,例如在無限循環的狀態中,CPU被初始化,以解決這個問題。
在應用程式超過預定時間繼續被執行的情況中,即,在應用程式處於無限循環狀態的情況中,存儲在參考數據存儲單元900中的與參考數據等同的調試數據(DEB1)經數據通信單元600被發送,參考數據比較器800將存儲在參考數據存儲單元900中的參考數據與經數據通信單元600接收的調試數據(DEB1)進行比較,在比較結果中如果前者與後者相同,那麼迫使CPU進到調試服務模式,這是程序測試和調試狀態,由此擺脫無限循環,對發生無限循環的應用程式作調試。
正如圖5C所示,調試模式初始化程序(PROG3和PROG6)和調試服務程序(PROG5和PROG7)既能被存儲在存儲器80(存儲對CPU初始化和操作的服務程序)中又能被存儲在與存儲器80分開的存儲器90中。為此,存儲器識別信號(OSIROM)需要作為控制單元300的輸入信號。即,在控制單元300用復位信號(RESET)已經對CPU初始化後,然後如果調試模式項目信號(OSI)在被啟動時已經被校驗以及如果存儲器識別信號(OSIROM)在被啟動時已經被校驗,調試模式初始化矢量II(是存儲在存儲器90中的調試模式初始化程序(PROG6)的啟動地址,以便測試和調試應用程式)應當被存儲在程序計數器(PC)中。此外,斷點寄存器(BR)的數據值與斷點數據相同的情況中,比較器700通知控制單元300兩個值相同,控制單元300控制程序計數器(PC),存儲調試模式初始化矢量II,這是存儲在存儲器90中的調試服務程序(PROG7)。
如果存儲器識別信號(OSIROM)不被啟動,調試模式初始化矢量I是用於執行調試模式初始化程序(PROG3)的啟動地址,調試服務矢量I是用於執行調試服務程序(PROG5)的啟動地址。
如上所述,如果存儲器是分開和使用的,用戶並不使用內部存儲的調試模式初始化程序(PROG6)和調試服務程序(PROG7),使用用戶製作的調試模式初始化程序(PROG3)和調試服務程序(PROG5),由此測試和調試應用程式。
此外,在根據本發明的易於測試和調試程序的CPU中,CPU被復位信號(RESET)初始化。然後,CPU被調試模式項目信號(OSI)轉換到初始調試模式。否則,根據在應用程式的執行期間經數據通信單元600來自主計算機的調試數據(DEB1)(與存儲在參考數據存儲單元900中的參考數據等同)的輸入,CPU被控制單元300強迫轉換到初始調試模式。於是,如果由調試初始化程序和調試服務程序構成的調試程序被執行,根據該調試程序在主計算機中能夠設定斷點寄存器(BR)的值。斷點寄存器(BR)的設定數據經數據通信單元600被存儲在斷點寄存器(BR)中,如果在應用程式的執行期間存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,CPU總是前進到調試模式,不管調試模式項目信號(OSI)啟動或是不啟動。即,如果存儲在斷點寄存器(BR)中的值(IBR)與斷點數據(BD)相同,控制單元300啟動狀態寄存器(SR)的調試模式標記(OSIM),把用於執行調試程序的啟動地址裝載到程序計數器(PC)中。於是,控制單元300控制CPU執行調試程序,由此控制CPU被轉換到調試模式中。此外,控制單元300根據調試程序執行經數據通信單元600來自主計算機的命令,例如調試程序所使用的存儲器的初始化、一組調試堆棧指針、一組或改變的參考數據、一組或改變的對CPU初始化的復位數據、斷點寄存器(BR)的值的改變、存儲通用寄存器組100或專用寄存器組200的寄存器中的數據的讀出(READ)或寫入(WRITE)、存儲在存儲器中的數據的讀出或寫入,以及判定應用程式是否被正確地建立,由此校正和改進不正確的應用程式。
根據本發明的易於測試和調試程序的CPU在具有用戶模式的CPU狀態中新增加了調試模式,由此使得CPU能夠在調試模式下易於測試和調試從主計算機下載的應用程式。這裡,CPU是用更簡單的硬體單元製備的,這能夠降低CPU的價格並能夠更有效的測試和調試。此外,把CPU設定到測試和調試應用程式的初始環境中的調試模式初始化程序和通過使CPU前進到程序測試和調試狀態對應用程式作測試和調試的調試服務程序被存儲到存儲用戶應用程式(使CPU初始化和操作)的存儲器以外的其他單獨存儲器中。因而,用戶不需要考慮所提供的調試模式初始化程序和調試服務程序,利用由用戶建立的調試程序能夠建立一應用程式。
權利要求
1.一種易於測試和調試應用程式的中央處理單元(CPU),包括臨時存儲數據和地址操作所需的數據的通用寄存器組、存儲各程序所存儲地址的程序計數器、具有指示CPU狀態的狀態寄存器和斷點寄存器的專用寄存器組、連接通用寄存器組與專用寄存器組的內部總線、以及與內部總線連接的控制單元,用於輸出CPU內部和外部元件所需的各種控制信號,所述CPU包括執行與主計算機的數據通信的數據通信單元;具有標記的狀態寄存器,該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表調試狀態的調試模式;被用作堆棧指針的調試堆棧指針寄存器,所述堆棧指針指定存儲調試程序的數據的堆棧存儲器;以及比較存儲在斷點寄存器中的值與斷點數據的比較器,其特徵在於,如果斷點寄存器值與斷點數據相同將CPU轉換到調試模式,狀態寄存器的標記具有代表調試模式的值,執行調試程序的啟動地址被裝載在程序計數器中,以及運行該調試程序,按照經數據通信單元來自主計算機的命令執行調試。
2.如權利要求1所述的CPU,其特徵在於進一步包括存儲復位數據的復位數據存儲單元;以及復位數據比較器,用於比較經數據通信單元輸入的數據與存儲在復位數據存儲單元中的復位數據,並且如果經數據通信單元輸入的數據與復位數據相同的話指令控制單元對CPU初始化。
3.如權利要求1所述的CPU,其特徵在於,所述斷點數據是存儲在程序計數器中的程序地址。
4.如權利要求1所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是存儲在程序計數器和屏蔽寄存器中的值的操作的結果。
5.如權利要求1所述的CPU,其特徵在於,斷點數據是數據所存儲的存儲器地址。
6.如權利要求1所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是數據所存儲的存儲器地址和存儲在屏蔽寄存器中的值的操作的結果。
7.如權利要求1所述的CPU,其特徵在於,所述斷點數據是輸入到CPU和從CPU輸出的數據。
8.如權利要求1所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是輸入到CPU和從CPU輸出的數據以及存儲在屏蔽寄存器中的值的操作的結果。
9.如權利要求1所述的CPU,其特徵在於,所述斷點數據是輸入到CPU和從CPU輸出的地址。
10.如權利要求1所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是輸入到CPU和從CPU輸出的地址以及存儲在屏蔽寄存器中的值的操作的結果。
11.如權利要求1所述的CPU,其特徵在於,所述控制單元接收調試存儲器選擇信號並且當存儲在斷點寄存器中的值與斷點數據相同時根據調試存儲器選擇信號把執行調試程序的各個不同地址裝載到程序計數器中。
12.如權利要求1所述的CPU,進一步包括存儲調試程序所使用的數據值的數據存儲存儲器,它與存儲通用程序所使用的數據值的數據存儲器相分離。
13.如權利要求1所述的CPU,進一步包括存儲調試程序的存儲器,它與存儲通用程序的存儲器相分離。
14.如權利要求1所述的CPU,其特徵在於,經數據通信單元從主計算機下載待測試和調試的應用程式。
15.如權利要求1所述的CPU,其特徵在於,當CPU已經被轉換為調試模式時,存儲在程序計數器中的值和存儲在狀態寄存器中的數據被存儲到由調試堆棧指針寄存器所指定的存儲器中。
16.如權利要求1所述的CPU,進一步包括臨時存儲寄存器,其中,當CPU已經被轉換為調試模式時,存儲在程序計數器中的值和存儲在狀態寄存器中的數據被存儲到臨時存儲存儲器中。
17.如權利要求1所述的CPU,進一步包括存儲參考數據的參考數據存儲單元;以及比較通過數據通信單元輸入的數據與參考數據的參考數據比較器,其中,控制單元控制CPU被轉換到調試模式,以及如果通過數據通信輸入的數據與參考數據相同把執行調試程序的啟動地址裝載到程序計數器中,由此控制CPU按照經數據通信單元來自主計算機的命令執行調試。
18.一種易於測試和調試程序的中央處理單元(CPU),包括臨時存儲數據和地址操作所需的數據的通用寄存器組、存儲各程序所存儲地址的程序計數器、具有指示CPU狀態的狀態寄存器和斷點寄存器的專用寄存器組、以及連接通用寄存器組與專用寄存器組的內部總線,所述CPU包括執行與主計算機的數據通信的數據通信單元;具有標記的狀態寄存器,該標記代表CPU的操作模式是代表通用操作狀態的通用操作模式還是代表調試狀態的調試模式;指定存儲調試初始化程序的數據和調試服務程序的數據的堆棧存儲器的調試堆棧指針寄存器;控制單元,用於通過復位信號對CPU初始化、檢查調試模式進程信號、如果已經激活該調試模式進程信號則把執行調試初始化程序的啟動地址裝載在程序計數器中,由此將CPU轉換到調試初始化模式中以及把狀態寄存器的標記設定到代表調試模式的值、以及輸出與內部總線連接的CPU的內部和外部元件所需的各種控制信號;以及比較存儲在斷點寄存器中的值與斷點數據的比較器,其特徵在於,如果斷點寄存器值與斷點數據相同將CPU轉換到調試模式,狀態寄存器的標記具有代表調試服務模式的值,執行調試服務程序的啟動地址被裝載在程序計數器中,以及運行該調試服務程序,按照經數據通信單元來自主計算機的命令執行調試。
19.如權利要求18所所述的CPU,其特徵在於進一步包括存儲復位數據的復位數據存儲單元;以及復位數據比較器,用於比較經數據通信單元輸入的數據與存儲在復位數據存儲單元中的復位數據,並且如果經數據通信單元輸入的數據與復位數據相同的話指令控制單元對CPU初始化。
20.如權利要求18所所述的CPU,其特徵在於,所述斷點數據是存儲在程序計數器中的程序地址。
21.如權利要求18所所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是存儲在程序計數器和屏蔽寄存器中的值的操作的結果。
22.如權利要求18所所述的CPU,其特徵在於,斷點數據是數據所存儲的存儲器地址。
23.如權利要求18所所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是數據所存儲的存儲器地址和存儲在屏蔽寄存器中的值的操作的結果。
24.如權利要求18所所述的CPU,其特徵在於,所述斷點數據是輸入到CPU和從CPU輸出的數據。
25.如權利要求18所所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是輸入到CPU和從CPU輸出的數據以及存儲在屏蔽寄存器中的值的操作的結果。
26.如權利要求18所所述的CPU,其特徵在於,所述斷點數據是輸入到CPU和從CPU輸出的地址。
27.如權利要求18所所述的CPU,進一步包括屏蔽寄存器,其中,斷點數據是輸入到CPU和從CPU輸出的地址以及存儲在屏蔽寄存器中的值的操作的結果。
28.如權利要求18所所述的CPU,其特徵在於,所述控制單元接收調試存儲器選擇信號並且當存儲在斷點寄存器中的值與斷點數據相同時根據調試存儲器選擇信號把執行調試程序的各個不同地址裝載到程序計數器中。
29.如權利要求18所所述的CPU,進一步包括存儲調試程序所使用的數據值的數據存儲存儲器,它與存儲通用程序所使用的數據值的數據存儲存儲器相分離。
30.如權利要求18所所述的CPU,進一步包括存儲調試程序的存儲器,它與存儲通用程序的存儲器相分離。
31.如權利要求18所所述的CPU,其特徵在於,經數據通信單元從主計算機下載待測試和調試的應用程式。
32.如權利要求18所所述的CPU,進一步包括臨時存儲寄存器,其中,當CPU已經被轉換為調試模式時,存儲在程序計數器中的值和存儲在狀態寄存器中的數據被存儲到臨時存儲存儲器中。
33.如權利要求18所所述的CPU,進一步包括存儲參考數據的參考數據存儲單元;以及比較通過數據通信單元輸入的數據與參考數據的參考數據比較器,其中,控制單元控制CPU被轉換到調試模式,以及如果通過數據通信輸入的數據與參考數據相同把執行調試程序的啟動地址裝載到程序計數器中,由此控制CPU按照經數據通信單元來自主計算機的命令執行調試。
全文摘要
一種易於測試和調試應用程式的中央處理單元(CPU),它包括執行與主計算機數據通信的數據通信單元;具有一標記的狀態寄存器,該標記代表CPU操作模式是代表通用操作狀態的通用操作模式還是代表調試狀態的調試模式;被用作堆棧指針的調試堆棧指針寄存器,該堆棧指針指定存儲調試程序的數據的堆棧存儲器;以及將存儲在斷點寄存器中的值與斷點數據進行比較的比較器,其中如果斷點寄存器值與斷點數據相同則把CPU轉換到調試模式,狀態寄存器的標記具有代表調試模式的值,執行調試程序的啟動地址被裝載在程序計數器中,以及運行該調試程序,按照經數據通信單元來自主計算機的命令執行調試。
文檔編號G06F11/28GK1332409SQ0111231
公開日2002年1月23日 申請日期2001年3月29日 優先權日2000年7月5日
發明者趙璟衍, 林鐘潤, 李根澤, 韓相書, 閔炳權, 李熙, 權起弘 申請人:先進數字晶片股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀