<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        STM32 Cortex 單片機 SWD 下載方式調試筆記

        作者:真誠冰雪天涯   來源:真誠冰雪天涯   點擊數:  更新時間:2014年06月17日   【字體:
        一、SWD 下載方式根據編程器的版本分為以下幾種:

        1. 市面上的常用仿真器對 SWD 模式支持情況

                (1) JLINKV6 支持 SWD 仿真模式, 速度較慢。

                (2) JLINKV7 比較好的支持 SWD 仿真模式, 速度有了明顯的提高,速度是 JLINKV6 6 倍。 

                (3) JLINKV8 非常好的支持 SWD 仿真模式, 速度可以到 10M。

                (4) ULINK1 不支持 SWD 模式。

                (5) 盜版 ULINK2 非常好的支持 SWD 模式, 速度可以達到 10M。

                (6) 正版 ULINK2 非常好的支持 SWD 模式, 速度可以達到 10M。

        2. SWD 硬件接口上的不同

                (1) JLINKV6 需要的硬件接口為: GND, RST, SWDIO, SWDCLK

                (2) JLINKV7 需要的硬件接口為: GND, RST, SWDIO, SWDCLK

                (3) JLINKV8 需要的硬件接口為: VCC, GND, RST, SWDIO, SWDCLK (注:下面有我自己用JLINKV8的實際連線及相應實驗結果)

                (4) ULINK1 不支持 SWD 模式

                (5) 盜版 ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK

                (6) 正版 ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK

            由此可以看到只有 JLINKV8 需要 5 個引腳, 即多了一個VCC引腳,其好處是: 仿真器對目標板子的仿真需要用到 RST 引腳, 使用仿真器內部的 VCC 作這個功能其實并不是非常美妙。 因此,JLINKV8 選擇了只和目標板共 GND, 但不共 VCC。 因此我覺得這種模式最合理, 當然通常情況下仿真器和目標板共 GND VCC 是沒有錯的。(編者備注:以上這段話源自網絡,實際測試中不接RST引腳,仿真能正常工作,未發現異常。

          

        測試環境

        MDK 開發環境 版本號:V4.22              編程器:J-Link V8 4.35b

        J-Flash ARM 燒寫軟件版本號:V4.02e      目標板芯片:STM32F101R8       PC操作系統:Windows XP

         

         

        接線模式

        功能狀態            

        VCC、SWDIO、SWCLK

        GND 2根信號線對電源上拉10K電阻,此電阻在我們的小轉接板上)

        VCC、SWDIO、SWCLK

        GND 2根信號線對電源上拉10K電阻,此電阻在我們的小轉接板上未焊接)

        VCC、SWDIO、SWCLK

        RST、GND

        SWDIO、SWCLK 、GND

        VCC、SWDIO、SWCLK

        MDK 下載及仿真

        正常

        正常

        正常

        不能下載

        不能下載

        MDK  J-Link 速度500KHZ

        正常

        正常

        正常

        不能下載

        不能下載

        MDK  J-Link 速度1MHZ

        不穩定

        不穩定

        不穩定

        不能下載

        不能下載

        下載時目標板是否需手動重啟

        不需要

        不需要

        不需要

        \

        \

        J-Flash ARM 下載

        正常

        正常

        正常

        不能下載

        不能下載

        MDK\options\Debug\setting

        \SW device 窗口

        能正常識別芯片ID  0X1BA01477

        能正常識別芯片ID  0X1BA01477

        能正常識別芯片ID  0X1BA01477

        未能識別出芯片ID

        未能識別出芯片ID

         

        備注:我用2個編程器對以上情況分別進行了測試,一個編程器是未進行升級的,另一個編程器進行了升級(升級到了4.80b),但升級最后時出現點小問題在4.7.3MDK下仿真有問題。未升級的編程器按照上述方法進行SWD下載,功能正常,但是那個升級過的編程器無法采用SWD下載,在MDK\options\Debug\setting\SW device 窗口 識別器件ID時總出現如下圖片:

        原因分析:可能是升級過的編程器自身有問題,但這個編程器在4.22MDK下用JTAG方式能夠正常下載及仿真。

          

        二、使用J-Flash ARM 下載時一些問題

           打開該軟件,配置完工程設置,連接目標器件時,經常出現如下問題(見圖片):

         

        原因分析:出現此類情況,表明軟件與J-Link仿真器未能成功連接,但此時J-Link MDK 下卻仍能正常使用。解決此類問題的最有效方法是重啟電腦,有時多插拔幾次J-Link 編程器也能解決,有時把同時開著的MDK 關閉后,重新插拔J-Link也能解決。判斷此種故障一方面是編程器自身原因,一方面是電腦安裝的SEGGER 公司的J-Link 驅動軟件版本低,還有一種可能就是J-LinkMDK 占用了。

           另請注意,使用J- Flash ARM 下載時 Options\Project settings\Target Interface\SWD \SWD speed after init 要選擇“Auto selection”,若手動指定速度時容易出錯(實驗時手動指定速度超過600KHZ ,編程就出錯)。 ”SWD speed before init ”速度則既可以自動也可以手動指定(手動指定為1200KHz 也能正常初始化內核)。

         

          通過調用 J-Link commander 程序,可以判斷PC機與J-Link 編程器是否正常連接。

        正常連接時,如下圖:


        未正常連接時如下圖:


        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮