近期做研究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为什么不行?这个问题之后再尝试。