特殊功能寄存器的仿真調試系統的製作方法
2023-06-25 23:11:56 1
專利名稱:特殊功能寄存器的仿真調試系統的製作方法
技術領域:
本發明涉及智慧卡領域,特別是涉及一種用先進先出(FIFO First InFirst Out) 方式實現的特殊功能寄存器(SFR Special Function Register)的仿真調試系統。
背景技術:
處理器晶片內有用戶開發的用戶程序,在用戶程序的編寫和調試中,所使用的工具一般是處理器晶片仿真器和用戶電腦上的調試軟體——集成開發環境。仿真器內使用包含產品處理器晶片各項功能的仿真晶片,用於模擬產品處理器晶片的工作行為,在功能和性能上均十分接近產品處理器晶片。處理器晶片中包含了實現各種功能的特殊功能寄存器SFR,而SFR空間的大小是有限的,例如通用8051/8052處理器晶片的SFR空間是1 個,佔用1 個字節的地址空間。但是隨著集成電路設計能力、生產工藝的不斷提高,處理器晶片的複雜度越來越高,需要實現的功能越來越多,這就造成了更多晶片功能與有限的SFR個數間的矛盾。為了實現更多的晶片功能,又不破壞處理器晶片的標準架構,就必須充分利用SFR空間。目前比較常用的一種方法是構造一種特殊的SFR,以FIFO方式實現此特殊功能寄存器,只佔用一個SFR 空間的地址,在這個SFR中包含了若干個相關性很強的SFR,而這些功能原來需要用若干個SFR來實現,佔用多個SFR空間的地址。不同於普通SFR,所述以FIFO方式實現的SFR必須採用連續讀取/連續寫入的方式來訪問,也就是說,所述FIFO方式實現的SFR內包含了 η個功能相關的特殊功能寄存器SFRl,SFR2…SFfoi,在對所述FIFO方式實現的SFR執行寫入數據操作時,必須連續寫入η次,第一次寫入的是SFRl的數據,第二次寫入的是SFR2的數據,…,第η次寫入的是SFfoi的數據;在對所述FIFO方式實現的SFR執行讀取數據操作時,必須連續讀取η次,第一次讀取的是SFRl的數據,第二次讀取的是SFR2的數據,…, 第η次讀取的是SFfoi的數據。但是,在極大地充分利用了有限的SFR空間的同時,FIFO方式實現的SFR的弊端也很明顯,所述FIFO方式實現的SFR內實際有η個SFR的情況下,如果用戶程序中沒有能很好地保證每次操作所述FIFO方式實現的SFR時都是連續讀取/寫入η次,由於該SFR內包含的η個SFR功能是不同的,就會造成程序功能上的混亂。舉例來說,一個FIFO方式實現的SFR內實際包含了 η個功能相關但又有所不同的子SFR =SFRl, SFR2,…,SFfoi,如果用戶程序中的某個程序段中讀取/寫入所述SFR時,只讀取/寫入了 η-1次,那麼用戶程序中的另一個程序段在讀取/寫入所述SFR時,第一次讀取/寫入的就不是SFR1,而是SFfoi 了,將會造成功能上的混亂。用戶在使用仿真器和集成開發環境調試軟體模擬處理器晶片,調試用戶程序時, 需要在集成開發環境調試軟體的SFR觀察窗口中,觀察和修改各個SFR的數據,這一功能是仿真器和集成開發環境調試軟體所必須具備的基本功能。現有的仿真器和集成開發環境調試軟體中,在用戶打開集成開發環境調試軟體的SFR觀察窗口時,由集成開發環境調試軟體通過仿真器直接遍歷讀取一次仿真晶片SFR空間中所有地址上的SFR數值,然後把這些數值顯示在SFR觀察窗口中;用戶在SFR觀察窗口中修改某個SFR的數值時,也是由集成開發環境調試軟體通過仿真器直接對仿真晶片SFR空間中目標SFR直接執行一次寫入數據的操作。所以,對於帶有FIFO方式實現的SFR的處理器晶片,在設計實現其配套仿真器和集成開發環境調試軟體時,現有的上述這種在SFR觀察窗口中寫入/讀取SFR數據的方法是不合適的。如果使用現有仿真器和集成開發環境調試軟體調試用戶程序,對FIFO方式實現的SFR而言,由於在SFR觀察窗口中只會執行一次寫入/讀取SFR數據的操作,即使用戶程序中很好地保證了每次寫入/讀取所述FIFO方式實現的SFR的次數都是正確的,也會由於額外出現的SFR觀察窗口內對所述SFR的操作而造成用戶程序調試執行時的錯誤。現有的仿真器和集成開發環境調試軟體中,通常所採用的方法是不支持觀察/修改FIFO方式實現的 SFR。
發明內容
本發明要解決的技術問題是提供一種特殊功能寄存器的仿真調試系統,在集成開發環境調試軟體的SFR觀察窗口內可以觀察/修改FIFO方式實現的SFR內所包含的各個 SFR的數值,並且不會影響之後用戶程序運行時對所述FIFO方式實現的SFR的操作。為解決上述技術問題,本發明的特殊功能寄存器的仿真調試系統,包括仿真器和安裝在用戶電腦上的集成開發環境調試軟體,所述用戶電腦通過通信電纜與仿真器連接;所述仿真器包括仿真晶片、用戶程序存儲器和監控程序存儲器;所述用戶程序存儲器和監控程序存儲器通過數據/地址總線與仿真晶片連接;所述仿真晶片能通過數據/ 地址總線訪問不同的地址空間中的用戶程序存儲器和監控程序存儲器;所有特殊功能寄存器,包括以FIFO方式實現的SFR都在仿真晶片內;所述集成開發環境調試軟體控制仿真晶片執行用戶程序或監控程序;所述集成開發環境調試軟體控制仿真晶片執行監控程序讀取仿真晶片內各個SFR 的數值,仿真晶片將讀取到的數據返還給集成開發環境調試軟體;所述集成開發環境調試軟體把需要修改的目標SFR地址和數值傳遞給仿真晶片,並控制仿真晶片執行監控程序把數值寫入到仿真晶片SFR區域中的目標SFR中;對於以FIFO方式實現的SFR,所述集成開發環境調試軟體的SFR觀察窗口中以列表方式顯示其中所包含的所有子SFR ;所述集成開發環境控制仿真晶片執行監控程序,連續讀取所述FIFO方式實現的SFR地址內的SFR數值,讀取的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數,集成開發環境調試軟體把讀取到的這一組子SFR數值顯示在SFR觀察窗口內所述FIFO方式實現的SFR數值列表中;用戶在SFR觀察窗口內所述FIFO方式實現的SFR數值列表中,改寫某一個子SFR 數值後,集成開發環境調試軟體通過控制仿真晶片執行監控程序,把完整的一組新子SFR 數值連續寫入所述FIFO方式實現的SFR地址內,寫入的次數就是所述FIFO方式實現的SFR 內所包含的子SFR個數。採用本發明的仿真調試系統,針對帶有FIFO方式實現的SFR的處理器晶片,在集成開發環境的SFR觀察窗口內可以觀察/修改所述以FIFO方式實現的SFR內所包含的各個SFR的數值,同時保證所述SFR觀察窗口內對所述FIFO方式實現的SFR的觀察操作,以及對所述FIFO方式實現的SFR內所包含的各個SFR的修改數值操作,都不會影響之後用戶程序運行時對所述FIFO方式實現的SFR的操作。本發明有助於用戶高效、可靠地調試用戶程序。
下面結合附圖和具體實施方式
對本發明作進一步詳細的說明附圖是本發明的特殊功能寄存器的仿真調試系統一實施例結構示意圖。
具體實施例方式需要先了解的是,仿真器的工作狀態分為運行和監控兩種狀態,由用戶控制仿真器工作狀態的切換。當用戶控制仿真器進入運行狀態後,仿真器全速運行用戶程序,此時集成開發環境調試軟體不會幹預仿真器對用戶程序的執行,用戶程序與在實際產品處理器晶片上執行的效果是基本一致的;當用戶控制仿真器停止運行用戶程序,仿真器退出運行狀態進入監控狀態,仿真器不再執行用戶程序,此時用戶可以在集成開發環境調試軟體中進行觀察/修改SFR,存儲器等調試操作,集成開發環境調試軟體會控制仿真器中的仿真晶片執行監控程序完成所要求的操作。仿真器和集成開發環境調試軟體是給用戶調試用戶程序使用的,因此用戶只要求用戶程序在仿真器上全速運行時表現出來的功能與在產品處理器晶片上運行時表現出來的一致,在監控狀態下能夠在集成開發環境調試軟體的SFR觀察窗口中觀察/修改用戶所關心的SFR等數據,用戶並不關心仿真器、集成開發環境調試軟體是如何實現的。如圖所示,在一實施例中,所述特殊功能寄存器的仿真調試系統包括仿真器1和安裝在用戶電腦7上的集成開發環境調試軟體8。所述用戶電腦7通過通信電纜10與仿真器1連接。仿真器1包括仿真晶片2、用戶程序存儲器3和監控程序存儲器4。用戶程序存儲器3用於存放用戶程序,監控程序存儲器用於存放監控程序。用戶程序存儲器3和監控程序存儲器4通過數據/地址總線6與仿真晶片2連接。對仿真晶片2而言,用戶程序存儲器3和監控程序存儲器4的地址範圍不同,也就是說,仿真晶片2能通過數據/地址總線6 訪問不同的地址空間中的用戶程序存儲器3和監控程序存儲器4。所有特殊功能寄存5,包括FIFO方式實現的SFR都在仿真晶片1內。所述集成開發環境調試軟體8控制仿真晶片 1執行用戶程序或監控程序。集成開發環境調試軟體8控制仿真晶片2執行監控程序,讀取仿真晶片2內所有特殊功能寄存5的數值,仿真晶片2能把讀取到的數據通過通信電纜10返還給集成開發環境調試軟體8。集成開發環境調試軟體8通過通信電纜10把需要修改的目標SFR地址和數值傳遞給仿真晶片2,並控制仿真晶片1執行監控程序把數值寫入到仿真晶片1內SFR區域中的目標地址的SFR中。這樣,當用戶要執行用戶程序時,用戶在集成開發環境調試軟體8上發出執行用戶程序命令,集成開發環境調試軟體8控制仿真晶片2執行用戶程序,仿真器1進入運行狀態。當用戶要停止執行用戶程序時,用戶在集成開發環境調試軟體8上發出停止執行用戶程序命令,集成開發環境調試軟體8控制仿真晶片2停止執行用戶程序,仿真器1退出運行狀態,進入監控狀態。
當仿真器1處於監控狀態,用戶打開SFR觀察窗口 9觀察SFR數據時,在SFR觀察窗口 9中以列表方式顯示所述的以FIFO方式實現的SFR中所包含的所有子SFR。集成開發環境調試軟體8控制仿真晶片2執行監控程序,連續讀取所述FIFO方式實現的SFR對應地址內的SFR數值,讀取的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數,集成開發環境調試軟體8把讀取到的這一組子SFR數值顯示在SFR觀察窗口 9內所述FIFO方式實現的SFR的數值列表中。當用戶在SFR觀察窗口 9內所述FIFO方式實現的SFR的數值列表中,改寫某一個子SFR的數值後,集成開發環境調試軟體8控制仿真晶片2執行監控程序,把所述的FIFO方式實現的SFR的完整的一組新子SFR數值連續寫入所述FIFO方式實現的SFR對應地址內,寫入的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數。 所以,當仿真器1處於監控狀態時,觀察/修改所述的FIFO方式實現的SFR時,每次對此 SFR讀取/寫入的次數都是所述FIFO方式實現的SFR內所包含的子SFR個數。既實現了在集成開發環境調試軟體8的SFR觀察窗口 9內方便地觀察/修改FIFO方式實現的SFR內所包含的所有子SFR的數值,同時又保證了不會影響仿真器1進入運行狀態後,用戶程序運行時對所述FIFO方式實現的SFR的操作。以上通過具體實施方式
對本發明進行了詳細的說明,但這些並非構成對本發明的限制。在不脫離本發明原理的情況下,本領域的技術人員還可做出許多變形和改進,這些也應視為本發明的保護範圍。
權利要求
1. 一種特殊功能寄存器的仿真調試系統,包括仿真器和安裝在用戶電腦上的集成開發環境調試軟體;所述用戶電腦通過通信電纜與仿真器連接;所述仿真器包括仿真晶片、用戶程序存儲器和監控程序存儲器;所述用戶程序存儲器和監控程序存儲器通過數據/地址總線與仿真晶片連接;所述仿真晶片能通過數據/地址總線訪問不同的地址空間中的用戶程序存儲器和監控程序存儲器;所有特殊功能寄存器, 包括以先進先出FIFO方式實現的特殊功能寄存器SFR都在仿真晶片內; 所述集成開發環境調試軟體控制仿真晶片執行用戶程序或監控程序; 所述集成開發環境調試軟體控制仿真晶片執行監控程序讀取仿真晶片內各個SFR的數值,仿真晶片將讀取到的數據返還給集成開發環境調試軟體;所述集成開發環境調試軟體把需要修改的目標SFR地址和數值傳遞給仿真晶片,並控制仿真晶片執行監控程序把數值寫入到仿真晶片的SFR區域中的目標SFR中;其特徵在於對於以FIFO方式實現的SFR,所述集成開發環境調試軟體的SFR觀察窗口中以數值列表方式顯示其中所包含的所有子SFR ;所述集成開發環境控制仿真晶片執行監控程序,連續讀取所述FIFO方式實現的SFR地址內的SFR數值,讀取的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數,集成開發環境調試軟體把讀取到的這一組子SFR數值顯示在SFR觀察窗口內所述FIFO方式實現的SFR數值列表中;用戶在SFR觀察窗口內所述FIFO方式實現的SFR數值列表中,改寫某一個子SFR數值後,集成開發環境調試軟體通過控制仿真晶片執行監控程序,把完整的一組新子SFR數值連續寫入所述FIFO方式實現的SFR地址內,寫入的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數。
全文摘要
本發明公開了一種特殊功能寄存器的仿真調試系統,SFR觀察窗口中以列表方式顯示所包含的所有子SFR;所述集成開發環境調試軟體連續讀取以FIFO方式實現的SFR地址內的SFR數值,讀取的次數就是所述SFR內所包含的子SFR個數,集成開發環境調試軟體把讀取到的這一組子SFR數值顯示在SFR觀察窗口內數值列表中;用戶在數值列表中,改寫某一個子SFR數值後,集成開發環境調試軟體把完整的一組新子SFR數值連續寫入所述FIFO方式實現的SFR地址內,寫入的次數就是所述FIFO方式實現的SFR內所包含的子SFR個數。本發明在SFR觀察窗口內可以觀察/修改所述SFR內所包含的各個SFR的數值,並且不會影響之後用戶程序運行時對所述SFR的操作。
文檔編號G06F11/36GK102467444SQ20101053995
公開日2012年5月23日 申請日期2010年11月11日 優先權日2010年11月11日
發明者許國泰 申請人:上海華虹集成電路有限責任公司