• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      夏傳東

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

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

      夏傳東

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

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

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

      引 言

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

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

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

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

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

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

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

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

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

      圖1 SWO配置

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

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

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

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

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

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

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

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

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

      圖3 編輯斷點(diǎn)

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

      圖4 程序運(yùn)行后的時(shí)間線窗口

      圖5 SysTick中斷

      圖6 第一次SysTick中斷

      圖7 第二次SysTick中斷

      圖8 第三次SysTick中斷

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

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

      結(jié) 語

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

      圖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.

      夏傳東(主管工程師),主要研究方向?yàn)锳RM開發(fā)平臺(tái)的軟硬件開發(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ū)動(dòng)TFT液晶屏顯示系統(tǒng)設(shè)計(jì)
      液晶與顯示(2020年5期)2020-05-06 13:46:58
      基于航拍無人機(jī)的設(shè)計(jì)與調(diào)試
      電子制作(2018年12期)2018-08-01 00:47:44
      FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      FPGA的TFT-LCD真彩液晶屏顯示控制
      無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
      電子制作(2017年19期)2017-02-02 07:08:38
      基于機(jī)器視覺的液晶屏字符缺陷檢測(cè)系統(tǒng)設(shè)計(jì)
      調(diào)壓柜的調(diào)試與試運(yùn)行探討
      基于圖像處理的電能表液晶屏質(zhì)量檢測(cè)方法
      赣州市| 尚义县| 桃江县| 贵阳市| 莱西市| 迁西县| 沅陵县| 高淳县| 雷波县| 新晃| 临高县| 大安市| 湘潭县| 平泉县| 辉县市| 松潘县| 仁布县| 三江| 台南县| 辽阳县| 平和县| 平舆县| 平定县| 宿州市| 望城县| 射洪县| 田林县| 鲁甸县| 上蔡县| 天等县| 钦州市| 武宣县| 双桥区| 瑞昌市| 长岛县| 绩溪县| 舒兰市| 阜城县| 久治县| 荣成市| 赫章县|