近期做研究openpilot和crazyflie2.0,都須要在Linux進行代碼的編寫和燒錄,所以研究了下Linux下如何使用Jlink,還有開源的支持多個仿真器的openocd,可是困難重重。總是出現錯誤。心灰意冷,之后沉下心來研究了下,記錄下心得。
首先,openocd是個通用的燒錄平台,支持多家的仿真器,比方Jlink,Ulink。ST-LINK等等。基本市面上的都支持,另外JLink本身也有DBG能夠在線調試,所以剛開始我嘗試用openocd,
環境例如以下:
1,Ubuntu1304
2,JLink和ST-LINK仿真器
步驟例如以下:
1,切換到root,插上JLink或者ST-LINK之后。使用lsusb命令能夠查看到相應的仿真器usb信息
2,安裝libusb-1.0.9,解壓安裝
./configure
make
make install
3,下載openocd0.9.0,解壓安裝,注意這里因為僅僅是用到jlink和stlink。所以configure的時候僅僅是enable了這兩個仿真器
./configure --enable-jlink --enable-st-link
make
make install
cd tcl/
假設Jlink調試stm32f1x,使用例如以下命令:
openocd -f interface/jlink.cfg -f target/stm32f1x.cfg
假設Jlink調試stm32f4x。使用例如以下命令:(測試掛了)
openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
假設ST-Link調試stm32f1x,使用例如以下命令:(我的ST-LINK是V2版本號的)
openocd -f interface/st-link-v2.cfg -f target/stm32f1x_stlink.cfg
假設ST-Link調試stm32f4x,使用例如以下命令:(我的ST-LINK是V2版本號的)
openocd -f interface/st-link-v2.cfg -f target/stm32f4x_stlink.cfg
不幸的是,紅色部分的測試掛掉,Jlink總是找不到邊界。而我終於要用的就是這樣的組合。所以僅僅能尋找其它的方法。於是我又嘗試了使用Jlink自帶的工具。
4,下載JLink_Linux_V422解壓
cd JLink_Linux_V422/
./start
Jlink插在STM32F4x的板子上,居然很順利的通過了,至於openocd為什么不行?這個問題之后再嘗試。