最近做研究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为什么不行?这个问题之后再尝试。
版权声明:本文为博主原创文章,未经博主允许不得转载。