專利名稱:測試裝置及測試方法
技術領域:
本發(fā)明涉及電子或通信領域的測試技術,具體指一種測試裝置及測試方法。
背景技術:
嵌入式系統(tǒng),實際是指嵌入式計算機系統(tǒng),是相對于通用計算機系統(tǒng)而言,應用于工業(yè)控制、網(wǎng)絡通信、家用電器、醫(yī)療儀器等各種專用領域中的專用計算機系統(tǒng)。以個人計算機(PC)為例,通用計算機系統(tǒng)在硬件和軟件上都有著幾乎一致的配置硬件上都由主板、內存條、硬盤、顯示器、鍵盤和鼠標等標準設備或部件構成,軟件則都安裝了類似Windows的操作系統(tǒng),使用各種各樣基于Windows操作系統(tǒng)開發(fā)的應用軟件。而嵌入式系統(tǒng)則是根據(jù)所應用的具體領域和具體場合,有著不盡相同的硬件配置,采用了各自不同的操作系統(tǒng)。嵌入式系統(tǒng)中所運行的軟件也都是根據(jù)系統(tǒng)需要和硬件配置而專門開發(fā)的應用軟件,一般僅適用于本系統(tǒng)。顧名思義,嵌入式系統(tǒng)是作為嵌入到整個應用系統(tǒng)中的一個計算機子系統(tǒng)而存在的,脫離了整個應用系統(tǒng)的這個計算機子系統(tǒng)通常就毫無用處。這也是嵌入式計算機系統(tǒng)與通用計算機系統(tǒng)非常明顯的區(qū)別。
板級支持包(BSP,Board Support Package)用于嵌入式系統(tǒng)中的啟動和初始化,其主要作用在于進行硬件系統(tǒng)的上電初始化,并向嵌入式操作系統(tǒng)提供硬件系統(tǒng)的操作和維護接口。嵌入式系統(tǒng)的BSP的上電初始化,要設置堆棧指針,建立中斷向量表,初始化各種各樣的寄存器(用以控制靜態(tài)存儲器,輸入輸出端口和片選信號等),配置地址空間以及系統(tǒng)啟動方式,并且在完成上電初始化工作后,把系統(tǒng)控制權交給嵌入式操作系統(tǒng)。因而BSP要完成對嵌入式系統(tǒng)的上電初始化,主要工作就是按要求配置嵌入式系統(tǒng)上微處理器和各種集成電路芯片的寄存器。
對嵌入式系統(tǒng)的測試實際上就是對系統(tǒng)中各種集成電路芯片的寄存器測試,通過對BSP的測試進而達到對嵌入式系統(tǒng)中寄存器的測試。對BSP的測試,一方面要檢查BSP對嵌入式系統(tǒng)中所有寄存器的配置是否正確;另一方面,要通過寫一些特定寄存器的特定位,改變硬件配置信息,達到驗證、測試系統(tǒng)硬件功能和優(yōu)化系統(tǒng)性能的目的。
由于嵌入式系統(tǒng)中的每個寄存器的每一位都包含著配置信息,且寄存器數(shù)量眾多,對這些寄存器的值進行核對時,首先要逐一讀出寄存器的值,再查寄存器手冊中各寄存器的含義,根據(jù)期望值,檢查寄存器實際值的每一位是否都正確。寫嵌入式系統(tǒng)中的寄存器時,則要采取與讀寄存器基本反向的過程,即根據(jù)寄存器手冊中的含義,首先確定要寫入哪些寄存器,然后確定寫哪些位,再確定寫入的值,執(zhí)行寫入操作后還要再次讀出寄存器的值,以確認是否把期望值成功寫入了寄存器。
上述這些工作包含了反復的寄存器讀寫測試,如果采取人工測試,效率將非常低下。必須借助適當?shù)墓ぞ咦詣油瓿蛇@些操作。
現(xiàn)以典型的嵌入式操作系統(tǒng)和BSP的關系為例,請參照圖1所示。由圖1中可以看出,BSP 15是介于物理硬件16和嵌入式操作系統(tǒng)的內核17之間,內核17并不直接對硬件16進行操作,而是通過BSP 15屏蔽底層硬件16的操作細節(jié),使得操作系統(tǒng)可以向上層應用軟件20提供統(tǒng)一的、與硬件16無關的應用設備接口,如輸入輸出系統(tǒng)19,文件系統(tǒng)18等。
通常嵌入式系統(tǒng)的微處理器廠商會提供CPU的測試工具,通過CPU的JTAG(JTAGJoint Test Action Group,聯(lián)合測試行動組)接口完成對CPU內部寄存器的測試和BSP代碼的調試進而實現(xiàn)對嵌入式系統(tǒng)中的寄存器進行測試。嵌入式系統(tǒng)的微處理器廠商所提供的這些CPU測試工具,通過他們提供的集成環(huán)境,大多僅支持CPU的寄存器測試,不支持測試嵌入式系統(tǒng)上其它的寄存器,不利于寄存器配置信息的管理和擴充。一般也有第三方廠商提供的類似測試工具。這些測試工具主要提供匯編語言或高級語言的代碼調試功能,例如支持代碼的單步運行、設置斷點、寄存器查看等等,都是通過輸入?yún)R編語言或者高級語言的命令,一步一步地執(zhí)行,測試效率不高。這些工具一般都提供一個基于Windows操作系統(tǒng)的圖形化用戶操作界面,在普通PC機上運行。
而且這些測試工具一般都不會將寄存器內容與其配置含義關聯(lián)起來,在使用這些工具讀寫寄存器時,大量繁瑣的查閱寄存器手冊的工作仍需用戶自己完成,換句話說,就是BSP的測試效率還很低下。
發(fā)明內容
本發(fā)明解決的問題是提供一種測試裝置及測試方法,以達到提高測試嵌入式系統(tǒng)中各種寄存器的效率,進而提高BSP測試效率的目的。
為此,本發(fā)明提供如下的技術方案一種測試裝置,應用于嵌入式系統(tǒng)中,所述測試裝置包括數(shù)據(jù)庫,用于存放嵌入式系統(tǒng)中的寄存器手冊信息;用戶界面,用于輸入測試命令及顯示目標寄存器的寄存器手冊信息及目標寄存器的當前值;樁模塊,運行于嵌入式操作系統(tǒng)之上,根據(jù)測試命令對目標寄存器進行讀或寫操作并讀出目標寄存器的當前值;主控模塊,用于接收由用戶界面輸入的所述的測試命令,并轉發(fā)給所述樁模塊或/和根據(jù)所述的測試命令調取所述數(shù)據(jù)庫中目標寄存器的寄存器手冊信息,然后將所述目標寄存器的當前值或/和所述目標寄存器的寄存器手冊信息反饋給所述的用戶界面。
所述的測試命令包括讀寄存器命令、改寫寄存器命令及調取寄存器手冊信息命令。
所述測試命令位于字符幀中。
所述數(shù)據(jù)庫包括本地數(shù)據(jù)庫和遠端數(shù)據(jù)庫,所述本地數(shù)據(jù)庫,是用于存放嵌入式系統(tǒng)中的寄存器手冊信息,是由遠端數(shù)據(jù)庫拷貝過來的;而遠端數(shù)據(jù)庫,用于存放嵌入式系統(tǒng)中的寄存器手冊信息且總是保持最新版本。
所述數(shù)據(jù)庫中寄存器手冊信息以中英文兩種方式存放。
所述樁模塊設置有用于輸入輸出的通信端口,且通過傳輸控制協(xié)議或者網(wǎng)際協(xié)議與主控模塊建立傳輸連接。
相應地,本發(fā)明還提供一種測試方法,其包括以下流程讀寄存器流程,樁模塊根據(jù)測試命令讀取目標寄存器當前值并通過主控模塊反饋給用戶界面顯示;調取寄存器手冊信息流程,主控模塊根據(jù)測試命令從數(shù)據(jù)庫中調取目標寄存器的寄存器手冊信息,并反饋給用戶界面顯示;改寫寄存器流程,參照寄存器手冊信息通過樁模塊改寫目標寄存器,并將目標寄存器的當前值通過主控模塊反饋給用戶界面顯示。
所述讀寄存器流程進一步包括如下步驟用戶界面發(fā)出讀寄存器命令;主控模塊將讀寄存器命令放在字符幀中以字符串的形式通過通信端口轉發(fā)給樁模塊;樁模塊從通信端口接收到字符串后,判斷字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的讀寄存器命令讀取目標寄存器的當前值并將目標寄存器的當前值通過通信端口發(fā)給主控模塊;主控模塊將接收到的目標寄存器的當前值反饋給用戶界面,顯示在用戶界面上。
所述調取寄存器手冊信息流程進一步包括如下步驟主控模塊接收到用戶界面發(fā)來的調取寄存器手冊信息命令或讀寄存器命令后,從數(shù)據(jù)庫中調出目標寄存器的寄存器手冊信息反饋給用戶界面。
所述改寫寄存器流程進一步包括如下步驟參照寄存器手冊信息用戶界面發(fā)出改寫寄存器命令;主控模塊將改寫寄存器命令放在字符幀中以字符串的形式通過通信端口轉發(fā)給樁模塊;樁模塊從通信端口取出字符串,判斷字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的改寫寄存器命令對目標寄存器進行改寫操作。
與現(xiàn)有技術相比,本發(fā)明的測試裝置及測試方法,具有以下優(yōu)點首先,由于本發(fā)明的技術方案中的用戶界面,顯示本地數(shù)據(jù)庫內寄存器名及寄存器手冊的關聯(lián)內容和嵌入式系統(tǒng)中的寄存器值,這種圖形化的界面,可以使用戶操作起來非常方便,而且把寄存器與其手冊中的內容關聯(lián)起來,用戶在檢查寄存器內容時,就像使用電子辭典一樣方便,這樣大大提高了測試嵌入式系統(tǒng)中各種寄存器的效率,從而提高了BSP程序的測試效率。
其次,本技術方案還使用數(shù)據(jù)庫技術,也就是本地數(shù)據(jù)庫和遠端數(shù)據(jù)庫,對嵌入式系統(tǒng)中微處理器和集成電路芯片的寄存器手冊信息進行管理,使得今后擴充和更新寄存器配置信息非常方便再者,本地數(shù)據(jù)庫和遠端數(shù)據(jù)庫中寄存器手冊的信息是以中英文兩種方式存放的,當用戶對中文譯文有懷疑時,不必再反復查閱手冊原文,直接選擇以英文方式顯示寄存器手冊的信息就可以了,從而大大提高了BSP程序的審查和測試效率。
圖1是現(xiàn)有技術中嵌入式操作系統(tǒng)和BSP的關系示意圖;圖2是本發(fā)明的測試裝置結構圖;圖3是圖2的用戶界面示意圖;圖4是圖2的用戶界面又一示意圖;圖5是主控模塊的主流程圖;圖6是樁模塊的主流程圖。
具體實施例方式
如圖2所示,本發(fā)明測試裝置,應用于嵌入式系統(tǒng)中,所述的測試裝置包括數(shù)據(jù)庫30,存放嵌入式系統(tǒng)1中的寄存器手冊信息;用戶界面3,用于輸入測試命令及顯示目標寄存器的寄存器手冊信息及目標寄存器的當前值;樁模塊2,運行于嵌入式操作系統(tǒng)12之上,根據(jù)測試命令對目標寄存器進行讀或寫操作并讀出目標寄存器的當前值;主控模塊4,接收用戶界面3的測試命令,轉發(fā)給樁模塊2或/和根據(jù)測試命令調取數(shù)據(jù)庫30中目標寄存器的寄存器手冊信息,且將目標寄存器的當前值或/和目標寄存器的寄存器手冊信息反饋給用戶界面3。
所述測試命令包括讀寄存器命令、改寫寄存器命令及調取寄存器手冊信息命令。
所述數(shù)據(jù)庫30中寄存器手冊信息是以中英文兩種方式存放,即表示在用戶界面3,可以以中英文兩種方式顯示。如圖2中的數(shù)據(jù)庫30包括本地數(shù)據(jù)庫5,是用于存放嵌入式系統(tǒng)1中的寄存器手冊信息。
主控模塊4、用戶界面3和本地數(shù)據(jù)庫5可運行于一臺計算機7上。嵌入式系統(tǒng)1與存放主控模塊4、用戶界面3和本地數(shù)據(jù)庫5的計算機7之間可通過網(wǎng)絡連接。
如圖5所示,主控模塊4總是處于等待輸入狀態(tài),如果有輸入,就判斷此輸入是來自用戶界面3還是來自樁模塊2,如果是來自用戶界面3的,判斷此輸入是讀寄存器命令、改寫寄存器命令還是調取寄存器手冊信息命令,如果讀寄存器命令,主控模塊4就把此測試命令放在字符幀中以字符串的形式轉發(fā)給樁模塊2,同時主控模塊4還將目標寄存器的寄存器手冊信息從本地數(shù)據(jù)庫5中取出反饋給用戶界面3,然后處于等待輸入狀態(tài);如果是改寫寄存器命令,主控模塊4就把此測試命令放在字符幀中以字符串的形式轉發(fā)給樁模塊2,繼而處于等待輸入狀態(tài);如果是調取寄存器手冊信息命令,主控模塊4就從本地數(shù)據(jù)庫中調出目標寄存器的寄存器手冊信息反饋給用戶界面,然后處于等待輸入狀態(tài)。
樁模塊2是運行于嵌入式系統(tǒng)1的嵌入式操作系統(tǒng)12之上的,嵌入式操作系統(tǒng)12運行于BSP 13之上,樁模塊2設置有用于輸入輸出的通信端口,且通過傳輸控制協(xié)議(TCP)或者網(wǎng)際協(xié)議(IP)與主控模塊4建立連接。
如圖6所示,樁模塊2首先進行一些初始化工作,如命令初始化,建立命令索引表、網(wǎng)口通信端口初始化,然后就從通信端口中讀取字符串,并判斷字符串的類型,如果字符串是字符幀,就表示該字符串是讀寄存器命令或者是改寫寄存器命令,樁模塊2就執(zhí)行該測試命令和/或向用戶界面反饋寄存器的當前值;如果字符串不是字符幀,而是其它的事情,樁模塊2就進行相應的處理。樁模塊按照字符串的要求處理結束后,樁模塊2就又去讀取通信端口中的字符串,進行判斷,根據(jù)判斷結果進行相應的處理。
如圖3所示,用戶界面3分為寄存器名區(qū)域9、寄存器值讀寫區(qū)域10和寄存器手冊區(qū)域11,寄存器名區(qū)域9顯示的是來自本地數(shù)據(jù)庫5內寄存器手冊中的寄存器名稱,也就是嵌入式系統(tǒng)1中所有寄存器的名稱,本例中是以分類樹的形式顯示的(在實際使用的過程中可以采用任意方式來顯示)。在寄存器名區(qū)域9中把所有寄存器分成幾大類,如通訊處理模塊(CPM,Communicate ProcessModule)寄存器大類、內核寄存器大類及系統(tǒng)集成單元(SIU,System IntergrateUnit)寄存器大類等,把這幾大類作為一級目錄,每一個大類又分成幾個小類,小類作為二級目錄,例如把SIU寄存器大類分成時鐘和重置小類和通用的SIU小類等。每一個小類還可以細分,作為三級目錄,這樣依次進行下去,直到最后不可再分了,就是一個一個的寄存器。在寄存器值讀寫區(qū)域10中顯示的是寄存器名區(qū)域9中選定的寄存器在嵌入式系統(tǒng)1中的當前值,寄存器手冊區(qū)域11顯示的是寄存器名區(qū)域9中選定的寄存器的基本信息。
測試人員打開用戶界面3后,主控模塊4調用本地數(shù)據(jù)庫5,把本地數(shù)據(jù)庫5內的寄存器名稱反饋給用戶界面3,用戶界面3以分類樹的形式把寄存器名稱顯示在寄存器名區(qū)域9。在寄存器名區(qū)域9測試人員可用鼠標點擊要訪問的寄存器,即選定目標寄存器并發(fā)出讀寄存器命令。
主控模塊4接收到讀寄存器命令后,要執(zhí)行兩種操作,一種操作是從本地數(shù)據(jù)庫5中把目標寄存器的寄存器手冊信息取出來給用戶界面3,顯示在用戶界面3的寄存器手冊區(qū)域11,該信息以中英文兩種方式顯示;另一種操作是把讀寄存器命令存放在字符幀里,本例中是在讀寄存器命令前加入字符幀的幀標識符0x31,以字符串的形式傳給樁模塊2,樁模塊2從通信端口讀取字符串,判斷該字符串是字符幀,便執(zhí)行字符幀中的讀寄存器命令,從嵌入式系統(tǒng)1上把目標寄存器的當前值取出來,再把目標寄存器的當前值通過通信端口傳給主控模塊4,由主控模塊4將其反饋給用戶界面3,顯示在用戶界面3的寄存器讀寫區(qū)域10,寄存器值是以十六進制和二進制兩種方式顯示的,這樣就可以把嵌入式系統(tǒng)1上的寄存器的當前值讀出。
如果要修改嵌入式系統(tǒng)1中的寄存器的內容,測試人員把鼠標指向寄存器讀寫區(qū)域內要修改的位,主控模塊4就從本地數(shù)據(jù)庫5中把目標寄存器該位的寄存器手冊信息浮動顯示出來,寄存器手冊信息可以以中英文兩種方式顯示。用戶便可參照此信息,用鼠標點擊要修改的位,將1改為0或者將0改為1,然后予以確認,即發(fā)出改寫寄存器命令。
主控模塊4接收到用戶界面3發(fā)出的改寫寄存器命令后,將改寫寄存器命令放入字符幀中以字符串的形式通過通信端口發(fā)給樁模塊2,樁模塊2從通信端口接收到該字符串后,判斷該字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的改寫寄存器命令,并且隨即把修改后的目標寄存器值讀出,即目標寄存器的當前值,并把目標寄存器的當前值通過通信端口傳給主控模塊4,由主控模塊4將目標寄存器的當前值反饋給用戶界面3,顯示在用戶界面3的寄存器值讀寫區(qū)域10。
下面以系統(tǒng)時鐘控制寄存器(SCCR,System clock control register)為例,如圖3所示,在用戶界面3的寄存器名區(qū)域9,測試人員點擊用戶界面3的寄存器名區(qū)域9中顯示的寄存器名稱SCCR,主控模塊4接收到讀寄存器命令后,就從本地數(shù)據(jù)庫5內的寄存器手冊中把SCCR的基本信息調出來顯示在圖3中的用戶界面3的寄存器手冊區(qū)域11,同時,主控模塊4還把讀SCCR的讀寄存器命令傳給樁模塊2,樁模塊2接收到此測試命令后就從嵌入式系統(tǒng)1中把SCCR的當前值取出來并傳給主控模塊4,主控模塊4便將SCCR的當前值反饋給用戶界面3,顯示在用戶界面3的寄存器值讀寫區(qū)域10中,SCCR是一個32位的寄存器,如圖3中的寄存器值讀寫區(qū)域10所示,SCCR的值的十六進制表示是0x1fffa28b,二進制表示是00011111111111111010001010001011。在寄存器值讀寫區(qū)域10中,SCCR的以二進制表示的值顯示了兩排,上面的一排所在的位置稱為當前值;下面的一排所在位置稱為設置寄存器的值,用于改寫寄存器值時使用。
SCCR的當前值讀出后,測試人員可察看SCCR的各個位的配置信息是否符合要求,本例要察看SCCR的第25位的值,測試人員可以用鼠標指向SCCR的第25位,在本例中該位和與其相關聯(lián)的位都以綠色高亮度顯示,在實際應用中可以以任何色彩和亮度顯示,同時主控模塊4就從本地數(shù)據(jù)庫5中把該位的寄存器手冊信息調出來以浮動的方式顯示出來,同樣,該位的寄存器手冊信息也可以以其它的方式顯示,只要測試人員能看到就可以。SCCR的第25位的寄存器手冊信息如圖4所示,該位表示時間基準源。決定驅動時間基準和減法計數(shù)器的時鐘源。該位是0時表示時間基準頻率源為OSCCLK的4或16分頻,該位值為1時表示時間基準頻率源為GCLK2的16分頻。測試人員就可以參考此信息,對該位配置一個正確的值。如果測試人員覺得中文信息翻譯的不好,不如看英文信息更清晰明了,測試人員可以點擊寄存器值讀寫區(qū)域10中的中英文轉換按鈕,該位的硬件配置信息的說明就可以以英文的方式顯示出來。
在本例中SCCR第25位的當前值是1,如果測試人員要將該位當前值由1改為0,測試人員可直接在用戶界面3的寄存器值改寫區(qū)域10中設置寄存器值部分,用鼠標點擊要修改的位,即發(fā)出改寫寄存器命令。本例中測試人員用鼠標點擊第25位,使得該位的值由1變?yōu)?,主控模塊4接收到改寫寄存器命令后,就把該命令存放在字符幀中,即在改寫寄存器命令前加入字符幀的幀標識符0x31,以字符串的形式通過通信端口傳給樁模塊2,樁模塊2從通信端口中取出字符串,判斷該字符串是一個字符幀,則執(zhí)行字符幀中的改寫寄存器命令,把嵌入式系統(tǒng)1中的SCCR的第25位的值由1設置為0,重新設置完SCCR的值后,樁模塊2把重新設置好的SCCR的值也就是SCCR的當前值通過通信端口傳給主控模塊4,主控模塊4再把SCCR的當前值反饋給用戶界面3,顯示在用戶界面3的寄存器值改寫區(qū)域10,這時用戶界面3的寄存器值改寫區(qū)域10顯示的就是改寫后的SCCR的值也就是SCCR的當前值。
這樣就完成了對嵌入式系統(tǒng)1中某一個寄存器的某一位信息的測試。因此上述過程可以不斷往復地操作運行,直到把嵌入式系統(tǒng)1中所有的寄存器信息都測試結束,也就是完成了對嵌入式系統(tǒng)1的測試工作。
如圖2所示的測試裝置的數(shù)據(jù)庫30還包括由主控模塊4調用的遠端數(shù)據(jù)庫6,所述遠端數(shù)據(jù)庫6存放的是嵌入式系統(tǒng)1中的寄存器手冊信息,該信息總是保持最新的版本,該寄存器手冊信息是以中英文兩種方式存放的。遠端數(shù)據(jù)庫6可以存放在一臺計算機8上,運行于數(shù)據(jù)庫管理軟件之上,如Sql Server、Oracle等。存放遠端數(shù)據(jù)庫6的計算機8與存放主控模塊4、用戶界面3和本地數(shù)據(jù)庫5的計算機7之間可通過網(wǎng)絡連接。維護人員利用數(shù)據(jù)庫管理軟件提供的各種命令和功能,可以對遠端數(shù)據(jù)庫6內的寄存器信息進行更新和擴充,且根據(jù)需要通過主控模塊4調用遠端數(shù)據(jù)庫6,把遠端數(shù)據(jù)庫6的內容拷貝到本地數(shù)據(jù)庫5內,即對本地數(shù)據(jù)庫5進行更新,存放的是遠端數(shù)據(jù)庫6的一個副本,這樣測試人員不必考慮本地數(shù)據(jù)庫5的更新問題。
本發(fā)明測試方法,包括以下流程讀寄存器流程,樁模塊2根據(jù)測試命令讀取目標寄存器當前值并通過主控模塊4反饋給用戶界面3顯示;
調取寄存器手冊信息流程,主控模塊4根據(jù)測試命令從數(shù)據(jù)庫30中調取目標寄存器的寄存器手冊信息,并反饋給用戶界面3顯示;改寫寄存器流程,參照寄存器手冊信息通過樁模塊2改寫目標寄存器,并將目標寄存器的當前值通過主控模塊4反饋給用戶界面3顯示。
所述讀寄存器流程進一步包括如下步驟用戶界面3發(fā)出讀寄存器命令;主控模塊4將讀寄存器命令放在字符幀里以字符串的形式轉發(fā)給樁模塊2;樁模塊2在通信端口接收到字符串后,判斷該字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的讀寄存器命令讀取目標寄存器的當前值并將目標寄存器的當前值通過通信端口發(fā)給主控模塊4;主控模塊4將接收到的目標寄存器的當前值反饋給用戶界面3,顯示在用戶界面3上。
所述調取寄存器手冊信息流程進一步包括如下步驟主控模塊4接收到用戶界面3發(fā)來的調取寄存器手冊信息命令或讀寄存器命令后,從數(shù)據(jù)庫30中調出目標寄存器的寄存器手冊信息反饋給用戶界面3。
所述改寫寄存器流程進一步包括如下步驟參照寄存器手冊信息用戶界面3發(fā)出改寫寄存器命令;主控模塊4將改寫寄存器命令放在字符幀中以字符串通過通信端口轉發(fā)給樁模塊2;樁模塊2從通信端口取出字符串,判斷字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的改寫寄存器命令對目標寄存器進行改寫操作。
綜上所述,本發(fā)明的測試裝置及測試方法的有益效果如下首先,由于本發(fā)明的技術方案中的用戶界面3,顯示本地數(shù)據(jù)庫5內寄存器名及寄存器手冊的關聯(lián)內容和嵌入式系統(tǒng)1中的寄存器值,這種圖形化的界面,可以使用戶操作起來非常方便,而且把寄存器與其手冊中的內容關聯(lián)起來,用戶在檢查寄存器內容時,就像使用電子辭典一樣方便,這樣大大提高了讀、寫嵌入式系統(tǒng)1中各種寄存器值的效率,從而提高了BSP程序的測試效率。
其次,本技術方案還使用數(shù)據(jù)庫技術,也就是本地數(shù)據(jù)庫5和遠端數(shù)據(jù)庫6,對嵌入式系統(tǒng)1中微處理器和集成電路芯片的寄存器手冊信息進行管理,使得今后擴充和更新寄存器配置信息非常方便再者,本地數(shù)據(jù)庫5和遠端數(shù)據(jù)庫6中寄存器手冊的信息是以中英文兩種方式存放的,當用戶對中文譯文有懷疑時,不必再反復查閱手冊原文,直接選擇以英文方式顯示寄存器手冊的信息就可以了,從而大大提高了BSP程序的審查和測試效率。
權利要求
1.一種測試裝置,應用于嵌入式系統(tǒng)中,其特征在于,所述的測試裝置包括數(shù)據(jù)庫,用于存放嵌入式系統(tǒng)中的寄存器手冊信息;用戶界面,用于輸入測試命令及顯示目標寄存器的寄存器手冊信息及目標寄存器的當前值;樁模塊,運行于嵌入式操作系統(tǒng)之上,根據(jù)測試命令對目標寄存器進行讀或寫操作并讀出目標寄存器的當前值;主控模塊,用于接收由用戶界面輸入的所述的測試命令,并轉發(fā)給所述樁模塊或/和根據(jù)所述的測試命令調取所述數(shù)據(jù)庫中目標寄存器的寄存器手冊信息,然后將所述目標寄存器的當前值或/和所述目標寄存器的寄存器手冊信息反饋給所述的用戶界面。
2.如權利要求1所述的測試裝置,其特征在于,所述測試命令包括讀寄存器命令、改寫寄存器命令及調取寄存器手冊信息命令。
3.如權利要求2所述的測試裝置,其特征在于,所述的測試命令位于字符幀中。
4.如權利要求1所述的測試裝置,其特征在于,所述數(shù)據(jù)庫包括本地數(shù)據(jù)庫和遠端數(shù)據(jù)庫,所述本地數(shù)據(jù)庫,是用于存放嵌入式系統(tǒng)中的寄存器手冊信息,是由遠端數(shù)據(jù)庫拷貝過來的;而遠端數(shù)據(jù)庫,用于存放嵌入式系統(tǒng)中的寄存器手冊信息且總是保持最新版本。
5.如權利要求1所述的測試裝置,其特征在于,所述樁模塊設置有用于輸入輸出的通信端口,且通過傳輸控制協(xié)議或者網(wǎng)際協(xié)議與主控模塊建立傳輸連接。
6.一種測試方法,其特征在于,包括以下流程讀寄存器流程,樁模塊根據(jù)測試命令讀取目標寄存器當前值并通過主控模塊反饋給用戶界面顯示;調取寄存器手冊信息流程,主控模塊根據(jù)測試命令從數(shù)據(jù)庫中調取目標寄存器的寄存器手冊信息,并反饋給用戶界面顯示;改寫寄存器流程,參照寄存器手冊信息通過樁模塊改寫目標寄存器,并將目標寄存器的當前值通過主控模塊反饋給用戶界面顯示。
7.如權利要求6所述的測試方法,其特征在于,所述測試命令包括讀寄存器命令、改寫寄存器命令及調取寄存器手冊信息命令。
8.如權利要求7所述的測試方法,其特征在于,所述讀寄存器流程進一步包括如下步驟用戶界面發(fā)出讀寄存器命令;主控模塊將讀寄存器命令放在字符幀中以字符串的形式通過通信端口轉發(fā)給樁模塊;樁模塊在通信端口接收到字符串后,判斷字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的讀寄存器命令讀取目標寄存器的當前值并將目標寄存器的當前值通過通信端口發(fā)給主控模塊;主控模塊將接收到的目標寄存器的當前值反饋給用戶界面,顯示在用戶界面上。
9.如權利要求7所述的測試方法,其特征在于,所述調取寄存器手冊信息流程進一步包括如下步驟主控模塊接收到用戶界面發(fā)來的調取寄存器手冊信息命令或讀寄存器命令后,從數(shù)據(jù)庫中調出目標寄存器的寄存器手冊信息反饋給用戶界面。
10.如權利要求7所述的測試方法,其特征在于,所述改寫寄存器流程進一步包括如下步驟參照寄存器手冊信息用戶界面發(fā)出改寫寄存器命令;主控模塊將改寫寄存器命令放在字符幀中以字符串的形式通過通信端口發(fā)給樁模塊;樁模塊從通信端口取出字符串,判斷字符串是否是字符幀,如果是字符幀,則執(zhí)行字符幀中的改寫寄存器命令對目標寄存器進行改寫操作。
全文摘要
本發(fā)明公開了一種測試裝置及測試方法,其中測試裝置包括數(shù)據(jù)庫,存放嵌入式系統(tǒng)中的寄存器手冊信息;用戶界面,用于輸入測試命令及顯示目標寄存器的寄存器手冊信息及目標寄存器的當前值;樁模塊,根據(jù)測試命令對目標寄存器進行讀或寫操作并讀出目標寄存器的當前值;主控模塊,接收用戶界面的測試命令,轉發(fā)給樁模塊或/和根據(jù)測試命令調取數(shù)據(jù)庫中目標寄存器的寄存器手冊信息,且將目標寄存器的當前值或/和目標寄存器的寄存器手冊信息反饋給用戶界面。相應地,本發(fā)明測試方法包括以下流程讀寄存器流程;調取寄存器手冊信息流程;改寫寄存器流程。
文檔編號G06F17/00GK1691000SQ20041003472
公開日2005年11月2日 申請日期2004年4月26日 優(yōu)先權日2004年4月26日
發(fā)明者黃偉 申請人:華為技術有限公司