Hi,

just finished my openocd.cfg for the Hitex LPC1768-Stick:
http://www.hitex.com/index.php?id=lpc1768-stick-details

It has an FT2232D for JTAG with "stm32stick" layout connected to
the NXP LPC1768 µC (Cortex M3).

The attached openocd.cfg contains the full configuration,
because the tcl/target/lpc1768.cfg seems to have some issues:

"arm core_state arm" is not possible on the LPC1768.
It also doesn't remap the Bootloader on Address 0x00000000
correctly. The LPC1768-Stick has only a 4 MHz
quartz crystal (needed for the flash definitio line).

A bigger issue was Reset configuration: OpenOCDs lpc1768.cfg
states: "trst_and_srst srst_pulls_trst" which seems to be correct,
BUT you cannot issue a "reset init" (unless you change the rest config
to "trst_only"). Why is there no fallback to "trst_only"...?

The reset_config "trst_and_srst separate" works for me too.

Thanks for a great jtag debugging tool,

-- J. Fischer


ps.
For Windows (7) 64 Bit Users: Hitex ships no 64 Bit drivers, and the
Tools won't install on 64 Bit Systems. But i could make FTDIs driver
work by adding the USB-IDs to the drivers inf files. My 32 Bit OpenOCD
linked to ftd2xx lib (using mingw gcc) works well on 64 Bit Windows 7 now.

#
# OpenOCD Configuration for Hitex LPC1768-Stick
#
#Interface: Hitex LPC1768-Stick
 
interface ft2232
ft2232_device_desc "LPC1768-Stick"
ft2232_layout stm32stick
ft2232_vid_pid 0x0640 0x0026

# MCU
# NXP LPC1768 Cortex-M3 with 512kB Flash and 32kB+32kB Local On-Chip SRAM, 
clocked with 4MHz internal RC oscillator

if { [info exists CHIPNAME] } {
        set  _CHIPNAME $CHIPNAME
} else {
        set  _CHIPNAME lpc1768
}

if { [info exists ENDIAN] } {
        set  _ENDIAN $ENDIAN
} else {
        set  _ENDIAN little
}

if { [info exists CPUTAPID ] } {
        set _CPUTAPID $CPUTAPID
} else {
        set _CPUTAPID 0x4ba00477
}

#delays on reset lines
jtag_nsrst_delay 200
jtag_ntrst_delay 200

# LPC2000 & LPC1700 -> SRST causes TRST
reset_config trst_and_srst separate
# reset_config trst_only srst_pulls_trst


jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 
$_CPUTAPID

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position 
$_TARGETNAME

# LPC1768 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size 0x8000 
-work-area-backup 0

$_TARGETNAME configure -event reset-init {
        
# Clock-Source internal IRC (~4MHz)
        mwb 0x400FC10C 0x00
# Disable Bootloader
#do not remap 0x0000-0x0020 to anything but the flash
        mwb 0x400FC040 0x01
}

# LPC1768 has 512kB of user-available FLASH (bootloader is located in separate 
dedicated region).
# flash bank lpc1700 <base> <size> 0 0 <target#> <variant> <cclk> 
[calc_checksum]

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 4000 
calc_checksum

# 4MHz / 6 = 666kHz, so use 500
jtag_khz 500 
 
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to