国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用J-link裸機調試stm32-f411re nucleo平臺

2019-11-09 17:32:26
字體:
來源:轉載
供稿:網友

stm32-f411re nucleo開發板本身自帶了st-link調試器子板,在Ubuntu環境下接通平臺的mini type-b usb口,執行lsusb 可以看到這里寫圖片描述

lsusb -t 可以看的更清楚,接口功能顯示出來了. 這里寫圖片描述

其中的st-link/v2.1設備(nucleo-f103rb)就是stlink調試器, 固件版本是v2.1 , 其實它本身也是一塊基于stm32的開發板,只不過內部的固件已經燒入了調試器的調試邏輯,成了一個專用的調試設備. stlink調試子板通過mini USB-type B 口開放除了三個主要功能(interfaces), 分別是: 1.st-link調試器功能. 2. com串行口,用于調試打印輸出, linux上就是 /dev/ttyACM0設備. 3.mass storage,插入平臺后PC會自動彈出mount好的目錄, 空間不大,只有500k, 里面有st的一些support文件. 4. 給nucleo主板供電. 以上三個功能都由st-link子版提供, 在pcb面積要求非常嚴格的場合,st-link子板可以切系下來,只留nucleo主板. 這樣可以節省pcb板面積.切下來的st-link就成了一個完全獨立的stlink適配器, 可以用來調試其他的兼容平臺.

前文有提到使用自帶的st-link對平臺進行裸機調試,本文介紹如何使用外界調試器(J-link)來調試nucleo主板, 相當于bypass掉st-link子板的調試功能1,只使用其他三項功能.

所需環境: 1.ubuntu14.04 with kernel 4.4.0 2.J-link with firmware v9.4, support SWD+JTAG. 3.杜邦跳線三條. 4. OpenOCD, v1.0 源碼編譯安裝,作用類似于GDBServer.

思路很簡單, stlink子板上的CN4口是6pin swd輸入口, 用來引入外部swd調試器的調試信號(根據原理圖,似乎也可以連接外部swd平臺,用子板st-link調試外部平臺,這樣來看,這個坐子既能輸入也能輸出調試信號).主機環境運行openOCD和 gdb,完成對目標nucleo板的調試.

附上部分原理圖,看得清楚 這里寫圖片描述

這里還必須注意CN2的連接, 根據原理圖和注釋,兩個跳線帽插入的時候,調試電路接通 nucleo主板, (swd調試需要兩條線, t_jtck和t_jtms,t_swo reserved. , 跳線冒存在的時候,可以看到無論st-link還是j-link,最終都會連接到nucleo主板,所以此時無論st-link子板還是jlink,調試的都是nucleo主板), 但是當跳線冒拔出后, stlink仍然連接的是nucleo主板,但從cn4過來的信號直接輸入到stlink子版的主控調試引腳中, 所以構成了 j-link調試 st-link子版,st-link子版調試 nucleo主板的兩級調試.

因為要使用j-link調試nucleo, 我們這里跳線冒是閉合的. 

這里寫圖片描述

CN4的引腳排列圖: 這里寫圖片描述

我們只需要連接2和4到 jlinl即可:

jlink的引腳排列圖 這里寫圖片描述

連接線序: 這里寫圖片描述

J-link的9,4,7,13分別和 cn4的2,3,4,6互連. 這里寫圖片描述 這里寫圖片描述

接著,開啟一個shell終端會話 執行openocd -f interface/jlink.cfg -f target/stm32f4x.cfg 這里寫圖片描述

這里jlink.cfg要修改一下,增加swd接口選擇配置,也就是在默認配置下添加下面的第12行內容 這里寫圖片描述

另開shell終端,運行gdb調試,連接 3333端口, 前文有詳細介紹,這里不在另行說明,運行后是這個樣子: 這里寫圖片描述

列舉gdb下幾個比較有用的命令: mon reset halt 從異常復位向量reset處開始執行 mon targets  查看連接設備狀態

debug的過程中遇到一個比較有意思的現象,看到國外某網站上說openOCD源文件目錄下./tcl/board目錄下有 此開發板的配置,照了一下果然有個名稱差不多的,./board/st_nucleo_f4.cfg 文件,就用它配置openOCD試了一下: 這里寫圖片描述 看到輸出沒有問題還以為jlink聯通了,然后debug了一下也可以,還以為jlink替代stlink調試OK了. 后面仔細一看輸出,interface選擇的竟然是stlink,”hla”, 不是jlink. 原因其實前文講過, 此種連接模式下無論jlink還是st-link,都連接到了mcu主板, 所以兩個調試器同時連接,也同時發揮作用, 看來默認的 st_nucleo_f4.cfg配置使用的interface是 stlink,不是jlink”, 對于這一點,下圖看的明白: 這里寫圖片描述

可以看到接口默認使用的是stlink-v2-1.cfg文件,里面將接口配置成了 hla,而不是jlink. :) ok done!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北海市| 德化县| 东莞市| 万山特区| 博罗县| 新邵县| 青龙| 焉耆| 黄骅市| 南郑县| 扬州市| 博客| 卓资县| 兰溪市| 磐石市| 定远县| 宜兰市| 长沙县| 板桥市| 上思县| 云安县| 台东县| 甘南县| 祁连县| 离岛区| 黄龙县| 巴中市| 张北县| 高州市| 阳江市| 涟水县| 尤溪县| 宁阳县| 中宁县| 乌海市| 呼图壁县| 公安县| 威远县| 合水县| 怀安县| 吉林市|