[go: up one dir, main page]

TWI884076B - Real-time active firmware debug method and device under test - Google Patents

Real-time active firmware debug method and device under test Download PDF

Info

Publication number
TWI884076B
TWI884076B TW113133040A TW113133040A TWI884076B TW I884076 B TWI884076 B TW I884076B TW 113133040 A TW113133040 A TW 113133040A TW 113133040 A TW113133040 A TW 113133040A TW I884076 B TWI884076 B TW I884076B
Authority
TW
Taiwan
Prior art keywords
point data
monitoring point
device under
monitoring
under test
Prior art date
Application number
TW113133040A
Other languages
Chinese (zh)
Inventor
梁正明
Original Assignee
新唐科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Priority to TW113133040A priority Critical patent/TWI884076B/en
Application granted granted Critical
Publication of TWI884076B publication Critical patent/TWI884076B/en

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

A real-time active firmware debug method used to actively monitor the device under test in real time for debugging, and has steps as follows: sequentially reading a plurality of monitoring point addresses stored in a plurality of monitoring point address registers; sequentially reading a plurality of operation values ​​stored in a plurality of measuring point data registers corresponding to monitoring point addresses; ​​temporarily storing the read operation values in a plurality of monitoring point data registers; and combining at least a part of the operation values in the monitoring point data registers to generate a monitoring signal, and making the device under test actively and continuously outputs the operation values ​​in the monitoring signal sequentially through a preset output pin of the device under test, wherein the monitoring point data registers is electrically connected to the measuring point data registers.

Description

主動式即時韌體除錯方法及受測裝置Active real-time firmware debugging method and device under test

本發明是有關於一種韌體除錯技術,且特別是一種主動式即時韌體除錯方法及能夠運行即時韌體除錯方法的受測裝置。The present invention relates to a firmware debugging technology, and in particular to an active real-time firmware debugging method and a device under test capable of running the real-time firmware debugging method.

一個韌體開發者最為苦惱的事,大多是耗在除錯的工作上,但由於現在的微控制器單元的速度越做越快,再加上微控制器單元的運用環境通常都是在很小的載體(ex: low pin count)上運行,所以對韌體開發者而言,除錯工程越來越困難。微控制器單元的技術日新月異,不論在製程、功耗、體積、運用等等都可說一日千里,但對於韌體的除錯支援仍需要業界人士進一步地改善與改良。The most annoying thing for a firmware developer is the time spent on debugging. However, as the speed of microcontroller units is getting faster and faster, and the application environment of microcontroller units is usually running on very small carriers (ex: low pin count), debugging projects are becoming more and more difficult for firmware developers. The technology of microcontroller units is changing with each passing day, whether in process, power consumption, size, application, etc., it can be said that it is advancing by leaps and bounds, but the debugging support for firmware still needs further improvement and improvement by industry professionals.

針對晶片或微控制器單元,現有的除錯工具中的線上仿真器(ICE)或聯合測試工作群組(JTAG),其除錯功能完整,故可以配合整合式開發環境(IDE)工具以實現追蹤與溯源(tracker and backward)的能力,但這類的除錯工具僅適合用於韌體開發階段,非商品化後除錯之用,例如如這般除錯工具往往會改變微控制器單元執行速度,造成接上除錯工具後之後就無法重現問題,亦或使用環境無法讓例如線上仿真器(ICE)或聯合測試工作群組(JTAG)接腳被規劃成通用輸入輸出(GPIO)接腳使用。另外,這類除錯工具利用查詢-回復(query-response)方式來進行除錯,即需要除錯工具發起查詢命令(query command)才會讓微控制器單元回復(response)相關運行數值,使得無法進行即時除錯。For chips or microcontroller units, existing debugging tools such as in-circuit emulators (ICE) or joint test group (JTAG) have complete debugging functions, so they can be used in conjunction with integrated development environment (IDE) tools to achieve tracker and backward capabilities. However, such debugging tools are only suitable for firmware development and are not for debugging after commercialization. For example, such debugging tools often change the execution speed of the microcontroller unit, resulting in the inability to reproduce the problem after the debugging tool is connected, or the use environment does not allow, for example, in-circuit emulator (ICE) or joint test group (JTAG) pins to be planned as general purpose input and output (GPIO) pins. In addition, this type of debugging tool uses a query-response method to perform debugging, that is, the debugging tool needs to issue a query command to allow the microcontroller unit to respond to related operating values, making it impossible to perform real-time debugging.

另一類的除錯工具可以為通用非同步收發傳輸器,其為目前最常見的商品化後的除錯方式,優處就是簡單,因為一個通用非同步收發傳輸器的傳送(TX)接腳就能看到相關的運行數值。然而,此除錯工具首先必須在原碼中埋入大量的文字信息(TXT message),尤其是即時操作系統(RTOS),這些信息列印(message print)反倒改變即時操作系統的任務切換時序,如此,增建非同步收發傳輸器的除錯信息就會有不一樣的問題表現。另一方面,此除錯工具還無法看到極細微的暫態問題,譬如快速進出的中斷服務函式,甚至運行韌體的即時操作系統進入閒置狀態或是韌體當機(dead lock),就會導致無法送出內部狀態資訊。總而言之,此除錯工具只能粗略檢視韌體流程與偵測簡單的問題,對於進行任務切換的即時操作系統來說,幾乎無法用於除錯。Another type of debugging tool can be a universal asynchronous transceiver, which is currently the most common debugging method after commercialization. The advantage is simplicity, because the transmit (TX) pin of a universal asynchronous transceiver can see the relevant operating values. However, this debugging tool must first embed a large amount of text information (TXT message) in the source code, especially for real-time operating systems (RTOS). These message prints (message print) will change the task switching timing of the real-time operating system. In this way, adding debugging information of the asynchronous transceiver will have different problem manifestations. On the other hand, this debugging tool cannot see extremely subtle transient problems, such as interrupt service functions that enter and exit quickly, or even the real-time operating system running the firmware entering an idle state or a firmware dead lock, which will result in the inability to send internal status information. In short, this debugging tool can only roughly check the firmware process and detect simple problems. For real-time operating systems that perform task switching, it is almost useless for debugging.

由上述描述可以理解,本發明的目的是為提供一種簡單且能夠主動且即時進行韌體除錯的主動式即時韌體除錯方法及能夠運行即時韌體除錯方法的受測裝置。It can be understood from the above description that the purpose of the present invention is to provide a simple active real-time firmware debugging method that can actively and instantly perform firmware debugging and a device under test that can run the real-time firmware debugging method.

基於本發明的其中一個目的,本發明實施例一種提供主動式即時韌體除錯方法。主動式即時韌體除錯方法用以主動對受測裝置即時監測以藉此除錯,受測裝置具有複數個測試點,複數個測試點對應有複數個測試點資料暫存器,每一個測試點資料暫存器儲存對應的測試點的複數個運行數值,以及主動式即時韌體除錯方法至少包括以下步驟:依序讀取複數個監測點位址暫存器所儲存的複數個監測點位址;依序讀取複數個監測點位址所對應的複數個測試點資料暫存器所儲存的複數個運行數值;將讀取的複數個運行數值進行暫存於複數個監測點資料暫存器中;以及將複數個監測點資料暫存器中的複數運行數值的至少一部份組合,以產生監測信號,且使受測裝置主動持續地透過其預設的輸出接腳依序輸出監測信號中的複數個運行數值,其中監測點資料暫存器電性連接測試點資料暫存器。Based on one of the purposes of the present invention, an embodiment of the present invention provides an active real-time firmware debugging method. The active real-time firmware debugging method is used to actively monitor a device under test in real time to debug the device under test. The device under test has a plurality of test points, and the plurality of test points correspond to a plurality of test point data registers. Each test point data register stores a plurality of running values of the corresponding test point. The active real-time firmware debugging method at least includes the following steps: sequentially reading a plurality of monitoring point addresses stored in a plurality of monitoring point address registers; sequentially reading a plurality of monitoring point addresses stored in a plurality of monitoring point address registers; The method comprises the steps of: reading a plurality of operating values stored in a plurality of corresponding test point data registers; temporarily storing the read plurality of operating values in a plurality of monitoring point data registers; and combining at least a portion of the plurality of operating values in the plurality of monitoring point data registers to generate a monitoring signal, and enabling the device under test to actively and continuously output the plurality of operating values in the monitoring signal in sequence through its preset output pins, wherein the monitoring point data register is electrically connected to the test point data register.

基於本發明的其中一個目的,本發明實施例提供一種受測裝置,受測裝置包括電性連接的複數個硬體電路,其中複數個硬體電路組態出處理核心、複數個測試點、複數個測試點資料暫存器、複數個監測點位址暫存器與複數個監測點資料暫存器,而且受測裝置能夠執行上述主動式即時韌體除錯方法。Based on one of the purposes of the present invention, an embodiment of the present invention provides a device under test, which includes a plurality of electrically connected hardware circuits, wherein the plurality of hardware circuits are configured with a processing core, a plurality of test points, a plurality of test point data registers, a plurality of monitoring point address registers and a plurality of monitoring point data registers, and the device under test is capable of executing the above-mentioned active real-time firmware debugging method.

承上所述,本發明所提供的主動式即時韌體除錯方法及能夠運行即時韌體除錯方法的受測裝置簡單不需複雜介面,不需增加過多原碼內容,運行速度快,具有彈性,且能以動態量測的方式進行。As mentioned above, the active real-time firmware debugging method and the device under test capable of running the real-time firmware debugging method provided by the present invention are simple and do not require complex interfaces or excessive source code content. They are fast and flexible and can be performed in a dynamic measurement manner.

本發明主要目的是提供一種不需複雜介面、不需增加過多原碼內容、運行速度快、具有彈性且能以動態量測的方式進行的主動式即時韌體除錯方法,以及提供能夠執行主動式即時韌體除錯方法的受測裝置,其中受測裝置可不斷且主動地送出最新的監測信號的複數個運行數值,以供韌體除錯者知悉。以下將配合圖式,將本發明可能之實施方式進行詳細的說明,但要注意的是,下述實施細節非用於限制本發明所主張的申請專利範圍,而僅是方便使所屬技術領域具有通常知識者理解。The main purpose of the present invention is to provide an active real-time firmware debugging method that does not require a complex interface, does not require adding too much source code content, has a fast running speed, is flexible, and can be performed in a dynamic measurement manner, and to provide a device under test that can execute the active real-time firmware debugging method, wherein the device under test can continuously and actively send out multiple running values of the latest monitoring signal for the firmware debugger to know. The following will be accompanied by a diagram to explain in detail the possible implementation methods of the present invention, but it should be noted that the following implementation details are not used to limit the scope of the patent application claimed by the present invention, but are only for the convenience of understanding by those with ordinary knowledge in the relevant technical field.

首先,請參照圖1、圖2、圖3與圖5,圖1是本發明實施例之受測裝置的複數個監測點位址暫存器與複數個遮罩暫存器的示意圖,圖2是本發明實施例之受測裝置的複數個測試點資料暫存器的示意圖,圖3是本發明實施例之受測裝置之預設的輸出接腳輸出的監測信號的示意圖,以及圖5是本發明實施例的主動式即時韌體除錯方法的流程圖。First, please refer to Figures 1, 2, 3 and 5, Figure 1 is a schematic diagram of multiple monitoring point address registers and multiple mask registers of the device under test in an embodiment of the present invention, Figure 2 is a schematic diagram of multiple test point data registers of the device under test in an embodiment of the present invention, Figure 3 is a schematic diagram of the monitoring signal output by the preset output pin of the device under test in an embodiment of the present invention, and Figure 5 is a flow chart of the active real-time firmware debugging method of the embodiment of the present invention.

本發明用於執行主動式即時韌體除錯方法的受測裝置包括電性連接的複數個硬體電路,其中複數個硬體電路組態出處理核心、複數個測試點(圖未繪示)、複數個測試點資料暫存器102a、102b、複數個監測點位址暫存器100a、100b、複數個遮罩暫存器101a、101b、與複數個監測點資料暫存器(圖未繪示)。另外,受測裝置例如可以但不限定為微控制器單元。The device under test for executing the active real-time firmware debugging method of the present invention includes a plurality of electrically connected hardware circuits, wherein the plurality of hardware circuits are configured with a processing core, a plurality of test points (not shown), a plurality of test point data registers 102a, 102b, a plurality of monitoring point address registers 100a, 100b, a plurality of mask registers 101a, 101b, and a plurality of monitoring point data registers (not shown). In addition, the device under test can be, for example, but not limited to, a microcontroller unit.

複數個測試點為受測裝置的不同類型的複數個元件,例如計時器、類比數位轉器、事件偵測器、任務執行單元,且本發明不以此為限制。複數個測試點對應有複數個測試點資料暫存器102a、102b,每一個測試點資料暫存器102a、102b儲存對應的測試點的複數個運行數值。在其中一個實施例中,複數個硬體電路並未組態出複數個遮罩暫存器101a、101b,亦即複數個遮罩暫存器101a、101b為本發明之受測裝置的可選配置元件。The plurality of test points are a plurality of components of different types of the device under test, such as a timer, an analog-to-digital converter, an event detector, and a task execution unit, and the present invention is not limited thereto. The plurality of test points correspond to a plurality of test point data registers 102a, 102b, and each test point data register 102a, 102b stores a plurality of operating values of the corresponding test point. In one embodiment, the plurality of hardware circuits do not configure the plurality of mask registers 101a, 101b, that is, the plurality of mask registers 101a, 101b are optional configuration components of the device under test of the present invention.

本發明實施例提供的主動式即時韌體除錯方法能用以主動對受測裝置即時監測以藉此除錯,且主動式即時韌體除錯方法的步驟說明如下。首先,在步驟S500中,依序讀取複數個監測點位址暫存器100a、100b所儲存的複數個監測點位址。接著,在步驟S501中,依序讀取複數個監測點位址所對應的複數個測試點資料暫存器102a、102b所儲存的複數個運行數值。以圖1與圖2為例,監測點位址暫存器100a、100b中的位址值0x4000_1000、0x5000_1000依序被讀取,以表示測試點位址之位址值0x4000_1000、0x5000_1000的測試點資料暫存器102a、102b所儲存的複數個運行數值會被讀取。倘若需要觀察監測不同複數個測試點,只要對韌體的代碼修改,使監測點位址暫存器100a、100b儲存的監測點位址改變即可。The active real-time firmware debugging method provided by the embodiment of the present invention can be used to actively monitor the device under test in real time to debug it, and the steps of the active real-time firmware debugging method are described as follows. First, in step S500, a plurality of monitoring point addresses stored in a plurality of monitoring point address registers 100a, 100b are read in sequence. Then, in step S501, a plurality of running values stored in a plurality of test point data registers 102a, 102b corresponding to the plurality of monitoring point addresses are read in sequence. Taking FIG. 1 and FIG. 2 as examples, the address values 0x4000_1000 and 0x5000_1000 in the monitoring point address registers 100a and 100b are read in sequence, indicating that the multiple running values stored in the test point data registers 102a and 102b of the test point address values 0x4000_1000 and 0x5000_1000 are read. If it is necessary to observe and monitor multiple different test points, it is only necessary to modify the firmware code so that the monitoring point addresses stored in the monitoring point address registers 100a and 100b are changed.

在步驟S502中,將讀取的複數個運行數值進行暫存於複數個監測點資料暫存器(圖未繪示)中。然後,在步驟S503中,依序讀取對應於複數個監測點資料暫存器(圖未繪示)的複數個遮罩暫存器101a、101b所儲存的複數個遮罩信號,其中遮罩信號具有複數個位元,複數個位元的數值分別用於表示監測點資料暫存器(圖未繪示)的複數個運行數值是否被選擇成為監測信號的一部分。In step S502, the read multiple running values are temporarily stored in multiple monitoring point data registers (not shown). Then, in step S503, multiple mask signals stored in multiple mask registers 101a and 101b corresponding to the multiple monitoring point data registers (not shown) are sequentially read, wherein the mask signal has multiple bits, and the values of the multiple bits are respectively used to indicate whether the multiple running values of the monitoring point data registers (not shown) are selected as part of the monitoring signal.

以圖1與圖2為例,遮罩暫存器101a儲存的遮罩信號為"10010"則表示對應的監測點資料暫存器中儲存的運行數值的第二跟第五個位元的運行數值會被選出作為監測信號的一部分,其中此監測點資料暫存器中儲存的運行數值的第二跟第五個位元的運行數值為測試點資料暫存器102a所儲存的中斷旗標值INT_FLAG與過運行旗標值OVER_RUN;以及遮罩暫存器101a儲存的遮罩信號為"11000"則表示對應的監測點資料暫存器中儲存的運行數值的第四跟第五個位元的運行數值會被選出作為監測信號的一部分,其中監測點資料暫存器中儲存的運行數值的第二跟第五個位元的運行數值為測試點資料暫存器102b所儲存的狀態值STATUS_0、STATUS_1。Taking FIG. 1 and FIG. 2 as examples, the mask signal stored in the mask register 101a is "10010", which means that the second and fifth bits of the running value stored in the corresponding monitoring point data register will be selected as part of the monitoring signal, wherein the second and fifth bits of the running value stored in the monitoring point data register are the interrupt flag value INT_FLAG and the over-run flag value O stored in the test point data register 102a. VER_RUN; and the mask signal stored in the mask register 101a is "11000", which means that the fourth and fifth bits of the running value stored in the corresponding monitoring point data register will be selected as part of the monitoring signal, wherein the second and fifth bits of the running value stored in the monitoring point data register are the status values STATUS_0 and STATUS_1 stored in the test point data register 102b.

然後,在步驟S504中,將複數個監測點資料暫存器中的複數運行數值的至少一部份組合,以產生監測信號,且使受測裝置主動持續地透過其預設的輸出接腳依序輸出監測信號中的複數個運行數值,其中依據複數個遮罩信號將複數個監測點資料暫存器中的複數運行數值的至少一部份組合,且複數個監測點資料暫存器電性連接測試點資料暫存器102a、102b。以圖1~圖3為例,測試點資料暫存器102a所儲存的中斷旗標值INT_FLAG與過運行旗標值OVER_RUN以及測試點資料暫存器102b所儲存的狀態值STATUS_0、STATUS_1會形成監測信號,且監測信號採用曼徹斯特編碼(Manchester coding),其包括前綴值PRE與依序在前綴值PRE之後的中斷旗標值INT_FLAG、過運行旗標值OVER_RUN與狀態值STATUS_0、STATUS_1。Then, in step S504, at least a portion of the multiple running values in the multiple monitoring point data registers are combined to generate a monitoring signal, and the device under test actively and continuously outputs the multiple running values in the monitoring signal in sequence through its preset output pins, wherein at least a portion of the multiple running values in the multiple monitoring point data registers are combined according to a plurality of mask signals, and the multiple monitoring point data registers are electrically connected to the test point data registers 102a, 102b. Taking FIG. 1 to FIG. 3 as an example, the interrupt flag value INT_FLAG and the over-run flag value OVER_RUN stored in the test point data register 102a and the status values STATUS_0 and STATUS_1 stored in the test point data register 102b form a monitoring signal, and the monitoring signal adopts Manchester coding, which includes a prefix value PRE and the interrupt flag value INT_FLAG, the over-run flag value OVER_RUN and the status values STATUS_0 and STATUS_1 following the prefix value PRE in sequence.

在此請注意,在一些實施例中,主動式即時韌體除錯方法不具有步驟S503,且步驟S504,可以依據特定規則將複數個監測點資料暫存器中的複數運行數值的至少一部份組合,例如特定規則為將全部的複數運行數值進行組合,或將複數個監測點資料暫存器中特定幾個位元的複數運行數值做組合。Please note that in some embodiments, the active real-time firmware debugging method does not have step S503, and step S504 can combine at least a portion of the multiple running values in the multiple monitoring point data registers according to a specific rule, for example, the specific rule is to combine all the multiple running values, or to combine the multiple running values of specific bits in the multiple monitoring point data registers.

在此請注意,受測裝置透過預設的輸出接腳是以取樣時脈信號的取樣頻率依序輸出監測信號中的複數個運行數值。取樣時脈信號來自於受測裝置之外部的時脈信號源,取樣頻率為時脈信號源的時脈信號的時脈頻率的整數倍,且關聯於複數個監測點資料暫存器中的複數運行數值中要組合成該監測信號者的總數量,以圖3為例,取樣頻率為取樣頻率為時脈信號源的時脈信號的時脈頻率的5倍(監測信號包括要監測的中斷旗標值INT_FLAG、過運行旗標值OVER_RUN、狀態值STATUS_0、STATUS_1與前綴值PRE)。Please note that the device under test outputs multiple running values of the monitoring signal in sequence at the sampling frequency of the sampling clock signal through the preset output pin. The sampling clock signal comes from a clock signal source outside the device under test. The sampling frequency is an integer multiple of the clock signal frequency of the clock signal source and is related to the total number of multiple running values in the multiple monitoring point data registers to be combined into the monitoring signal. Taking Figure 3 as an example, the sampling frequency is 5 times the clock signal frequency of the clock signal source (the monitoring signal includes the interrupt flag value INT_FLAG, the over-run flag value OVER_RUN, the status values STATUS_0, STATUS_1 and the prefix value PRE to be monitored).

較佳地,為了減少佔據受測裝置的接腳,受測裝置僅透過預設的一個輸出接腳輸出監測信號,但本發明不以此為限制。然而,若受測裝置能夠使用的接腳數量夠多,受測裝置也可以透過預設的複數個輸出接腳輸出監測信號,以藉此降低取樣頻率。另外一方面,本發明是使受測裝置運行主動式即時韌體除錯方法,且韌體的執行可以交由受測裝置的執行記憶體接取(DMA)裝置,因此即使受測裝置中的處理核心未啟動(例如,盡如休眠或韌體的執行進入死結(dead lock))或不存在,主動式即時韌體除錯方法可使受測裝置仍主動持續不間斷地透過其預設的輸出接腳依序輸出監測信號中的複數個運行數值。另外,由於複數個測試點可為受測裝置的不同類型的複數個元件,因此,監測信號中的複數個運行數值並沒有類型的限制,及不具有特定屬性。Preferably, in order to reduce the pins occupied by the device under test, the device under test only outputs the monitoring signal through a preset output pin, but the present invention is not limited to this. However, if the number of pins that can be used by the device under test is sufficient, the device under test can also output the monitoring signal through a plurality of preset output pins to reduce the sampling frequency. On the other hand, the present invention enables the device under test to run an active real-time firmware debugging method, and the execution of the firmware can be handed over to the execution memory access (DMA) device of the device under test, so even if the processing core in the device under test is not started (for example, in sleep mode or the execution of the firmware enters a deadlock) or does not exist, the active real-time firmware debugging method can enable the device under test to actively and continuously output multiple running values in the monitoring signal in sequence through its preset output pins. In addition, since the multiple test points can be multiple components of different types of the device under test, the multiple running values in the monitoring signal are not limited in type and do not have specific properties.

再者,請參照圖4,圖4是本發明另一實施例之受測裝置的複數個監測點位址暫存器、複數個遮罩暫存器、複數個測試點資料暫存器與預設的輸出接腳輸出的監測信號的示意圖。本發明的主動式即時韌體除錯方法可以針對受測裝置執行多個任務的情況進行除錯。如圖4,監測點位址暫存器100a的監測點位址為位址值CURRENT_TASK_ID,其指向紀錄有目前複數個任務識別ID1~ID3之複數個運行數值的測試點資料暫存器102a,且多個監測點位址暫存器100b的監測點位址為位址值TARGET_i(i例如為1、2或3,表示有3個任務執行),其指向複數個任務識別ID1~ID3對應的複數個任務的複數個測試點資料暫存器的複數個位址。因此,在圖4中的監測信號包括前綴值PRE、任務識別ID0~ID2的運行數值與對應於任務識別ID0~ID2的三個運行數值X 1X 1X 1X 1X 1、X 2X 2X 2X 2X 2、X 3X 3X 3X 3X 3。藉此,本發明的主動式即時韌體除錯方法在時間性上具有共享功能。 Furthermore, please refer to FIG. 4, which is a schematic diagram of a plurality of monitoring point address registers, a plurality of mask registers, a plurality of test point data registers and a monitoring signal output by a preset output pin of another embodiment of the present invention. The active real-time firmware debugging method of the present invention can be used to debug the situation where the device under test executes multiple tasks. As shown in FIG4 , the monitoring point address of the monitoring point address register 100a is the address value CURRENT_TASK_ID, which points to the test point data register 102a that records the multiple running values of the current multiple task identifications ID1 to ID3, and the monitoring point addresses of the multiple monitoring point address registers 100b are the address value TARGET_i (i is, for example, 1, 2, or 3, indicating that there are 3 tasks to be executed), which point to the multiple addresses of the multiple test point data registers of the multiple tasks corresponding to the multiple task identifications ID1 to ID3. Therefore, the monitoring signal in FIG4 includes the prefix value PRE, the running values of the task identifications ID0-ID2, and three running values X1X1X1X1X1X1 , X2X2X2X2X2 , X3X3X3X3X3X3 corresponding to the task identifications ID0 - ID2 . Thus, the active real- time firmware debugging method of the present invention has a sharing function in terms of time.

綜合以上所述,本發明所提供的主動式即時韌體除錯方法與能夠執行主動式即時韌體除錯方法的受測裝置具有以下的有益技術效果:(1)不需要複雜介面,僅要預設受測裝置的一個輸出接腳即可以輸出要監測的複數個運行數值;(2)不需要增加過多的原碼內容,且可以讓韌體釋出版本(firmware release version)的韌體代碼不需要移除這些原碼;(3)除錯運行速度快,因此能夠看到連韌體都無法偵測的狀況,而且是即時的,無任何時間延遲疑慮;(4)具有彈性,可以監測受測裝置內部匯流排上任何可以存取的位址之測試點資料暫存器的運行數值,例如各種不同類型的元件的測試點資料暫存器內的運行數值,且這些運行數值可能是韌體之有限狀態機(FSM)的狀態、源程(process flow)與變數(variable)之內容;以及(5)除錯以動態量測的方式進行,受測裝置運作過程當中,可以隨時改變要觀察的對象,例如當受測裝置的系統進入休眠狀態,就開始量測中斷服務來源(interrupt source)的狀態,而當受測裝置的系統被喚醒之後,就開始量測充電器的充電狀態。In summary, the active real-time firmware debugging method and the device under test capable of executing the active real-time firmware debugging method provided by the present invention have the following beneficial technical effects: (1) no complex interface is required, and only one output pin of the device under test needs to be preset to output multiple operating values to be monitored; (2) no excessive source code content needs to be added, and the firmware release version (firmware release (3) The debugging runs fast, so it is possible to see conditions that even the firmware cannot detect, and it is instantaneous without any time delay. (4) It is flexible and can monitor the running values of the test point data registers at any accessible address on the internal bus of the device under test, such as the running values in the test point data registers of various types of components, and these running values may be the state of the firmware's finite state machine (FSM), the source code (process (5) Debugging is performed in a dynamic measurement manner. The object to be observed can be changed at any time during the operation of the device under test. For example, when the system of the device under test enters sleep mode, the status of the interrupt source is measured, and when the system of the device under test is awakened, the charging status of the charger is measured.

本發明在本文中僅以較佳實施例揭露,然任何熟習本技術領域者應能理解的是,上述實施例僅用於描述本發明,並非用以限定本發明所主張之專利權利範圍。舉凡與上述實施例均等或等效之變化或置換,皆應解讀為涵蓋於本發明之精神或範疇內。因此,本發明之保護範圍應以下述之申請專利範圍所界定者為基準。The present invention is disclosed in this article only with preferred embodiments. However, anyone familiar with the technical field should understand that the above embodiments are only used to describe the present invention and are not used to limit the scope of the patent rights claimed by the present invention. Any changes or substitutions that are equal or equivalent to the above embodiments should be interpreted as being included in the spirit or scope of the present invention. Therefore, the protection scope of the present invention should be based on the scope defined by the following patent application.

100a、100b:複數個監測點位址暫存器 101a、101b:複數個遮罩暫存器 102a、102b:測試點資料暫存器 S500~S504:步驟 0x4000_1000、0x5000_1000、CURRENT_TASK_ID、TARGET_i:位址值 PRE:前綴值 OVER_RUN:過運行旗標值 INT_FLAG:中斷旗標值 ID0~ID2:任務識別 STATUS_0、STATUS_1:狀態值 X 1X 1X 1X 1X 1、X 2X 2X 2X 2X 2、X 3X 3X 3X 3X 3:運行數值100a, 100b: multiple monitoring point address registers 101a, 101b: multiple mask registers 102a, 102b: test point data registers S500~S504: steps 0x4000_1000, 0x5000_1000, CURRENT_TASK_ID, TARGET_i: address value PRE: prefix value OVER_RUN: over-run flag value INT_FLAG: interrupt flag value ID0~ID2: task identification STATUS_0, STATUS_1: status value X1 X1 X1 X1 X1 , X2 X2 X2 X2 X2 , X3 X3 X3 X3 X3 : running value

為讓本發明之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下: 圖1是本發明實施例之受測裝置的複數個監測點位址暫存器與複數個遮罩暫存器的示意圖; 圖2是本發明實施例之受測裝置的複數個測試點資料暫存器的示意圖; 圖3是本發明實施例之受測裝置之預設的輸出接腳輸出的監測信號的示意圖; 圖4是本發明另一實施例之受測裝置的複數個監測點位址暫存器、複數個遮罩暫存器、複數個測試點資料暫存器與預設的輸出接腳輸出的監測信號的示意圖;以及 圖5是本發明實施例的主動式即時韌體除錯方法的流程圖。 In order to make the above and other purposes, features, advantages and embodiments of the present invention more clearly understandable, the attached drawings are described as follows: Figure 1 is a schematic diagram of a plurality of monitoring point address registers and a plurality of mask registers of a device under test of an embodiment of the present invention; Figure 2 is a schematic diagram of a plurality of test point data registers of a device under test of an embodiment of the present invention; Figure 3 is a schematic diagram of a monitoring signal output by a preset output pin of a device under test of an embodiment of the present invention; Figure 4 is a schematic diagram of a plurality of monitoring point address registers, a plurality of mask registers, a plurality of test point data registers and a monitoring signal output by a preset output pin of a device under test of another embodiment of the present invention; and Figure 5 is a flow chart of the active real-time firmware debugging method of an embodiment of the present invention.

S500~S504:步驟 S500~S504: Steps

Claims (10)

一種主動式即時韌體除錯方法,用以主動對一受測裝置即時監測以藉此除錯,該受測裝置具有複數個測試點,該複數個測試點對應有複數個測試點資料暫存器,每一個該測試點資料暫存器儲存對應的該測試點的複數個運行數值,以及該主動式即時韌體除錯方法包括: 依序讀取複數個監測點位址暫存器所儲存的複數個監測點位址; 依序讀取該複數個監測點位址所對應的該複數個測試點資料暫存器所儲存的該複數個運行數值; 將讀取的該複數個運行數值進行暫存於複數個監測點資料暫存器中;以及 將該複數個監測點資料暫存器中的該複數運行數值的至少一部份組合,以產生一監測信號,且使該受測裝置主動持續地透過其預設的一輸出接腳依序輸出該監測信號中的該複數個運行數值,其中該監測點資料暫存器電性連接該測試點資料暫存器。 An active real-time firmware debugging method is used to actively monitor a device under test in real time to debug it. The device under test has a plurality of test points, and the plurality of test points correspond to a plurality of test point data registers. Each of the test point data registers stores a plurality of running values of the corresponding test point. The active real-time firmware debugging method includes: Sequentially reading a plurality of monitoring point addresses stored in a plurality of monitoring point address registers; Sequentially reading the plurality of running values stored in the plurality of test point data registers corresponding to the plurality of monitoring point addresses; The plurality of operating values read are temporarily stored in a plurality of monitoring point data registers; and At least a portion of the plurality of operating values in the plurality of monitoring point data registers are combined to generate a monitoring signal, and the device under test actively and continuously outputs the plurality of operating values in the monitoring signal in sequence through a preset output pin, wherein the monitoring point data register is electrically connected to the test point data register. 如請求項1所述之主動式即時韌體除錯方法,更包括: 依序讀取對應於該複數個監測點資料暫存器的複數個遮罩暫存器所儲存的複數個遮罩信號,其中該遮罩信號具有複數個位元,該複數個位元的數值分別用於表示該監測點資料暫存器的該複數個運行數值是否被選擇成為該監測信號的一部分,且依據該複數個遮罩信號將該複數個監測點資料暫存器中的該複數運行數值的該至少一部份組合。 The active real-time firmware debugging method as described in claim 1 further includes: Sequentially reading a plurality of mask signals stored in a plurality of mask registers corresponding to the plurality of monitoring point data registers, wherein the mask signal has a plurality of bits, and the values of the plurality of bits are respectively used to indicate whether the plurality of running values of the monitoring point data register are selected as part of the monitoring signal, and combining at least a portion of the plurality of running values in the plurality of monitoring point data registers according to the plurality of mask signals. 如請求項1所述之主動式即時韌體除錯方法,其中該受測裝置透過預設的該輸出接腳以一取樣時脈信號的一取樣頻率依序輸出該監測信號中的該複數個運行數值。The active real-time firmware debugging method as described in claim 1, wherein the device under test sequentially outputs the plurality of operating values in the monitoring signal at a sampling frequency of a sampling clock signal through the preset output pin. 如請求項1所述之主動式即時韌體除錯方法,其中該受測裝置僅透過預設的該輸出接腳輸出該監測信號。The active real-time firmware debugging method as described in claim 1, wherein the device under test outputs the monitoring signal only through the default output pin. 如請求項3所述之主動式即時韌體除錯方法,其中該取樣時脈信號來自於該受測裝置之外部的一時脈信號源,該取樣頻率為該時脈信號源的一時脈信號的一時脈頻率的一整數倍,且關聯於該複數個監測點資料暫存器中的該複數運行數值中要組合成該監測信號者的一總數量。An active real-time firmware debugging method as described in claim 3, wherein the sampling clock signal comes from a clock signal source outside the device under test, the sampling frequency is an integer multiple of the clock frequency of the clock signal of the clock signal source, and is related to a total number of the multiple running values in the multiple monitoring point data registers to be combined into the monitoring signal. 如請求項1所述之主動式即時韌體除錯方法,其中即使該受測裝置中的一處理核心未啟動或不存在,該主動式即時韌體除錯方法使該受測裝置仍主動持續地透過其預設的該輸出接腳依序輸出該監測信號中的該複數個運行數值。An active real-time firmware debugging method as described in claim 1, wherein even if a processing core in the device under test is not started or does not exist, the active real-time firmware debugging method enables the device under test to actively and continuously output the multiple operating values in the monitoring signal in sequence through its default output pin. 如請求項1所述之主動式即時韌體除錯方法,其中該複數個測試點為該受測裝置中之不同類型的複數個元件。An active real-time firmware debugging method as described in claim 1, wherein the plurality of test points are a plurality of components of different types in the device under test. 如請求項1所述之主動式即時韌體除錯方法,其中該複數個監測點位址暫存器中的一第一監測點位址暫存器的一第一監測點位址指向紀錄有目前複數個任務識別之該複數個運行數值的該測試點資料暫存器,且該複數個監測點位址暫存器中的複數個第二監測點位址暫存器的複數個第二監測點位址指向該複數個任務識別對應的複數個任務的該複數個測試點資料暫存器的複數個位址。An active real-time firmware debugging method as described in claim 1, wherein a first monitoring point address of a first monitoring point address register among the plurality of monitoring point address registers points to the test point data register recording the plurality of running values of the current plurality of task identifications, and a plurality of second monitoring point addresses of a plurality of second monitoring point address registers among the plurality of monitoring point address registers point to a plurality of addresses of the plurality of test point data registers of the plurality of tasks corresponding to the plurality of task identifications. 一種受測裝置,包括電性連接的複數個硬體電路,其中該複數個硬體電路組態出一處理核心、複數個測試點、複數個測試點資料暫存器、複數個監測點位址暫存器與複數個監測點資料暫存器,其中該受測裝置用於執行主動式即時韌體除錯的步驟包括: 依序讀取複數個監測點位址暫存器所儲存的複數個監測點位址; 依序讀取該複數個監測點位址所對應的該複數個測試點資料暫存器所儲存的複數個運行數值; 將讀取的該複數個運行數值進行暫存於複數個監測點資料暫存器中;以及 將該複數個監測點資料暫存器中的該複數運行數值的至少一部份組合,以產生一監測信號,且使該受測裝置主動持續地透過其預設的一輸出接腳依序輸出該監測信號中的該複數個運行數值,其中該監測點資料暫存器電性連接該測試點資料暫存器。 A device under test includes a plurality of electrically connected hardware circuits, wherein the plurality of hardware circuits are configured with a processing core, a plurality of test points, a plurality of test point data registers, a plurality of monitoring point address registers and a plurality of monitoring point data registers, wherein the steps of executing active real-time firmware debugging on the device under test include: Sequentially reading a plurality of monitoring point addresses stored in a plurality of monitoring point address registers; Sequentially reading a plurality of operating values stored in the plurality of test point data registers corresponding to the plurality of monitoring point addresses; The plurality of operating values read are temporarily stored in a plurality of monitoring point data registers; and At least a portion of the plurality of operating values in the plurality of monitoring point data registers are combined to generate a monitoring signal, and the device under test actively and continuously outputs the plurality of operating values in the monitoring signal in sequence through a preset output pin, wherein the monitoring point data register is electrically connected to the test point data register. 如請求項9所述之受測裝置,其中該受測裝置用於執行主動式即時韌體除錯的步驟更包括: 依序讀取對應於該複數個監測點資料暫存器的複數個遮罩暫存器所儲存的複數個遮罩信號,其中該遮罩信號具有複數個位元,該複數個位元的數值分別用於表示該監測點資料暫存器的該複數個運行數值是否被選擇成為該監測信號的一部分,且依據該複數個遮罩信號將該複數個監測點資料暫存器中的該複數運行數值的該至少一部份組合。 The device under test as described in claim 9, wherein the step of performing active real-time firmware debugging of the device under test further includes: Sequentially reading a plurality of mask signals stored in a plurality of mask registers corresponding to the plurality of monitoring point data registers, wherein the mask signal has a plurality of bits, and the values of the plurality of bits are respectively used to indicate whether the plurality of running values of the monitoring point data register are selected as part of the monitoring signal, and combining at least a portion of the plurality of running values in the plurality of monitoring point data registers according to the plurality of mask signals.
TW113133040A 2024-09-02 2024-09-02 Real-time active firmware debug method and device under test TWI884076B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW113133040A TWI884076B (en) 2024-09-02 2024-09-02 Real-time active firmware debug method and device under test

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW113133040A TWI884076B (en) 2024-09-02 2024-09-02 Real-time active firmware debug method and device under test

Publications (1)

Publication Number Publication Date
TWI884076B true TWI884076B (en) 2025-05-11

Family

ID=96582151

Family Applications (1)

Application Number Title Priority Date Filing Date
TW113133040A TWI884076B (en) 2024-09-02 2024-09-02 Real-time active firmware debug method and device under test

Country Status (1)

Country Link
TW (1) TWI884076B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866922B1 (en) * 2017-02-28 2020-12-15 American Megatrends International, Llc Firmware debug trace capture using serial peripheral interface
CN114064458A (en) * 2021-10-25 2022-02-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) JTAG debugging method and system with extensible interface and universality
TWI794997B (en) * 2021-06-28 2023-03-01 慧榮科技股份有限公司 Method and apparatus and computer program product for debugging solid state disk devices
CN118227402A (en) * 2024-03-05 2024-06-21 苏州元脑智能科技有限公司 Heterogeneous computing device debugging device, method, electronic device and storage medium
CN118467340A (en) * 2024-04-12 2024-08-09 深圳市同泰怡信息技术有限公司 Instant debugging method, system, storage medium and equipment of UEFI BIOS

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866922B1 (en) * 2017-02-28 2020-12-15 American Megatrends International, Llc Firmware debug trace capture using serial peripheral interface
TWI794997B (en) * 2021-06-28 2023-03-01 慧榮科技股份有限公司 Method and apparatus and computer program product for debugging solid state disk devices
CN114064458A (en) * 2021-10-25 2022-02-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) JTAG debugging method and system with extensible interface and universality
CN118227402A (en) * 2024-03-05 2024-06-21 苏州元脑智能科技有限公司 Heterogeneous computing device debugging device, method, electronic device and storage medium
CN118467340A (en) * 2024-04-12 2024-08-09 深圳市同泰怡信息技术有限公司 Instant debugging method, system, storage medium and equipment of UEFI BIOS

Similar Documents

Publication Publication Date Title
US6145122A (en) Development interface for a data processor
US5488688A (en) Data processor with real-time diagnostic capability
US6732311B1 (en) On-chip debugger
US6167536A (en) Trace cache for a microprocessor-based device
US5951696A (en) Debug system with hardware breakpoint trap
US7783865B2 (en) Conditional data watchpoint management
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
US6009270A (en) Trace synchronization in a processor
EP0084431A2 (en) Monitoring computer systems
US6430727B1 (en) Diagnostic procedures in an integrated circuit device
EP0849668B1 (en) Diagnostics system and procedure in an integrated circuit device
MacNamee et al. Emerging on-ship debugging techniques for real-time embedded systems
US6857084B1 (en) Multiprocessor system and method for simultaneously placing all processors into debug mode
US20110307741A1 (en) Non-intrusive debugging framework for parallel software based on super multi-core framework
US5812830A (en) Debug system with raw mode trigger capability
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
US6647511B1 (en) Reconfigurable datapath for processor debug functions
GB2329048A (en) A debugger interface unit with a stepping mode
US8707267B1 (en) Debugging a computer program by interrupting program execution in response to access of unused I/O port
TWI884076B (en) Real-time active firmware debug method and device under test
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
EP1184790A2 (en) Trace cache for a microprocessor-based device
US8010774B2 (en) Breakpointing on register access events or I/O port access events
US5287522A (en) External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
US5991899A (en) Method and apparatus for a real-time diagnostic tool using a non-intrusive trace technique