×
嵌入式 > 嵌入式开发 > 详情

ubuntu下安装openocd ,利用Openocd + Jlink 调试ARM

发布时间:2020-08-06 发布时间:
|
1.下载openocd
2.解压
3.进入解压之后的目录 cd /openocd-0.5.0
4.进行配置 ./configure --enable-jlink
这个时候出现错误提示 找不到usb.h,原因是没有安装libusb的库
下面安装Libusb库
5.sudo apt-get install libusb++-dev
安装完之后重新执行第四步操作 ./configure --enable-jlink,此时配置成功
6.make 编译
7.make install
以上这些步骤完成之后,如果我们要使用openocd,还需要进行配置,那就是编写一个配置文件openocd.cfg
配置完之后。执行openocd ,出错,提示Error:Cannot find jlink interface.please check connection and permission .
这种错误的原因有可能是系统没有识别usb。但是我在系统中已经安装过libusb。那为什么会这样。后来发现是这样的,我的ubuntu是装在virtualbox虚拟机上的,在虚拟机中我没有为之分配一个Usb设备,所以导致这样。于是通过虚拟机上的图标为之分配一个usb设备,再输入此命令。jlink就识别了。
但是并不是完全通过的。虽然可以识别jlink了,但是输入命令openocd之后,仍有一些错误信息。如下图
上图所示错误 arm11 target JTAG error SCREG OUT 0x00.unexpected ARM11 ID code .我想应该是jlink固件版本的问题吧。
上图用的是Jlink v7固件。之后,我将固件Jlink v8烧写到jlink 中。出现如下错误:
后来几经周折,解决掉此问题。总结如下:
原因有三:一是Jlink固件版本问题。用v7的话会有提示:Arm11targetJTAGerrorscregout0x00;二是用户权限问题,不要再普通用户下执行openocd命令 ,而换做在超级用户下执行 ;三则是配置文件问题,在自带的jlink.cfg文件中加入jtag时钟配置。使用openocd 自带的配置文件(在安装目录下)/usr/local/share/openocd/scripts/interface/jlink.cfg ,和/usr/local/share/openocd/scripts/target/samsung_s3c6410.cfg .其中jlink.cfg 中添加一句时钟约束语句 : jtag_khz 250
运行命令: openocd -f jlink.cfg -f samsung_s3c6410.cfg
结果如图:
ok ,done



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
scsi接口