国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談ST-LINK調(diào)試器的時間線調(diào)試技巧

2017-09-03 09:22夏傳東
關(guān)鍵詞:液晶屏中斷調(diào)試

夏傳東

(英格索蘭亞太工程技術(shù)中心,上海200051)

淺談ST-LINK調(diào)試器的時間線調(diào)試技巧

夏傳東

(英格索蘭亞太工程技術(shù)中心,上海200051)

介紹了使用ST-LINK調(diào)試器調(diào)試STM32系列單片機的時間線功能及在EWARM集成開發(fā)環(huán)境中的參數(shù)設(shè)置技巧,以及一個在直流無刷電機控制系統(tǒng)中定位與時間相關(guān)的軟件問題的應(yīng)用實例。實驗結(jié)果表明,ST-LINK系列調(diào)試器以低廉的價格,提供了強大的調(diào)試功能,可以快速定位軟件的問題,提高軟件開發(fā)的效率與質(zhì)量。

STM32;ST-LINK;時間線;調(diào)試器

引 言

在一個復(fù)雜控制系統(tǒng)的軟件開發(fā)過程中,代碼調(diào)試是其中的關(guān)鍵一環(huán),一個功能強大、易學(xué)易用的調(diào)試器可以提高代碼調(diào)試的效率,收到事半功倍的效果。

STM32系列是意法半導(dǎo)體公司推出的基于ARM Cortex-M內(nèi)核的32位單片機,具有強大的功能,一般可以使用Segger公司的JLINK系列調(diào)試器用于開發(fā)工作,但其價格較貴。為此,意法半導(dǎo)體公司推出了ST-LINK系列在線調(diào)試器/編程器,價格十分低廉,且支持的調(diào)試功能并不比JLINK遜色,而且,若干STM32系列單片機的開發(fā)板(例如:STM32072B-EVAL、STM3220G-EVAL、STM32303E-EVAL等)均內(nèi)置ST-LINK/V2調(diào)試器,大大地方便了軟件開發(fā)工作。

筆者參與某項目的一款直流無刷電機控制板設(shè)計工作,使用了一個STM32F407單片機, 本文結(jié)合其調(diào)試工作,介紹ST-LINK調(diào)試器調(diào)試STM32單片機時間線(Timeline)的技巧。

1 ST-LINK調(diào)試器的時間線功能簡介

ST-LINK調(diào)試器配合IAR公司開發(fā)的EWARM集成開發(fā)環(huán)境使用時, 可以在時間線窗口顯示數(shù)據(jù)記錄圖(Data Log Graph)和中斷記錄圖(Interrupt Log Graph)。具體詳細介紹可以查看參考文獻[4]的第2部分“分析你的應(yīng)用程序—跟蹤”。與早期的仿真器/調(diào)試器相比,借助這兩張圖,軟件開發(fā)者就可以在程序全速運行時以圖形方式非常直觀地觀察指定數(shù)據(jù)的變化情況、中斷的發(fā)生及持續(xù)時間,大大地方便了軟件調(diào)試工作。

2 ST-LINK調(diào)試器的時間線功能設(shè)置

在EWARM集成開發(fā)環(huán)境中選擇Project>>Options…,打開項目設(shè)置對話框,在Debugger類的Setup頁中,從Driver下拉框中選擇“ST-LINK”。

然后在ST-LINK類的Interfaces單選框中選擇SWD,CPU clock文本框中填入CPU 時鐘頻率,SWO clock復(fù)選框中選擇Auto。請注意CPU 時鐘頻率值務(wù)必填寫準確,否則會造成時間線窗口的時間坐標值不準確。

對項目文件進行編譯,無錯誤后在EWARM集成開發(fā)環(huán)境中選擇Project>>Download and Debug,即啟動ST-LINK調(diào)試器。選擇ST-LINK>>SWO Configuration…,打開SWO配置對話框,從Rate下拉框中選擇“11718”,從Data Log Events單選框中選擇“PC + data value + base addr”,如圖1所示。請注意Rate值不宜設(shè)置的太大,否則會數(shù)據(jù)溢出,影響時間線窗口的正常顯示。

圖1 SWO配置

選擇ST-LINK>>SWOTrace Window Settings…,打開SWO跟蹤窗口設(shè)置對話框,取消所有復(fù)選項,如圖2所示。

圖2 SWO跟蹤窗口設(shè)置

選擇ST-LINK>>Timeline,即出現(xiàn)空白的時間線窗口。

3 利用時間線功能調(diào)試單片機程序的實例

某直流無刷電機控制程序使用STM32F407單片機內(nèi)置的SysTick定時器作為任務(wù)調(diào)度以及所有軟件延時的時間基準,其頻率設(shè)置為2 000 Hz;同時設(shè)置液晶屏顯示的刷新頻率為10 Hz,單片機上電后對液晶屏初始化,軟件延時1 s后開啟顯示。

在軟件開發(fā)的初期階段,發(fā)現(xiàn)液晶屏的顯示會出現(xiàn)隨機性的異常。為了核對液晶屏的初始化時序,使用ST-LINK調(diào)試器的時間線功能可以獲得精確的時間信息,為問題的定位提供了很大的便利。

在程序中使用了一個名為LCD_welcome_message_UI_counter的變量,它被初始化為10,每100 ms減1,到0時開啟液晶屏顯示。為了獲得這個變量隨時間變化的信息,可以在EWARM集成開發(fā)環(huán)境中選擇View>>Breakpoints,在Breakpoints窗口中用右鍵菜單選擇New Breakpoint>>Data Log,在彈出的編輯斷點對話框中輸入此變量的信息,如圖3所示。

在EWARM集成開發(fā)環(huán)境中選擇Debug>>Go,程序會全速運行,與此同時,時間線窗口也會同步更新。約2 s后選擇Debug>>Break,暫停程序的運行,此時時間線窗口顯示如圖4所示,其上部為變量LCD_welcome_message_UI_counter的動態(tài)變化圖,下部為SysTick中斷的動態(tài)變化圖。

程序要求的SysTick中斷每500 μs發(fā)生一次,將圖4放大后顯示如圖5所示。SysTick中斷的發(fā)生過程在時間軸上被連續(xù)且均勻地記錄了下來,目測兩次SysTick中斷的間隔為500 μs,因此可以判斷其行為與預(yù)期基本吻合。

圖3 編輯斷點

為了更準確地獲得SysTick中斷的時間信息,將圖5放大,鼠標經(jīng)過中斷發(fā)生的區(qū)域時會顯示每次中斷發(fā)生的詳細信息。第一次、第二次、第三次中斷詳細信息分別如圖6~圖8所示。第一次、第二次、第三次中斷發(fā)生的時間分別為68.74 μs、568.93 μs、1068.74 μs, 第二次與第一次之間的實際時間與理論值有0.19 μs的誤差,相對誤差為0.038%,第三次與第一次之間的實際時間與理論值完全吻合。據(jù)此,可以認為程序?qū)ysTick中斷的設(shè)置正確,與設(shè)計要求完全吻合。

圖4 程序運行后的時間線窗口

圖5 SysTick中斷

圖6 第一次SysTick中斷

圖7 第二次SysTick中斷

圖8 第三次SysTick中斷

應(yīng)用同樣的方法,可以獲得對變量LCD_welcome_message_UI_counter執(zhí)行寫操作的詳細時間信息,分別如圖9~圖12所示。第1次、第2次、第3次、第11次寫操作發(fā)生的時間分別為75.81 μs、407 094.48 μs、506 030.86 μs、1 298 215.24 μs, 第1次寫操作在程序初始化時將其賦值為10;定時器啟動以后每100 ms操作將其值減1,直到為0。第3次與第2次之間的實際時間與理論值有-1063.62 μs的誤差,相對誤差為-1.063 62%;第11次與第2次之間的實際時間與理論值有-8 879.24 μs的誤差,相對誤差為-0.986 58%。

據(jù)此,可以認為程序通過軟件延時對變量LCD_welcome_message_UI_counter的操作在時域的誤差較大,因此導(dǎo)致液晶屏的顯示出現(xiàn)問題。經(jīng)修改相關(guān)的程序后,減小了對變量LCD_welcome_message_UI_counter的操作延時誤差,將相對誤差的最大值降低到0.2%,程序經(jīng)過1 000次的反復(fù)測試,液晶屏的顯示沒有一次出現(xiàn)隨機性的異常,可以認為軟件的問題已經(jīng)得到修復(fù)。

結(jié) 語

ST-LINK系列調(diào)試器以低廉的價格提供了強大的調(diào)試功能,可以快速定位軟件的問題,提高軟件開發(fā)的效率與質(zhì)量。在實際使用ST-LINK系列調(diào)試器的時間線調(diào)試功能時,需要使用者在EWARM集成開發(fā)環(huán)境中注意以下選項的正確設(shè)置,否則會影響調(diào)試效果:CPU 時鐘

圖10 變量LCD_welcome_message_UI_counter第二次寫操作

圖11 變量LCD_welcome_message_UI_counter第三次寫操作

圖12 變量LCD_welcome_message_UI_counter第十一次寫操作

[1] STMicroelectronics.STM32F405/415,STM32F407/417,STM32F427/437 and STM32F429/439 advanced ARM-based 32-bit MCUs,2012.

[2] STMicroelectronics.STM32F405xx STM32F405xx Datasheet,2012.

[3] STMicroelectronics.STM32 PMSM FOC SDK 4.2 Hands-on workshop with hardware tools,2012.

[4] IAR Systems AB.IAR Embedded Workbench C-SPY Debugging Guide for Advanced RISC Machines Ltd’s ARM cores,2007.

夏傳東(主管工程師),主要研究方向為ARM開發(fā)平臺的軟硬件開發(fā)。

Brief Introduction of ST-LINK Timeline Debugging Skills

Xia Chuandong

(Ingersoll Rand Engineering&Technology Center-Asia Pacific,Shanghai 200051,China)

In the paper,the ST-LINK’s timeline feature,setup skills in EWARM IDE for STM32 series MCUs are studied,and the application case of fixing one time related bug on the DCBL motor control software is introduced.The experiment results show that the ST-LINK debugger can provide a powerful debugging function,you can quickly locate the software problems and improve the efficiency and quality of the software development.

STM32;ST-LINK;timeline;debugger

TP332.3

A

?士然

2017-03-21)

猜你喜歡
液晶屏中斷調(diào)試
基于STM32F4的多通道串口驅(qū)動TFT液晶屏顯示系統(tǒng)設(shè)計
基于航拍無人機的設(shè)計與調(diào)試
FOCAS功能在機床調(diào)試中的開發(fā)與應(yīng)用
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
FPGA的TFT-LCD真彩液晶屏顯示控制
無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
基于機器視覺的液晶屏字符缺陷檢測系統(tǒng)設(shè)計
調(diào)壓柜的調(diào)試與試運行探討
基于圖像處理的電能表液晶屏質(zhì)量檢測方法