亚洲国产成人av在线观看,777米奇色狠狠狠888影视,一二三四在线视频观看社区,小荡货奶真大水真多紧视频

【ARM】MDK實現(xiàn)Logic Analyzer功能查看變量的變化情況

一、文檔背景

對于工程中變量的變化情況,是大部分工程師在項目開發(fā)過程中經(jīng)常需要注意的。而目前大部分的工程師的做法一般都是通過串口打印變量的值,通過打印出來的變量值的情況從而去判斷變量的變化是否正常。這樣的方式,只是展示當前時刻變量的值而已,而對于變量的變化情況并不直觀。

Keil MDK的Logic Analyzer功能是一種強大的調(diào)試工具,允許開發(fā)者實時觀察和分析嵌入式系統(tǒng)中的變量、寄存器和內(nèi)存位置的變化情況。通過圖形化的波形顯示,開發(fā)者可以直觀地查看數(shù)據(jù)隨時間的變化,幫助識別代碼運行中的邏輯問題和性能瓶頸。這種可視化的調(diào)試方式大大提高了開發(fā)和調(diào)試效率,尤其在處理復(fù)雜的嵌入式系統(tǒng)時,能更迅速地定位和解決問題,確保系統(tǒng)穩(wěn)定高效運行。


二、 Logic Analyzer功能的實現(xiàn)

(一) 、軟硬件環(huán)境:

1. 軟件環(huán)境:Keil MDK 5.38a

2. 硬件環(huán)境:ULINK Pro、STM32F103開發(fā)板

3. 電腦環(huán)境:windows 11

(二) 、Logic Analyzer功能的使能:

1. 要想啟動Logic Analyzer功能,需要使能仿真器的Trace功能(如圖2-1)。

注意:Logic Analyzer功能在這里使用的SW接口進行調(diào)試,非ETM接口。Logic Analyzer功能使能Trace的時候勾選Trace Enable選項即可,和性能分析、代碼覆蓋率不一樣,不需要芯片具備Trace數(shù)據(jù)端口。


圖2-1


(三) 、Logic Analyzer功能的使用

1. Logic Analyzer窗口可以通過菜單中View->Analysis Windows->Logic Analyzer去打開(如圖2-2),或者可以通過工具欄中System Analysis WIndows的圖標去打開Logic Analyzer窗口(如圖2-3)。


圖2-2


圖2-3



2. 想要將變量添加到Logic Analyzer窗口中,可以在代碼中直接選中對應(yīng)的變量,然后,右鍵選擇Add ‘xxx’ to ...->Analyzer。然后,我們就可以在Logic Analyzer窗口中看到變量被添加到進去了(如圖2-4)?;蛘咭部梢酝ㄟ^watch窗口中去添加(如圖2-5)。

圖2-4


圖2-5

3. 如果在前面的步驟中沒有使能Trace功能的話,在添加變量到Logic Analyzer窗口時候就會提示“Cannot Add ‘xxx’ to Logic Analyzer”,并且在Command窗口中會提示“*** error 129: Trace is disabled!”(如圖2-6)。

圖2-6

4. 添加好變量到Logic Analyzer窗口后,運行程序后,就會顯示出當前變量的變化情況了。(如圖2-7)注意:這里不會實時顯示波形,需要程序停止運行后,才會顯示出波形。并且只能顯示全局變量和靜態(tài)變量的變化情況。

圖2-7

三、Logic Analyzer窗口解析

圖3-1

(一) 、上圖就是整個Logic Analyzer窗口的。窗口中主要由工具欄和顯示窗口組成的。

(二) 、工具欄包含以下的內(nèi)容

1. Setup按鈕:打開一個Setup Logic Analyzer對話框來定義用于記錄和配置信號輸出的變量??梢酝ㄟ^信號的上下文菜單更改一些配置設(shè)置。(如圖3-2)

a) Current Logic Analyzer Signals:顯示當前被添加到 Logic Analyzer 中的變量或者信號

b) Signal Display:配置信號波形的外觀。

i) Display Type:設(shè)置信號顯示輸出模式為Analog(模擬量)、BIt(0或1)或狀態(tài)量(信號轉(zhuǎn)換)。根據(jù)數(shù)據(jù)的類型選擇即可。

ii) Color:選擇數(shù)據(jù)信號波形顯示的顏色

iii) Hexadecimal Display:顯示以HEX格式顯示信號值。當禁用時,顯示十進制值。

c) Display Range:顯示類型模擬配置信號幅度范圍。范圍值可以用十六進制或十進制格式指定。

i) Max:波形顯示的最大值

ii) Min:波形顯示的 最小值

d) Display Formula(signal & Mask)>> Shift:顯示信號值的特定位

i) And Mask:顯示的信號值指定與掩碼

ii) Shift Right:顯示的信號值指定右移因子

e) Export/Import:

i) Export Signal Definitions:將當前的信號定義(不是信號記錄)保存在一個“*. uvl”文件中。

ii) Import Signal Definitions:導(dǎo)入先前保存在“. uvl”文件中的信號定義。

f) Kill All:清除Logic Analyzer中的全部信號。


圖3-2

2. Load:將之前記錄并保存的信號導(dǎo)入到文件(*. UVLA)中。(如圖3-3)

3. Save:將信號以專有格式(.UVLA)存儲在一個文件中,或者以逗號分隔的文件格式(.CSV),或以制表符分隔的文件格式(*.TAB)存儲,以便將來進行分析。(如圖3-3)



圖3-3


4. 時間字段顯示(如圖3-4)

a) Min Time:設(shè)置顯示的信號記錄緩沖區(qū)中的第一個時間戳。當μVision記錄信號時,時間從零開始,并不斷向前滾動。

b) Max Time:信號記錄緩沖區(qū)的最后一個時間戳。它顯示自信號記錄開始的時間。

c) Grid:設(shè)置兩條柵格線之間的時間間隔。

圖3-4


5. Zoom縮放按鈕改變顯示的時間范圍(如圖3-5):

a) In:放大信號以獲得參考線的詳細視圖。兩條網(wǎng)格線之間的時間間隔變小了。

b) Out:將信號放大,以便更好地查看參考線。兩條網(wǎng)格線之間的時間間隔變大。

c) All:顯示了信號記錄緩沖區(qū)的完整內(nèi)容。



圖3-5


6. Min/Max按鈕配置顯示的信號幅度范圍(如圖3-6)

a) Auto:根據(jù)信號記錄緩沖數(shù)據(jù)自動配置信號幅度范圍。

b) Undo:可恢復(fù)在單擊“Auto”按鈕之前存在的幅度范圍設(shè)置。


圖3-6


7. Update Screen按鈕用于刷新、停止或清除屏幕內(nèi)容。(如圖3-7)

a) Start/Stop:Stop停止更新顯示。μVision繼續(xù)填充信號記錄緩沖區(qū)。單擊按鈕時,該按鈕將其樣板文本更改為Start。Start用來自信號記錄緩沖區(qū)和傳入數(shù)據(jù)的數(shù)據(jù)更新顯示。單擊按鈕時,該按鈕將其樣板文本更改為Stop。

b) Clear:清空屏幕和數(shù)據(jù)緩沖區(qū)。



圖3-7


8. Transition按鈕將參考線固定到下一個過渡點。(如圖3-8)

a) Priv:將參考線移動到前一個過渡點。

b) Next:將參考線移動到后續(xù)的過渡點。

圖3-8


9. Jump to按鈕可導(dǎo)航到與鼠標光標對應(yīng)的代碼或跟蹤數(shù)據(jù)。(如圖3-9)

a) Code:打開導(dǎo)致信號轉(zhuǎn)換的代碼行處的反匯編或源代碼窗口。當程序計數(shù)器值被記錄時,該按鈕處于活動狀態(tài)。

b) Trace:打開“Trace Data”和“Trace Navigation”窗口。跟蹤記錄與邏輯分析器同步。



10. SIgnal Info:當鼠標懸停在信號點上時,信號信息啟用信號細節(jié)。(如圖3-10)

11. Show Cycles:啟用周期信息,這些信息顯示在時間戳軸中。(如圖3-10)

12. Amplitude:啟用參考振幅線,當Cursor啟用時,也啟用鼠標振幅線。(如圖3-10)

13. Cursor:使鼠標光標行能夠顯示鼠標位置的信號值,并與參考行進行增量。(如圖3-10)

14. Timestamps Enable:啟用動態(tài)激活時間戳。(如圖3-10)


(如圖3-10)


四、討論分析

1. Logic Analyzer可以添加什么信號或者變量?

可以添加靜態(tài)變量和全局變量??梢蕴砑釉赟ymbol Windows的各個端口的值。


圖4-1


2. 關(guān)于端口值的變化如何查看?

請參考:0101TEC20230814-Keil MDK-邏輯分析




五、結(jié)論

Keil MDK的Logic Analyzer功能,可以有效地降低客戶在對于數(shù)據(jù)或者端口數(shù)據(jù)的檢測的工作難度。通過Logic Analyzer功能,直觀地通過波形就可以分析出變量的波動情況。確認是否存在數(shù)據(jù)異常的狀態(tài)。還可以有參考性地根據(jù)時間戳判斷異常發(fā)生的時間等信息。