如何编译Windows下的OpenOCD
如何编译Windows下的OpenOCD
【OpenOCD介绍】
OpenOCD为嵌⼊式⽬标系统提供⼀个调试,在线编程和JTAG边界扫描测试的⼯具。⽀持Wiggler,基于FT2232的JTAG界⾯等⼀些调试器。⽬标芯⽚⽀持,, ARM10, 和Cortex等核⼼的芯⽚。并提供⼀个GDB Server接⼝。
【OpenOCD的编译和安装】
1. 如果是Windows平台的话,需要先安装Cygwin环境,注意⼀定要选择安装以下开发包:
- autoconf: Wrapper scripts for autoconf commands
- automake: Wrapper scripts for automake and aclocals
- gcc: C compiler upgrade helper
- make: The GNU version og the 'make' utility
- subversion: A version control system
(可以完全安装,占⽤5G多的空间,需要下载800M的⽂件)。
2. 下载OpenOCD的SVN源代码,打开Cygwin,执⾏如下的命令:
mkdir /home/openocd
cd /home/openocd
svn checkout svn://svn.berlios.de/openocd/trunk 或是
svn checkout  trunk
下载需要⼀定的时间,完成后,下就多了trunk⽬录,⾥⾯就有源代码。
3. 如果你想要编译⽤於FT2232接⼝的openocd,需要下载FTDI的驱动
解压后会⾃动⽣成⼀个⽂件夹"CDM 2.04.06 WHQL Certified" , 从/或/中(根据你的系统来选择)复制 ftd2xx.lib到/home/openocd/ftd2xx(⾃⼰建⽴)中。现在在openocd⽂件夹下就有两个⽂件夹,如下:
/home/openocd/trunk
/home/openocd/ftd2xx
4. 接着使⽤如下命令配置并编译:
cd trunk
./bootstrap
如果你想⽣成⼀个基於cygwin的openocd,则输⼊
./configure --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx
⽣成⼀个基於mingw 的openocd,则输⼊
./configure --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx CC="gcc -mno-cygwin"
如果想同时⽀持FT2232和Wiggler,则输⼊
./configure --enable-parport –enable-parport_giveio --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx CC="gcc -mno-cygwin"
正确配置之后,就可以运⾏以下命令⽣成 OpenOCD:
make // 即可在/trunk/src中⽣成openocd
make install // 将openocd和配置⽂件安装到/usr/local/bin和/usr/local/lib中
make pdf // 在/trunk/doc中⽣成pdf (必须安装tex)
这样OpenOCD就编译并安装完成了,并在doc⽬录下⽣产了openocd.pdf帮助⽂档。
可以使⽤命令"openocd -v"来查看版本。
【OpenOCD的配置】
详细配置说明,请参考帮助⽂档
LPC2000的配置⽂件(openocd.cfg):
#daemon configuration
telnet_port 4444
gdb_port 3333
tcl_port 6666
# tell gdb our flash memory map
# and enable flash programming
gdb_memory_map enable
gdb_flash_program enable
gdb_flash_program enable
#interface
interface ft2232
ft2232_device_desc "USB Serial Converter A"
#ft2232_device_desc "USB OpenOCD JTAG A"
ft2232_layout "usbjtag"
ft2232_vid_pid 0x0403 0x6010
jtag_speed 3
#jtag_khz 300
#delays on reset lines
jtag_ntrst_delay 200
# NOTE LPCs need reset pulled while RTCK is low. 0 to activate
# JTAG, power-on reset is not enough, i.e. you need to perform a
# reset before being able to talk to the LPC2148, attach is not
# possible.
#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config trst_and_srst srst_pulls_trst
#LPCs need reset pulled while RTCK is low. 0 to activate JTAG, power-on reset is not enough
jtag_reset 1 1
jtag_reset 0 0
#jtag scan chain
jtag_device 4 0x1 0xf 0xe
target tdmi little 0 tdmi-s_r4
[new_target_name] configure -event reset-init {
# Force target into ARM state
soft_reset_halt
#do not remap 0x0000-0x0020 to anything but the flash
mwb 0xE01FC040 0x01
}
working_area 0 0x40000000 0x4000 nobackup
#flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765
【OpenOCD的测试】
打开Cygwin,执⾏命令:
openocd -f openocd.cfg
以下是我的运⾏截图:
windows开发平台
【IAR的配置】
在项⽬选项的Debug中的setup页⾥,选择GDB Server;
如果代码需要下载到flash中运⾏,Download页⾥选择Use flash loader;在plugin页⾥,可以去掉stack以提⾼速度。在下⾯的GDB Server中, address or hostname中添localhost。
之后就可以按调试按钮开始调试了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。