1.下载最新的openocd的代码

下载代码主要有两种方式:
a.从openocd的官网(http://openocd.berlios.de/web/)上下载官方发布的最新版本(0.5.0),下载网址(http://developer.berlios.de/projects/openocd/),openocd的使用文档的下载地址为http://openocd.berlios.de/web/documentation/online-docs/
    这种代码获取方式下,解压后里面直接就有配置器脚本configure
b.获取官方正在维护的最新代码(http://repo.or.cz/w/openocd.git),openocd采用的是git进行代码维护
    使用git工具将代码clone下来,git工具安装方法 $ sudo apt-get install git
    获取openocd代码的命令:
    首先cd定位到你需要git代码的位置然后执行如下命令
    $ git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd
    git完以后,定位到openocd代码的目录下执行如下命令
    $ ./bootstrap  这个命令主要是用于生成configure文件的,同时git出一些相关的代码
    上面的命令执行完毕后,就要开始使用配置器脚本生成makefile文件,这一步比较关键所以和前面一种代码获取方式相同,这里单独拿出来讲解
    2.使用配置器脚本configure生成makefile
    在openocd的源码目录下有一个readme的文件打开后有英文版的安装使用说明
这里说明一下,由于我使用的是openjtag在百问网(http://www.100ask.net/)上有相关的介绍这里就不做介绍了.
这一款jtag工具采用了ftdi公司(http://www.ftdichip.com/FTSupport.htm)的一款芯片FT2232C,这款芯片的相关介绍感兴趣的可以到它的官网上查阅相关资料
    关于查看该芯片的型号的方法:可以直接打开工具的外壳查看芯片型号,或者将确保已拔除,再插入等5s,输入$dmesg 命令可以查看到插入的设备的一些信息
    对于我的电脑如下
    [ 3330.464070] usb 6-2: new full speed USB device using uhci_hcd and address 2
    [ 3330.920844] usbcore: registered new interface driver usbserial
    [ 3330.920860] USB Serial support registered for generic
    [ 3330.920898] usbcore: registered new interface driver usbserial_generic
    [ 3330.920900] usbserial: USB Serial Driver core
    [ 3330.926470] USB Serial support registered for FTDI USB Serial Device
    [ 3330.926580] usb 6-2: Ignoring serial port reserved for JTAG
    [ 3330.926610] ftdi_sio 6-2:1.1: FTDI USB Serial Device converter detected
    [ 3330.926675] usb 6-2: Detected FT2232C
    [ 3330.926678] usb 6-2: Number of endpoints 2
    [ 3330.926680] usb 6-2: Endpoint 1 MaxPacketSize 64
    [ 3330.926682] usb 6-2: Endpoint 2 MaxPacketSize 64
    [ 3330.926684] usb 6-2: Setting MaxPacketSize 64
    [ 3330.928492] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0
    [ 3330.928515] usbcore: registered new interface driver ftdi_sio
    [ 3330.928518] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

对于如上信息可以看出该openjtag的核心芯片应该是FTDI公司提供的FT2232C,以及一些相关的信息
    为了查看关于这个USB openjtag的更加详细的信息,我们可以执行如下命令 $lsusb查看设备的相关简要信息
    我的电脑获取到如下信息
    Bus 006 Device 002: ID 1457:5118 First International Computer, Inc. OpenMoko Neo1973 Debug board (V2+)
    为了获取更加详细的信息我们可以采用如下命令
    $ sudo lsusb -v -D /dev/bus/006/002 (解释:sudo是必须的,因为访问usb的一些操作需要超级用户权限,lsusb的使用方法可以采用man lsusb查看,006对应bus 006 ,002对应Device 002)
    获取详细信息我只截取一些关键信息如下
    idVendor           0x1457 First International Computer, Inc.
    idProduct          0x5118 OpenMoko Neo1973 Debug board (V2+)
iManufacturer           1 www.100ask.net
    iProduct           2 USB<=>JTAG&RS232
    iInterface              2 USB<=>JTAG&RS232

现在知道这款openjtag工具采用的是ftdi公司的芯片,当然我们就可以需要在配置器脚本进行配置的时候加入一些相关的配置选项以支持ftdi的工具
    首先需要获取芯片的相关的驱动分别在如下网站上有下载
http://www.ftdichip.com/Drivers/D2XX.htm
http://www.intra2net.com/en/developer/libftdi/download.php
    
    直接apt-get获取稳定的版本的方式(非ftdi官方驱动)
    sudo apt-get install libftdi-dev libftdi1 libtool git-core asciidoc
如果采用直接apt-get获取的方式获得libftdi的驱动,配置器的配置选项如下(具体可以参照如下网站实现 http://fun-tech.se/stm32/OpenOCD/index.php)
    关于配置器的使用方法 可以直接运行如下命令 $./configure --help
    ./configure --enable-maintainer-mode \
            --enable-ft2232_libftdi
    --enable-maintainer-mode     enable make rules and dependencies not useful  (and sometimes confusing) to the casual installer 采用最舒适的配置方式
    --enable-ft2232_libftdi Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX 采用FTD2XX开源的驱动解决方案
    
    
    如果采用FTDI官方的驱动可以采取如下方式(官方驱动方式)
下载网址  http://www.ftdichip.com/Drivers/D2XX.htm
    下载完毕上述驱动后,名称为libftd2xx1.1.0.tar.gz
    解压后 将ftd2xx.h和WinTypes.h都拷贝到/usr/local/include/目录下,并且在/usr/include/目录下建立软链接(需要超级用户权限),主要原因是make编译的时候需要用到这些头文件
    首先进入libftd2xx1.1.0.tar.gz解压后的目录假设为 libftd2xx1.1.0
    执行如下命令
    $sudo cp ./ftd2xxx.h /usr/local/include/ftd2xx.h

$sudo cp ./WinTypes.h /usr/local/include/WinTypes.h

$sudo cp ./libftd2xx.so.1.1.0 /usr/local/lib/libftd2xx.so.1.1.0

sudo ln -s /usr/local/lib/libftd2xx.so.1.1.0 /usr/lib/libftd2xx.so

sudo ln -s /usr/lib/libftd2xx.so /usr/lib/libftd2xx.so.0

$sudo ln -s /usr/local/include/ftd2xx.h /usr/include/ftd2xx.h
    $sudo ln -s /usr/local/include/WinTypes.h /usr/include/WinTypes.h
    执行完毕后,就可以执行如下命令(之前先要进入openocd的源码目录,假设ftdi驱动文件的文件夹位于openocd源码目录下文件名为libftd2xx1.1.0)
    $ ./configure --enable-maintainer-mode\
        --enable-ft2232_ftd2xx \
        --with-ft2xx-linux-tardir=./libftd2xx1.1.0
    --enable-ft2232_ftd2xx  Enable building support for FT2232 based devices the FTD2XX driver from ftdichip.com 采用ftdichip提供的驱动文件
    --with-ft2xx-linux-tardir 后面接ftdichip公司提供的驱动文件目录

按照上面的两种方式最后都生成了所需要的makefile文件,关于配置器的一些更多的配置选项请参见配置器的帮助./configure --help
    为了避免和你之前安装的openocd冲突,你可以加入如下选项 --program-suffix=v5 ,这样的话最后生成的目标文件拷贝到系统的目录下,就会加入v5的后缀就不会覆盖之前的版本了
    
    3.编译安装使用
    编译,执行如下命令
    $make
    编译完毕后,在源码目录下的src目录下可以找到最后生成的执行文件openocd
    将openocd安装到系统目录的方式的命令如下
    $sudo make install

编译成功后直接执行src目录下的openocd,打住,这里还缺一点需要写一下配置文件
    由于这里我使用的是lpc2478的芯片,开发工具为百问网(100ask)出品的openjtag调试器这里需要编写配置文件(openocd.cfg)如下:
    interface ft2232
    ft2232_vid_pid 0x1457 0x5118
    ft2232_device_desc "USB<=>JTAG&RS232 A"
    ft2232_layout "jtagkey"

# jtag speed
    jtag_rclk 500

这里需要注意对于openocd0.4用户可以在配置文件的每个命令后进行注释
    如下 jtag_rclk 500  # jtag speed
    但是对于openocd0.5版本就不可以这样进行注释了,如果需要注释的话,必须另起一行如下
    # jtag speed
    jtag_rclk 500

解释上述配置文件的含义
    interface 表示  type of debug adapter
    可以通过sudo openocd -c interface_list 获取可用的interface的名称,这里获取到为ft2232
    ft2232_vid_pid 表示的是The vendor ID and product ID of the FTDI FT2232 device
    VendorID和ProductID这个已经在前面获取到了如下
    idVendor           0x1457 First International Computer, Inc.
    idProduct          0x5118 OpenMoko Neo1973 Debug board (V2+)
    所以配置如下 ft2232_vid_pid 0x1457 0x5118
    ft2232_device_desc 表示 Provides the USB device description (the iProduct string) of the FTDI FT2232 device. If not specified, the FTDI default value is used.
    这里前面获取到了相关的信息如下
    iProduct           2 USB<=>JTAG&RS232
    ft2232_layout表示Each vendor’s FT2232 device can use different GPIO signals to control output-enables, reset signals, and LEDs
    这里我们使用的产品是jtagkey的layout,所以这里设置为jtagkey
    jtag_rclk表示fallback speed kHz,如果使能RTCK/RCLK失败,就自动降低到设定的频率

最后按照上面的进行配置后运行如下命令(前提是在编译生成有openocd的执行文件的目录下,切编写好openocd配置文件openocd.cfg,openjtag连接到电脑)
    $sudo ./openocd
    执行结果如下
    Open On-Chip Debugger 0.5.0 (2011-09-18-21:38)
    Licensed under GNU GPL v2
    For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
    Info : only one transport option; autoselect 'jtag'
    RCLK - adaptive
    Error: unable to get latency timer: 0
    Error: ftd2xx 1.04 detected - this has known issues with FT_GetLatencyTimer, upgrade to a newer version
    Info : device: 4 "2232C"
    Info : deviceID: 341266712
    Info : SerialNumber:

Info : Description: USB<=>JTAG&RS232 A
    Info : RCLK (adaptive clock speed) not supported - fallback to 500 kHz
    Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
    Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x4f1f0f0f ..."
    Warn : AUTO auto0.tap - use "... -irlen 4"
    Warn : gdb services need one or more targets defined

参考文献
解决ftd2xxx.h找不到的问题    http://ibot.rikers.org/%23openjtag/20081228.html.gz
http://blog.ednchina.com/SimonQian/137397/message.aspx#
http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html
http://archive.cnblogs.com/a/1953251/
http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=291845&p=2255874
http://hi.baidu.com/ee_site/blog/item/de14d9445d787544510ffed5.html
http://piconomic.co.za/fwlib/index.html
http://www.downtowndougbrown.com/2011/08/cross-compiling-openocd-0-5-0-for-windows-7-64-bit-ftdis-ftd2xx-library-using-linux-and-mingw/
http://fun-tech.se/stm32/OpenOCD/index.php
http://www.plugcomputer.org/plugwiki/index.php/Setting_Up_OpenOCD_Under_Linux
http://www.tincantools.com/wiki/Compiling_OpenOCD_Linux_D2XX
Gentoo Linux USB指南 http://www.gentoo.org/doc/zh_cn/usb-guide.xml

openjtag openocd libftd2xx相关推荐

  1. linux下jtag命令,[转载]LINUX内核调试过程(使用OpenJtag + OpenOCD)

    [转载]LINUX内核调试过程(使用OpenJtag + OpenOCD) (2012-04-12 02:02:27) 标签: 杂谈 [转载]LINUX内核调试过程(使用OpenJtag + Open ...

  2. ubuntu linux下建立stm32开发环境: 程序烧录 openocd+openjtag

    原文出处: http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32开发环境,程序也已经编译好生成main.bin,接下来就是要把 ...

  3. Openjtag与Openocd

    1. Openjtag与OpenOCD简介 OpenJTag是一个开源项目(包含软件和硬件). 硬件是一个USB接口转JTag接口的适配器. 借助开源软件OpenOCD可以完成程序的烧写,调试等任务O ...

  4. openocd目录_OpenOCD的调试

    Openocd的调试步骤 1.前言 本文档仅用于学习参考.对本文档作者保留所有权利. 联系邮箱:yarakyoung@qq.com 2.工具 本文使用的软.硬件工具如下: 目标开发板:ST SPEAr ...

  5. OpenOCD的调试

    1.工具 本文使用的软.硬件工具如下: 目标开发板:ST SPEAr310 EVB 2.0 (官网www.st.com)及其交叉编译环境. 仿真器:OpenJTAG(官网www.100ask.net) ...

  6. openocd调试Linux内核,Ubuntu下配置OpenOCD+FT2232

    Ubuntu下配置OpenOCD+FT2232 [1]确认调试器方案 将调试器插到电脑上,lsusb看一下: Bus 003 Device 009: ID 1457:5118 First Intern ...

  7. 使用openocd调试Linux内核,OpenOCD-JTAG调试

    title: OpenOCD-JTAG调试 tags: ARM date: 2018-10-13 23:36:28 Todo [ ] JTAG 调试linux内核 [ ] linux下使用OpenOC ...

  8. Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用【转】

    本文转载自:http://www.linuxdiyf.com/linux/24086.html Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用 发布时间:2016-09 ...

  9. 使用openocd调试Linux内核,OpenOCD-JTAG调试(示例代码)

    目录 title: OpenOCD-JTAG调试 tags: ARM date: 2018-10-13 23:36:28 --- Todo [ ] JTAG 调试linux内核 [ ] linux下使 ...

  10. openocd (一) 概念介绍

    https://github.com/riscv/riscv-openocd 如何编译 如何使用 如何调试 jtag_add_dr_scan jtag_add_ir_scan具体的操作硬件的函数 在 ...

最新文章

  1. 一分钟详解「本质矩阵」推导过程
  2. “ static”关键字在课程中做什么?
  3. MAC下 Apache服务器配置
  4. MySQL-索引优化篇(4)_索引的维护
  5. 基于机器学习的捡球机器人设计与实现(探索)第4篇——电机驱动板选择(2019-03-02)
  6. mysql 服务端是否正常运行_如何确定mysql是否正常运行?(问题已解决:结帖)
  7. Qt之QNetworkInterface
  8. 论文阅读-语义分割(2021)-BiSeNetV3:重新思考用于实时语义分割的BiSeNet模型
  9. java mysql备份_java调用mysql服务做备份与恢复
  10. Google Earth Engine——使用climata和Python从USGS获取流数据
  11. python怎么调用外部软件_python调用其他程序
  12. 用Python实现手机抓包,获取当当图书差评数据!
  13. 这算通过审核了么?接下来还有没有什么坑,求大神指点!--酷课堂iOS交流群问答精华整理(201808期)
  14. “新产业50人论坛”之钱旭红院士:量子思维与创新发展
  15. 辅导1000多名学生后,我总结了学习数据分析的八大误区
  16. 元宇宙+DAO=ZOO-Crypto World
  17. mysql-Front有json类型恢复不了数据库解决方法Connot create a JSON value from a string with CHARACTER SET ‘binary‘
  18. 如何通过储蓄USD获得100%+年化收益
  19. 论文阅读笔记 | 三维目标检测——VoxelRCNN算法
  20. 徐州php溪谷_ThinkPHP溪谷H5游戏平台系统V3.0完整版源码源码下载

热门文章

  1. pcap文件格式及写pcap文件
  2. Java大数开根号板子
  3. 人人视频android资源比ios多,人人视频
  4. 三种CSS样式实现(内联样式、内联样式表、外联样式表)
  5. 计算机网络发展的第四阶段特点,计算机网络的发展可分为哪几个阶段?每个阶段各有什么特点?...
  6. 安装win10时,显示windows 无法安装到这个磁盘,选中的磁盘具有mbr分区表
  7. Photoshop CS6 软件安装教程
  8. 【2021亲测有效】彻底解决Google地球、Google Earth、谷歌地球启动无法连接到登录服务器、启动黑屏、无法查看历史影像图的方法
  9. java学生管理系统设计_基于JAVA学生管理系统设计和实现.ppt
  10. xtdpdgmm:动态面板数据模型一网打尽