openocd/src/jtag/drivers/OpenULINK
Martin Schmölzer e68f4b77f9 OpenULINK firmware: update firmware hex image
This image has been re-compiled with SDCC 3.3.0 and achieves slightly better
performance (50-100 Byte/s for STM32F103 flash write) due to new/improved
compiler optimizations.

Successfully tested with ULINK probe and STM32F103 (debug, erase and write
flash).

Change-Id: I4329aa42f50461fa3719fd63d0054d8e86982727
Signed-off-by: Martin Schmölzer <martin.schmoelzer@student.tuwien.ac.at>
Reviewed-on: http://openocd.zylin.com/1486
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-07-17 14:31:19 +00:00
..
include ULINK driver and OpenULINK firmware: whitespace and comment fixes (trivial) 2013-07-17 14:31:00 +00:00
src OpenULINK firmware: Use C99 designated struct initializers 2013-07-17 14:31:08 +00:00
Makefile OpenULINK firmware: change .lnk file extension to .lk in "make clean" 2013-07-17 14:31:13 +00:00
README Add OpenULINK firmware 2011-06-26 17:43:51 +02:00
ulink_firmware.hex OpenULINK firmware: update firmware hex image 2013-07-17 14:31:19 +00:00

README

This is the OpenULINK firmware for the Keil ULINK JTAG adapter.

The main components of the Keil ULINK adapter are:
- Cypress EZ-USB microcontroller: enhanced 8051 CPU + USB core (1.1 Full-Speed)
- SRAM memory chip
- Level shifters to support different JTAG signal voltage levels
- Pin headers for various JTAG pin assignments

This firmware can only be run on the ORIGINAL Keil ULINK adapter, not on the
newer ULINK2, ULINK-ME or ULINK-PRO, as these adapters are based on different
hardware.

To compile the firmware, the SDCC compiler package is required. Most Linux
distributions include SDCC in their official package repositories. The SDCC
source code can be found at http://sdcc.sourceforge.net/
Simply type "make hex" in the OpenULINK directory to compile the firmware.
"make clean" will remove all generated files except the Intel HEX file required
for downloading the firmware to the ULINK adapter.

Note that the EZ-USB microcontroller does not have on-chip flash, nor does the
Keil ULINK include on-board memory to store the firmware program of the EZ-USB.
Instead, upon initial connection of the ULINK adapter to the host PC via USB,
the EZ-USB core has enough intelligence to act as a stand-alone USB device,
responding to USB control requests and allowing firmware download via a special
VENDOR-type control request. Then, the EZ-USB microcontroller simulates a
disconnect and re-connect to the USB bus. It may take up to two seconds for the
host to recognize the newly connected device before OpenOCD can proceed to
execute JTAG commands. This delay is only visible when OpenOCD first uses a
blank (unconfigured) ULINK device.

Once the user disconnects the ULINK adapter, all its memory contents are lost
and the firmware download process has to be executed again. This also maintains
compatibility with the original Keil uVision IDE, which will happily download
its own firmware image to a blank ULINK adapter.