You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2016/06/15 22:03:47 UTC

[04/51] [partial] incubator-mynewt-site git commit: Fixed broken Quick Start link and added OpenOCD option for Arduino Primo debugging

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/delay.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/delay.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/delay.h
new file mode 100755
index 0000000..59fb49f
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/delay.h
@@ -0,0 +1,34 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __DELAY_H
+#define __DELAY_H
+
+#include <stdint.h>
+
+#define NOP { __asm nop __endasm; }
+
+void delay_5us(void);
+void delay_1ms(void);
+
+void delay_us(uint16_t delay);
+void delay_ms(uint16_t delay);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/io.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/io.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/io.h
new file mode 100755
index 0000000..8077d32
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/io.h
@@ -0,0 +1,124 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __IO_H
+#define __IO_H
+
+#include "reg_ezusb.h"
+
+/***************************************************************************
+ *  JTAG Signals:                                                          *
+ ***************************************************************************
+ * TMS ....... Test Mode Select                                            *
+ * TCK ....... Test Clock                                                  *
+ * TDI ....... Test Data Input  (from device point of view, not JTAG       *
+ *             adapter point of view!)                                     *
+ * TDO ....... Test Data Output (from device point of view, not JTAG       *
+ *             adapter point of view!)                                     *
+ * TRST ...... Test Reset: Used to reset the TAP Finite State Machine      *
+ *             into the Test Logic Reset state                             *
+ * RTCK ...... Return Test Clock                                           *
+ * OCDSE ..... Enable/Disable OCDS interface (Infineon specific) - shared  *
+ *             with /JEN                                                   *
+ * TRAP ...... Trap Condition (Infineon specific) - shared with TSTAT      *
+ * BRKIN ..... Hardware Break-In (Infineon specific)                       *
+ * BRKOUT .... Hardware Break-Out (Infineon specific)                      *
+ * /JEN ...... JTAG-Enable (STMicroelectronics specific) - shared          *
+ *             with OCDSE                                                  *
+ * TSTAT ..... JTAG ISP Status (STMicroelectronics specific) - shared      *
+ *             with TRAP                                                   *
+ * RESET ..... Chip Reset (STMicroelectronics specific)                    *
+ * /TERR ..... JTAG ISP Error (STMicroelectronics specific) - shared       *
+ *             with BRKOUT                                                 *
+ ***************************************************************************/
+
+/* PORT A */
+#define PIN_U_OE      OUTA0
+/* PA1 Not Connected */
+#define PIN_OE        OUTA2
+/* PA3 Not Connected */
+#define PIN_RUN_LED   OUTA4
+#define PIN_TDO       PINA5
+#define PIN_BRKOUT    PINA6
+#define PIN_COM_LED   OUTA7
+
+/* PORT B */
+#define PIN_TDI       OUTB0
+#define PIN_TMS       OUTB1
+#define PIN_TCK       OUTB2
+#define PIN_TRST      OUTB3
+#define PIN_BRKIN     OUTB4
+#define PIN_RESET     OUTB5
+#define PIN_OCDSE     OUTB6
+#define PIN_TRAP      PINB7
+
+/* JTAG Signals with direction 'OUT' on port B */
+#define MASK_PORTB_DIRECTION_OUT (PIN_TDI | PIN_TMS | PIN_TCK | PIN_TRST | PIN_BRKIN | PIN_RESET | PIN_OCDSE)
+
+/* PORT C */
+#define PIN_RXD0      PINC0
+#define PIN_TXD0      OUTC1
+#define PIN_RESET_2   PINC2
+/* PC3 Not Connecte */
+/* PC4 Not Connected */
+#define PIN_RTCK      PINC5
+#define PIN_WR        OUTC6
+/* PC7 Not Connected */
+
+/* LED Macros */
+#define SET_RUN_LED()     (OUTA &= ~PIN_RUN_LED)
+#define CLEAR_RUN_LED()   (OUTA |=  PIN_RUN_LED)
+
+#define SET_COM_LED()     (OUTA &= ~PIN_COM_LED)
+#define CLEAR_COM_LED()   (OUTA |=  PIN_COM_LED)
+
+/* JTAG Pin Macros */
+#define GET_TMS()         (PINSB & PIN_TMS)
+#define GET_TCK()         (PINSB & PIN_TCK)
+
+#define GET_TDO()         (PINSA & PIN_TDO)
+#define GET_BRKOUT()      (PINSA & PIN_BRKOUT)
+#define GET_TRAP()        (PINSB & PIN_TRAP)
+#define GET_RTCK()        (PINSC & PIN_RTCK)
+
+#define SET_TMS_HIGH()    (OUTB |=  PIN_TMS)
+#define SET_TMS_LOW()     (OUTB &= ~PIN_TMS)
+
+#define SET_TCK_HIGH()    (OUTB |=  PIN_TCK)
+#define SET_TCK_LOW()     (OUTB &= ~PIN_TCK)
+
+#define SET_TDI_HIGH()    (OUTB |=  PIN_TDI)
+#define SET_TDI_LOW()     (OUTB &= ~PIN_TDI)
+
+/* TRST and RESET are low-active and inverted by hardware. SET_HIGH de-asserts
+ * the signal (enabling reset), SET_LOW asserts the signal (disabling reset) */
+#define SET_TRST_HIGH()   (OUTB |=  PIN_TRST)
+#define SET_TRST_LOW()    (OUTB &= ~PIN_TRST)
+
+#define SET_RESET_HIGH()  (OUTB |=  PIN_RESET)
+#define SET_RESET_LOW()   (OUTB &= ~PIN_RESET)
+
+#define SET_OCDSE_HIGH()  (OUTB |=  PIN_OCDSE)
+#define SET_OCDSE_LOW()   (OUTB &= ~PIN_OCDSE)
+
+#define SET_BRKIN_HIGH()  (OUTB |=  PIN_BRKIN)
+#define SET_BRKIN_LOW()   (OUTB &= ~PIN_BRKIN)
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/jtag.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/jtag.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/jtag.h
new file mode 100755
index 0000000..ee2457e
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/jtag.h
@@ -0,0 +1,48 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __JTAG_H
+#define __JTAG_H
+
+#include <stdint.h>
+
+#define NOP { __asm nop __endasm; }
+
+void jtag_scan_in(uint8_t out_offset, uint8_t in_offset);
+void jtag_slow_scan_in(uint8_t out_offset, uint8_t in_offset);
+
+void jtag_scan_out(uint8_t out_offset);
+void jtag_slow_scan_out(uint8_t out_offset);
+
+void jtag_scan_io(uint8_t out_offset, uint8_t in_offset);
+void jtag_slow_scan_io(uint8_t out_offset, uint8_t in_offset);
+
+void jtag_clock_tck(uint16_t count);
+void jtag_slow_clock_tck(uint16_t count);
+void jtag_clock_tms(uint8_t count, uint8_t sequence);
+void jtag_slow_clock_tms(uint8_t count, uint8_t sequence);
+
+uint16_t  jtag_get_signals(void);
+void jtag_set_signals(uint8_t low, uint8_t high);
+
+void jtag_configure_tck_delay(uint8_t scan_in, uint8_t scan_out,
+		uint8_t scan_io, uint8_t tck, uint8_t tms);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/main.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/main.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/main.h
new file mode 100755
index 0000000..5f7418f
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/main.h
@@ -0,0 +1,26 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __MAIN_H
+#define __MAIN_H
+
+void io_init(void);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/msgtypes.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/msgtypes.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/msgtypes.h
new file mode 100755
index 0000000..9dbbedd
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/msgtypes.h
@@ -0,0 +1,191 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+/**
+ * @file
+ * Definition of the commands supported by the OpenULINK firmware.
+ *
+ * Basically, two types of commands can be distinguished:
+ *  - Commands with fixed payload size
+ *  - Commands with variable payload size
+ *
+ * SCAN commands (in all variations) carry payloads of variable size, all
+ * other commands carry payloads of fixed size.
+ *
+ * In the case of SCAN commands, the payload size (n) is calculated by
+ * dividing the scan_size_bits variable by 8, rounding up the result.
+ *
+ * Offset zero always contains the command ID.
+ *
+ ****************************************************************************
+ * CMD_SCAN_IN, CMD_SLOW_SCAN_IN:                                           *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: scan_size_bytes                                                *
+ * offset 2: bits_last_byte                                                 *
+ * offset 3: tms_count_start + tms_count_end                                *
+ * offset 4: tms_sequence_start                                             *
+ * offset 5: tms_sequence_end                                               *
+ *                                                                          *
+ * IN:                                                                      *
+ * offset 0..n: TDO data                                                    *
+ ****************************************************************************
+ * CMD_SCAN_OUT, CMD_SLOW_SCAN_OUT:                                         *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: scan_size_bytes                                                *
+ * offset 2: bits_last_byte                                                 *
+ * offset 3: tms_count_start + tms_count_end                                *
+ * offset 4: tms_sequence_start                                             *
+ * offset 5: tms_sequence_end                                               *
+ * offset 6..x: TDI data                                                    *
+ ****************************************************************************
+ * CMD_SCAN_IO, CMD_SLOW_SCAN_IO:                                           *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: scan_size_bytes                                                *
+ * offset 2: bits_last_byte                                                 *
+ * offset 3: tms_count_start + tms_count_end                                *
+ * offset 4: tms_sequence_start                                             *
+ * offset 5: tms_sequence_end                                               *
+ * offset 6..x: TDI data                                                    *
+ *                                                                          *
+ * IN:                                                                      *
+ * offset 0..n: TDO data                                                    *
+ ****************************************************************************
+ * CMD_CLOCK_TMS, CMD_SLOW_CLOCK_TMS:                                       *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: tms_count                                                      *
+ * offset 2: tms_sequence                                                   *
+ ****************************************************************************
+ * CMD_CLOCK_TCK, CMD_SLOW_CLOCK_TCK:                                       *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: low byte of tck_count                                          *
+ * offset 2: high byte of tck_count                                         *
+ ****************************************************************************
+ * CMD_CLOCK_SLEEP_US:                                                      *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: low byte of sleep_us                                           *
+ * offset 2: high byte of sleep_us                                          *
+ ****************************************************************************
+ * CMD_CLOCK_SLEEP_MS:                                                      *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: low byte of sleep_ms                                           *
+ * offset 2: high byte of sleep_ms                                          *
+ ****************************************************************************
+ * CMD_GET_SIGNALS:                                                         *
+ *                                                                          *
+ * IN:                                                                      *
+ * offset 0: current state of input signals                                 *
+ * offset 1: current state of output signals                                *
+ ****************************************************************************
+ * CMD_SET_SIGNALS:                                                         *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: signals that should be de-asserted                             *
+ * offset 2: signals that should be asserted                                *
+ ****************************************************************************
+ * CMD_CONFIGURE_TCK_FREQ:                                                  *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: delay value for scan_in function                               *
+ * offset 2: delay value for scan_out function                              *
+ * offset 3: delay value for scan_io function                               *
+ * offset 4: delay value for clock_tck function                             *
+ * offset 5: delay value for clock_tms function                             *
+ ****************************************************************************
+ * CMD_SET_LEDS:                                                            *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: LED states:                                                    *
+ *           Bit 0: turn COM LED on                                         *
+ *           Bit 1: turn RUN LED on                                         *
+ *           Bit 2: turn COM LED off                                        *
+ *           Bit 3: turn RUN LED off                                        *
+ *           Bits 7..4: Reserved                                            *
+ ****************************************************************************
+ * CMD_TEST:                                                                *
+ *                                                                          *
+ * OUT:                                                                     *
+ * offset 1: unused dummy value                                             *
+ ****************************************************************************
+ */
+
+#ifndef __MSGTYPES_H
+#define __MSGTYPES_H
+
+/*
+ * Command IDs:
+ *
+ * Bits 7..6: Reserved, should always be zero
+ * Bits 5..0: Command ID. There are 62 usable IDs. Of this 63 available IDs,
+ *            the IDs 0x00..0x1F are commands with variable payload size,
+ *            the IDs 0x20..0x3F are commands with fixed payload size.
+ */
+
+#define CMD_ID_MASK             0x3F
+
+/* Commands with variable payload size */
+#define CMD_SCAN_IN             0x00
+#define CMD_SLOW_SCAN_IN        0x01
+#define CMD_SCAN_OUT            0x02
+#define CMD_SLOW_SCAN_OUT       0x03
+#define CMD_SCAN_IO             0x04
+#define CMD_SLOW_SCAN_IO        0x05
+
+/* Commands with fixed payload size */
+#define CMD_CLOCK_TMS           0x20
+#define CMD_SLOW_CLOCK_TMS      0x21
+#define CMD_CLOCK_TCK           0x22
+#define CMD_SLOW_CLOCK_TCK      0x23
+#define CMD_SLEEP_US            0x24
+#define CMD_SLEEP_MS            0x25
+#define CMD_GET_SIGNALS         0x26
+#define CMD_SET_SIGNALS         0x27
+#define CMD_CONFIGURE_TCK_FREQ  0x28
+#define CMD_SET_LEDS            0x29
+#define CMD_TEST                0x2A
+
+/* JTAG signal definition for jtag_get_signals() -- Input signals! */
+#define SIGNAL_TDO      (1<<0)
+#define SIGNAL_BRKOUT   (1<<1)
+#define SIGNAL_TRAP     (1<<2)
+#define SIGNAL_RTCK     (1<<3)
+
+/* JTAG signal definition for jtag_get_signals() -- Output signals! */
+#define SIGNAL_TDI      (1<<0)
+#define SIGNAL_TMS      (1<<1)
+#define SIGNAL_TCK      (1<<2)
+#define SIGNAL_TRST     (1<<3)
+#define SIGNAL_BRKIN    (1<<4)
+#define SIGNAL_RESET    (1<<5)
+#define SIGNAL_OCDSE    (1<<6)
+
+/* LED definitions for CMD_SET_LEDS and CMD_CLEAR_LEDS commands */
+#define COM_LED_ON      (1<<0)
+#define RUN_LED_ON      (1<<1)
+#define COM_LED_OFF     (1<<2)
+#define RUN_LED_OFF     (1<<3)
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/protocol.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/protocol.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/protocol.h
new file mode 100755
index 0000000..fbc1996
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/protocol.h
@@ -0,0 +1,32 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __PROTOCOL_H
+#define __PROTOCOL_H
+
+#include "common.h"
+#include <stdbool.h>
+
+void execute_set_led_command(void);
+
+bool execute_command(void);
+void command_loop(void);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/reg_ezusb.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/reg_ezusb.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/reg_ezusb.h
new file mode 100755
index 0000000..82f9451
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/reg_ezusb.h
@@ -0,0 +1,743 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef REG_EZUSB_H
+#define REG_EZUSB_H
+
+/**
+ * @file
+ * All information in this file was taken from the EZ-USB Technical
+ * Reference Manual, Cypress Semiconductor, 3901 North First Street
+ * San Jose, CA 95134 (www.cypress.com).
+ *
+ * The EZ-USB Technical Reference Manual is called "EZ-USB TRM" hereafter.
+ *
+ * The following bit name  definitions differ from those in the EZ-USB TRM:
+ * - All lowercase characters in the EZ-USB TRM bit names have been converted
+ *   to capitals (e. g. "WakeSRC" converted to "WAKESRC").
+ * - CPUCS:  8051RES is named "RES8051".
+ * - ISOCTL: Two MBZ ("Must Be Zero") bits are named "MBZ0" and "MBZ1".
+ * - I2CS: STOP and START bits are preceded by "I2C_"
+ * - INxCS, OUTxCS: the busy and stall bits are named "EPBSY" and "EPSTALL".
+ * - TOGCTL: EZ-USB TRM bit names are preceded by "TOG_".
+ */
+
+/* Compiler-specific definitions of SBIT, SFR, SFRX, ... macros */
+#include <mcs51/compiler.h>
+
+/* Bit vectors */
+#define bmBit0      0x01
+#define bmBit1      0x02
+#define bmBit2      0x04
+#define bmBit3      0x08
+#define bmBit4      0x10
+#define bmBit5      0x20
+#define bmBit6      0x40
+#define bmBit7      0x80
+
+/**************************************************************************
+ ************************ Special Function Registers **********************
+ ***************************************************************************/
+
+/* See EZ-USB TRM, pp. A-9 - A-10 */
+
+SFR(SP,             0x81);
+SFR(DPL0,           0x82);
+SFR(DPH0,           0x83);
+SFR(DPL1,           0x84);
+SFR(DPL2,           0x85);
+
+SFR(DPS,            0x86);
+#define SEL         bmBit0
+/* Bit 1 read-only, always reads '0' */
+/* Bit 2 read-only, always reads '0' */
+/* Bit 3 read-only, always reads '0' */
+/* Bit 4 read-only, always reads '0' */
+/* Bit 5 read-only, always reads '0' */
+/* Bit 6 read-only, always reads '0' */
+/* Bit 7 read-only, always reads '0' */
+
+SFR(PCON,           0x87);
+#define IDLE        bmBit0
+#define STOP        bmBit1
+#define GF0         bmBit2
+#define GF1         bmBit3
+/* Bit 4 read-only, always reads '1' */
+/* Bit 5 read-only, always reads '1' */
+/* Bit 6 unused */
+#define SMOD0     bmBit7
+
+SFR(TCON,           0x88);
+SBIT(IT0,           0x88, 0);
+SBIT(IE0,           0x88, 1);
+SBIT(IT1,           0x88, 2);
+SBIT(IE1,           0x88, 3);
+SBIT(TR0,           0x88, 4);
+SBIT(TF0,           0x88, 5);
+SBIT(TR1,           0x88, 6);
+SBIT(TF1,           0x88, 7);
+
+SFR(TMOD,           0x89);
+/* Some bits in this register share the same name in the EZ-USB TRM. Therefore,
+ * we add a '0'/'1' to distinguish them */
+#define M00         bmBit0
+#define M01         bmBit1
+#define CT0         bmBit2
+#define GATE0       bmBit3
+#define M10         bmBit4
+#define M11         bmBit5
+#define CT1         bmBit6
+#define GATE1       bmBit7
+
+SFR(TL0,            0x8A);
+SFR(TL1,            0x8B);
+SFR(TH0,            0x8C);
+SFR(TH1,            0x8D);
+
+SFR(CKCON,          0x8E);
+#define MD0         bmBit0
+#define MD1         bmBit1
+#define MD2         bmBit2
+#define T0M         bmBit3
+#define T1M         bmBit4
+#define T2M         bmBit5
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+SFR(SPC_FNC,        0x8D);
+#define bmWRS       bmBit0
+/* Bit 1 read-only, always reads '0' */
+/* Bit 2 read-only, always reads '0' */
+/* Bit 3 read-only, always reads '0' */
+/* Bit 4 read-only, always reads '0' */
+/* Bit 5 read-only, always reads '0' */
+/* Bit 6 read-only, always reads '0' */
+/* Bit 7 read-only, always reads '0' */
+
+SFR(EXIF,           0x91);
+/* Bit 0 read-only, always reads '0' */
+/* Bit 1 read-only, always reads '0' */
+/* Bit 2 read-only, always reads '0' */
+/* Bit 3 read-only, always reads '1' */
+#define USBINT      bmBit4
+#define I2CINT      bmBit5
+#define IE4         bmBit6
+#define IE5         bmBit7
+
+/* Definition of the _XPAGE register, according to SDCC Compiler User Guide,
+ * Version 3.0.1, Chapter 4, p. 61. Also see EZ-USB TRM, p. 2-4. */
+SFR(MPAGE,          0x92);
+SFR(_XPAGE,         0x92);
+
+SFR(SCON0,          0x98);
+SBIT(RI_0,          0x98, 0);
+SBIT(TI_0,          0x98, 1);
+SBIT(RB8_0,         0x98, 2);
+SBIT(TB8_0,         0x98, 3);
+SBIT(REN_0,         0x98, 4);
+SBIT(SM2_0,         0x98, 5);
+SBIT(SM1_0,         0x98, 6);
+SBIT(SM0_0,         0x98, 7);
+
+SFR(SBUF0,          0x99);
+
+SFR(IE,             0xA8);
+SBIT(EX0,           0xA8, 0);
+SBIT(ET0,           0xA8, 1);
+SBIT(EX1,           0xA8, 2);
+SBIT(ET1,           0xA8, 3);
+SBIT(ES0,           0xA8, 4);
+SBIT(ET2,           0xA8, 5);
+SBIT(ES1,           0xA8, 6);
+SBIT(EA,            0xA8, 7);
+
+SFR(IP,             0xB8);
+SBIT(PX0,           0xB8, 0);
+SBIT(PT0,           0xB8, 1);
+SBIT(PX1,           0xB8, 2);
+SBIT(PT1,           0xB8, 3);
+SBIT(PS0,           0xB8, 4);
+SBIT(PT2,           0xB8, 5);
+SBIT(PS1,           0xB8, 6);
+/* Bit 7 read-only, always reads '1' */
+
+SFR(SCON1,          0xC0);
+SBIT(RI_1,          0xC0, 0);
+SBIT(TI_1,          0xC0, 1);
+SBIT(RB8_1,         0xC0, 2);
+SBIT(TB8_1,         0xC0, 3);
+SBIT(REN_1,         0xC0, 4);
+SBIT(SM2_1,         0xC0, 5);
+SBIT(SM1_1,         0xC0, 6);
+SBIT(SM0_1,         0xC0, 7);
+
+SFR(SBUF1,          0xC1);
+
+SFR(T2CON,          0xC8);
+SBIT(CPRL2,         0xC8, 0);
+SBIT(CT2,           0xC8, 1);
+SBIT(TR2,           0xC8, 2);
+SBIT(EXEN2,         0xC8, 3);
+SBIT(TCLK,          0xC8, 4);
+SBIT(RCLK,          0xC8, 5);
+SBIT(EXF2,          0xC8, 6);
+SBIT(TF2,           0xC8, 7);
+
+SFR(RCAP2L,         0xCA);
+SFR(RCAP2H,         0xCB);
+SFR(TL2,            0xCC);
+SFR(TH2,            0xCD);
+
+SFR(PSW,            0xD0);
+SBIT(P,             0xD0, 0);
+SBIT(F1,            0xD0, 1);
+SBIT(OV,            0xD0, 2);
+SBIT(RS0,           0xD0, 3);
+SBIT(RS1,           0xD0, 4);
+SBIT(F0,            0xD0, 5);
+SBIT(AC,            0xD0, 6);
+SBIT(CY,            0xD0, 7);
+
+SFR(EICON,          0xD8);
+/* Bit 0 read-only, always reads '0' */
+/* Bit 1 read-only, always reads '0' */
+/* Bit 2 read-only, always reads '0' */
+SBIT(INT6,          0xD8, 3);
+SBIT(RESI,          0xD8, 4);
+SBIT(ERESI,         0xD8, 5);
+/* Bit 6 read-only, always reads '1' */
+SBIT(SMOD1,         0xD8, 7);
+
+SFR(ACC,            0xE0);
+
+SFR(EIE,            0xE8);
+SBIT(EUSB,          0xE8, 0);
+SBIT(EI2C,          0xE8, 1);
+SBIT(EX4,           0xE8, 2);
+SBIT(EX5,           0xE8, 3);
+SBIT(EWDI,          0xE8, 4);
+/* Bit 5 read-only, always reads '1' */
+/* Bit 6 read-only, always reads '1' */
+/* Bit 7 read-only, always reads '1' */
+
+SFR(B,              0xF0);
+
+SFR(EIP,            0xF8);
+SBIT(PUSB,          0xF8, 0);
+SBIT(PI2C,          0xF8, 1);
+SBIT(PX4,           0xF8, 2);
+SBIT(PX5,           0xF8, 3);
+SBIT(PX6,           0xF8, 4);
+/* Bit 5 read-only, always reads '1' */
+/* Bit 6 read-only, always reads '1' */
+/* Bit 7 read-only, always reads '1' */
+
+/**************************************************************************
+ ***************************** XDATA Registers ****************************
+ ***************************************************************************/
+
+/************************ Endpoint 0-7 Data Buffers ************************/
+SFRX(OUT7BUF[64],   0x7B40);
+SFRX(IN7BUF[64],    0x7B80);
+SFRX(OUT6BUF[64],   0x7BC0);
+SFRX(IN6BUF[64],    0x7C00);
+SFRX(OUT5BUF[64],   0x7C40);
+SFRX(IN5BUF[64],    0x7C80);
+SFRX(OUT4BUF[64],   0x7CC0);
+SFRX(IN4BUF[64],    0x7D00);
+SFRX(OUT3BUF[64],   0x7D40);
+SFRX(IN3BUF[64],    0x7D80);
+SFRX(OUT2BUF[64],   0x7DC0);
+SFRX(IN2BUF[64],    0x7E00);
+SFRX(OUT1BUF[64],   0x7E40);
+SFRX(IN1BUF[64],    0x7E80);
+SFRX(OUT0BUF[64],   0x7EC0);
+SFRX(IN0BUF[64],    0x7F00);
+/* 0x7F40 - 0x7F5F reserved */
+
+/**************************** Isochronous Data *****************************/
+SFRX(OUT8DATA,      0x7F60);
+SFRX(OUT9DATA,      0x7F61);
+SFRX(OUT10DATA,     0x7F62);
+SFRX(OUT11DATA,     0x7F63);
+SFRX(OUT12DATA,     0x7F64);
+SFRX(OUT13DATA,     0x7F65);
+SFRX(OUT14DATA,     0x7F66);
+SFRX(OUT15DATA,     0x7F67);
+
+SFRX(IN8DATA,       0x7F68);
+SFRX(IN9DATA,       0x7F69);
+SFRX(IN10DATA,      0x7F6A);
+SFRX(IN11DATA,      0x7F6B);
+SFRX(IN12DATA,      0x7F6C);
+SFRX(IN13DATA,      0x7F6D);
+SFRX(IN14DATA,      0x7F6E);
+SFRX(IN15DATA,      0x7F6F);
+
+/************************* Isochronous Byte Counts *************************/
+SFRX(OUT8BCH,       0x7F70);
+SFRX(OUT8BCL,       0x7F71);
+SFRX(OUT9BCH,       0x7F72);
+SFRX(OUT9BCL,       0x7F73);
+SFRX(OUT10BCH,      0x7F74);
+SFRX(OUT10BCL,      0x7F75);
+SFRX(OUT11BCH,      0x7F76);
+SFRX(OUT11BCL,      0x7F77);
+SFRX(OUT12BCH,      0x7F78);
+SFRX(OUT12BCL,      0x7F79);
+SFRX(OUT13BCH,      0x7F7A);
+SFRX(OUT13BCL,      0x7F7B);
+SFRX(OUT14BCH,      0x7F7C);
+SFRX(OUT14BCL,      0x7F7D);
+SFRX(OUT15BCH,      0x7F7E);
+SFRX(OUT16BCL,      0x7F7F);
+
+/****************************** CPU Registers ******************************/
+SFRX(CPUCS,         0x7F92);
+#define RES8051     bmBit0
+#define CLK24OE     bmBit1
+/* Bit 2 read-only, always reads '0' */
+/* Bit 3 read-only, always reads '0' */
+/* Bits 4...7: Chip Revision */
+
+SFRX(PORTACFG,      0x7F93);
+#define T0OUT       bmBit0
+#define T1OUT       bmBit1
+#define OE          bmBit2
+#define CS          bmBit3
+#define FWR         bmBit4
+#define FRD         bmBit5
+#define RXD0OUT     bmBit6
+#define RXD1OUT     bmBit7
+
+SFRX(PORTBCFG,      0x7F94);
+#define T2          bmBit0
+#define T2EX        bmBit1
+#define RXD1        bmBit2
+#define TXD1        bmBit3
+#define INT4        bmBit4
+#define INT5        bmBit5
+#define INT6        bmBit6
+#define T2OUT       bmBit7
+
+SFRX(PORTCCFG,      0x7F95);
+#define RXD0        bmBit0
+#define TXD0        bmBit1
+#define INT0        bmBit2
+#define INT1        bmBit3
+#define T0          bmBit4
+#define T1          bmBit5
+#define WR          bmBit6
+#define RD          bmBit7
+
+/*********************** Input-Output Port Registers ***********************/
+SFRX(OUTA,          0x7F96);
+#define OUTA0       bmBit0
+#define OUTA1       bmBit1
+#define OUTA2       bmBit2
+#define OUTA3       bmBit3
+#define OUTA4       bmBit4
+#define OUTA5       bmBit5
+#define OUTA6       bmBit6
+#define OUTA7       bmBit7
+
+SFRX(OUTB,          0x7F97);
+#define OUTB0       bmBit0
+#define OUTB1       bmBit1
+#define OUTB2       bmBit2
+#define OUTB3       bmBit3
+#define OUTB4       bmBit4
+#define OUTB5       bmBit5
+#define OUTB6       bmBit6
+#define OUTB7       bmBit7
+
+SFRX(OUTC,          0x7F98);
+#define OUTC0       bmBit0
+#define OUTC1       bmBit1
+#define OUTC2       bmBit2
+#define OUTC3       bmBit3
+#define OUTC4       bmBit4
+#define OUTC5       bmBit5
+#define OUTC6       bmBit6
+#define OUTC7       bmBit7
+
+SFRX(PINSA,         0x7F99);
+#define PINA0       bmBit0
+#define PINA1       bmBit1
+#define PINA2       bmBit2
+#define PINA3       bmBit3
+#define PINA4       bmBit4
+#define PINA5       bmBit5
+#define PINA6       bmBit6
+#define PINA7       bmBit7
+
+SFRX(PINSB,         0x7F9A);
+#define PINB0       bmBit0
+#define PINB1       bmBit1
+#define PINB2       bmBit2
+#define PINB3       bmBit3
+#define PINB4       bmBit4
+#define PINB5       bmBit5
+#define PINB6       bmBit6
+#define PINB7       bmBit7
+
+SFRX(PINSC,         0x7F9B);
+#define PINC0       bmBit0
+#define PINC1       bmBit1
+#define PINC2       bmBit2
+#define PINC3       bmBit3
+#define PINC4       bmBit4
+#define PINC5       bmBit5
+#define PINC6      bmBit6
+#define PINC7       bmBit7
+
+SFRX(OEA,           0x7F9C);
+#define OEA0        bmBit0
+#define OEA1        bmBit1
+#define OEA2        bmBit2
+#define OEA3        bmBit3
+#define OEA4        bmBit4
+#define OEA5        bmBit5
+#define OEA6        bmBit6
+#define OEA7        bmBit7
+
+SFRX(OEB,           0x7F9D);
+#define OEB0        bmBit0
+#define OEB1        bmBit1
+#define OEB2        bmBit2
+#define OEB3        bmBit3
+#define OEB4        bmBit4
+#define OEB5        bmBit5
+#define OEB6        bmBit6
+#define OEB7        bmBit7
+
+SFRX(OEC,           0x7F9E);
+#define OEC0        bmBit0
+#define OEC1        bmBit1
+#define OEC2        bmBit2
+#define OEC3        bmBit3
+#define OEC4        bmBit4
+#define OEC5        bmBit5
+#define OEC6        bmBit6
+#define OEC7        bmBit7
+
+/* 0x7F9F reserved */
+
+/****************** Isochronous Control/Status Registers *******************/
+SFRX(ISOERR,        0x7FA0);
+#define ISO8ERR     bmBit0
+#define ISO9ERR     bmBit1
+#define ISO10ERR    bmBit2
+#define ISO11ERR    bmBit3
+#define ISO12ERR    bmBit4
+#define ISO13ERR    bmBit5
+#define ISO14ERR    bmBit6
+#define ISO15ERR    bmBit7
+
+SFRX(ISOCTL,        0x7FA1);
+#define ISODISAB    bmBit0
+#define MBZ0        bmBit1
+#define MBZ1        bmBit2
+#define PPSTAT      bmBit3
+/* Bit 4 unused */
+/* Bit 5 unused */
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+SFRX(ZBCOUT,        0x7FA2);
+#define EP8         bmBit0
+#define EP9         bmBit1
+#define EP10        bmBit2
+#define EP11        bmBit3
+#define EP12        bmBit4
+#define EP13        bmBit5
+#define EP14        bmBit6
+#define EP15        bmBit7
+
+/* 0x7FA3 reserved */
+/* 0x7FA4 reserved */
+
+/****************************** I2C Registers ******************************/
+SFRX(I2CS,          0x7FA5);
+#define DONE        bmBit0
+#define ACK         bmBit1
+#define BERR        bmBit2
+#define ID0         bmBit3
+#define ID1         bmBit4
+#define LASTRD      bmBit5
+#define I2C_STOP    bmBit6
+#define I2C_START   bmBit7
+
+SFRX(I2DAT,         0x7FA6);
+/* 0x7FA7 reserved */
+
+/******************************* Interrupts ********************************/
+SFRX(IVEC,          0x7FA8);
+/* Bit 0 read-only, always reads '0' */
+/* Bit 1 read-only, always reads '0' */
+#define IV0         bmBit2
+#define IV1         bmBit3
+#define IV2         bmBit4
+#define IV3         bmBit5
+#define IV4         bmBit6
+/* Bit 7 read-only, always reads '0' */
+
+SFRX(IN07IRQ,       0x7FA9);
+#define IN0IR       bmBit0
+#define IN1IR       bmBit1
+#define IN2IR       bmBit2
+#define IN3IR       bmBit3
+#define IN4IR       bmBit4
+#define IN5IR       bmBit5
+#define IN6IR       bmBit6
+#define IN7IR       bmBit7
+
+SFRX(OUT07IRQ,      0x7FAA);
+#define OUT0IR      bmBit0
+#define OUT1IR      bmBit1
+#define OUT2IR      bmBit2
+#define OUT3IR      bmBit3
+#define OUT4IR      bmBit4
+#define OUT5IR      bmBit5
+#define OUT6IR      bmBit6
+#define OUT7IR      bmBit7
+
+SFRX(USBIRQ,        0x7FAB);
+#define SUDAVIR     bmBit0
+#define SOFIR       bmBit1
+#define SUTOKIR     bmBit2
+#define SUSPIR      bmBit3
+#define URESIR      bmBit4
+/* Bit 5 unused */
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+SFRX(IN07IEN,       0x7FAC);
+#define IN0IEN      bmBit0
+#define IN1IEN      bmBit1
+#define IN2IEN      bmBit2
+#define IN3IEN      bmBit3
+#define IN4IEN      bmBit4
+#define IN5IEN      bmBit5
+#define IN6IEN      bmBit6
+#define IN7IEN      bmBit7
+
+SFRX(OUT07IEN,      0x7FAD);
+#define OUT0IEN     bmBit0
+#define OUT1IEN     bmBit1
+#define OUT2IEN     bmBit2
+#define OUT3IEN     bmBit3
+#define OUT4IEN     bmBit4
+#define OUT5IEN     bmBit5
+#define OUT6IEN     bmBit6
+#define OUT7IEN     bmBit7
+
+SFRX(USBIEN,        0x7FAE);
+#define SUDAVIE     bmBit0
+#define SOFIE       bmBit1
+#define SUTOKIE     bmBit2
+#define SUSPIE      bmBit3
+#define URESIE      bmBit4
+/* Bit 5 unused */
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+SFRX(USBBAV,        0x7FAF);
+#define AVEN        bmBit0
+#define BPEN        bmBit1
+#define BPPULSE     bmBit2
+#define BREAK       bmBit3
+/* Bit 4 unused */
+/* Bit 5 unused */
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+/* 0x7FB0 reserved */
+/* 0x7FB1 reserved */
+SFRX(BPADDRH,       0x7FB2);
+SFRX(BPADDRL,       0x7FB3);
+
+/****************************** Endpoints 0-7 ******************************/
+SFRX(EP0CS,         0x7FB4);
+#define EP0STALL    bmBit0
+#define HSNAK       bmBit1
+#define IN0BSY      bmBit2
+#define OUT0BSY     bmBit3
+/* Bit 4 unused */
+/* Bit 5 unused */
+/* Bit 6 unused */
+/* Bit 7 unused */
+
+SFRX(IN0BC,         0x7FB5);
+SFRX(IN1CS,         0x7FB6);
+SFRX(IN1BC,         0x7FB7);
+SFRX(IN2CS,         0x7FB8);
+SFRX(IN2BC,         0x7FB9);
+SFRX(IN3CS,         0x7FBA);
+SFRX(IN3BC,         0x7FBB);
+SFRX(IN4CS,         0x7FBC);
+SFRX(IN4BC,         0x7FBD);
+SFRX(IN5CS,         0x7FBE);
+SFRX(IN5BC,         0x7FBF);
+SFRX(IN6CS,         0x7FC0);
+SFRX(IN6BC,         0x7FC1);
+SFRX(IN7CS,         0x7FC2);
+SFRX(IN7BC,         0x7FC3);
+/* 0x7FC4 reserved */
+SFRX(OUT0BC,        0x7FC5);
+SFRX(OUT1CS,        0x7FC6);
+SFRX(OUT1BC,        0x7FC7);
+SFRX(OUT2CS,        0x7FC8);
+SFRX(OUT2BC,        0x7FC9);
+SFRX(OUT3CS,        0x7FCA);
+SFRX(OUT3BC,        0x7FCB);
+SFRX(OUT4CS,        0x7FCC);
+SFRX(OUT4BC,        0x7FCD);
+SFRX(OUT5CS,        0x7FCE);
+SFRX(OUT5BC,        0x7FCF);
+SFRX(OUT6CS,        0x7FD0);
+SFRX(OUT6BC,        0x7FD1);
+SFRX(OUT7CS,        0x7FD2);
+SFRX(OUT7BC,        0x7FD3);
+
+/* The INxSTALL, OUTxSTALL, INxBSY and OUTxBSY bits are the same for all
+ * INxCS/OUTxCS registers. For better readability, we define them only once */
+#define EPSTALL     bmBit0
+#define EPBSY       bmBit1
+
+/************************** Global USB Registers ***************************/
+SFRX(SUDPTRH,       0x7FD4);
+SFRX(SUDPTRL,       0x7FD5);
+
+SFRX(USBCS,         0x7FD6);
+#define SIGRSUME    bmBit0
+#define RENUM       bmBit1
+#define DISCOE      bmBit2
+#define DISCON      bmBit3
+/* Bit 4 unused */
+/* Bit 5 unused */
+/* Bit 6 unused */
+#define WAKESRC     bmBit7
+
+SFRX(TOGCTL,        0x7FD7);
+#define TOG_EP0     bmBit0
+#define TOG_EP1     bmBit1
+#define TOG_EP2     bmBit2
+/* Bit 3 is read-only, always reads '0' */
+#define TOG_IO      bmBit4
+#define TOG_R       bmBit5
+#define TOG_S       bmBit6
+#define TOG_Q       bmBit7
+
+SFRX(USBFRAMEL,     0x7FD8);
+SFRX(USBFRAMEH,     0x7FD9);
+/* 0x7FDA reserved */
+SFRX(FNADDR,        0x7FDB);
+/* 0x7FDC reserved */
+
+SFRX(USBPAIR,       0x7FDD);
+#define PR2IN       bmBit0
+#define PR4IN       bmBit1
+#define PR6IN       bmBit2
+#define PR2OUT      bmBit3
+#define PR4OUT      bmBit4
+#define PR6OUT      bmBit5
+/* Bit 6 unused */
+#define ISOSEND0    bmBit7
+
+SFRX(IN07VAL,       0x7FDE);
+/* Bit 0 is read-only, always reads '1' */
+#define IN1VAL      bmBit1
+#define IN2VAL      bmBit2
+#define IN3VAL      bmBit3
+#define IN4VAL      bmBit4
+#define IN5VAL      bmBit5
+#define IN6VAL      bmBit6
+#define IN7VAL      bmBit7
+
+SFRX(OUT07VAL,      0x7FDF);
+/* Bit 0 is read-only, always reads '1' */
+#define OUT1VAL     bmBit1
+#define OUT2VAL     bmBit2
+#define OUT3VAL     bmBit3
+#define OUT4VAL     bmBit4
+#define OUT5VAL     bmBit5
+#define OUT6VAL     bmBit6
+#define OUT7VAL     bmBit7
+
+SFRX(INISOVAL,      0x7FE0);
+#define IN8VAL      bmBit0
+#define IN9VAL      bmBit1
+#define IN10VAL     bmBit2
+#define IN11VAL     bmBit3
+#define IN12VAL     bmBit4
+#define IN13VAL     bmBit5
+#define IN14VAL     bmBit6
+#define IN15VAL     bmBit7
+
+SFRX(OUTISOVAL,     0x7FE1);
+#define OUT8VAL     bmBit0
+#define OUT9VAL     bmBit1
+#define OUT10VAL    bmBit2
+#define OUT11VAL    bmBit3
+#define OUT12VAL    bmBit4
+#define OUT13VAL    bmBit5
+#define OUT14VAL    bmBit6
+#define OUT15VAL    bmBit7
+
+SFRX(FASTXFR,       0x7FE2);
+#define WMOD0       bmBit0
+#define WMOD1       bmBit1
+#define WPOL        bmBit2
+#define RMOD0       bmBit3
+#define RMOD1       bmBit4
+#define RPOL        bmBit5
+#define FBLK        bmBit6
+#define FISO        bmBit7
+
+SFRX(AUTOPTRH,      0x7FE3);
+SFRX(AUTOPTRL,      0x7FE4);
+SFRX(AUTODATA,      0x7FE5);
+/* 0x7FE6 reserved */
+/* 0x7FE7 reserved */
+
+/******************************* Setup Data ********************************/
+SFRX(SETUPDAT[8],   0x7FE8);
+
+/************************* Isochronous FIFO sizes **************************/
+SFRX(OUT8ADDR,      0x7FF0);
+SFRX(OUT9ADDR,      0x7FF1);
+SFRX(OUT10ADDR,     0x7FF2);
+SFRX(OUT11ADDR,     0x7FF3);
+SFRX(OUT12ADDR,     0x7FF4);
+SFRX(OUT13ADDR,     0x7FF5);
+SFRX(OUT14ADDR,     0x7FF6);
+SFRX(OUT15ADDR,     0x7FF7);
+
+SFRX(IN8ADDR,       0x7FF8);
+SFRX(IN9ADDR,       0x7FF9);
+SFRX(IN10ADDR,      0x7FFA);
+SFRX(IN11ADDR,      0x7FFB);
+SFRX(IN12ADDR,      0x7FFC);
+SFRX(IN13ADDR,      0x7FFD);
+SFRX(IN14ADDR,      0x7FFE);
+SFRX(IN15ADDR,      0x7FFF);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/usb.h
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/usb.h b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/usb.h
new file mode 100755
index 0000000..182b790
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/include/usb.h
@@ -0,0 +1,267 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#ifndef __USB_H
+#define __USB_H
+
+#include "reg_ezusb.h"
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#define NULL        (void *)0;
+
+/* High and Low byte of a word (uint16_t) */
+#define HI8(word)   (uint8_t)(((uint16_t)word >> 8) & 0xff)
+#define LO8(word)   (uint8_t)((uint16_t)word & 0xff)
+
+/* Convenience functions */
+#define STALL_EP0()   (EP0CS |= EP0STALL)
+#define CLEAR_IRQ()   (EXIF &= ~USBINT)
+
+/*********** USB descriptors. See section 9.5 of the USB 1.1 spec **********/
+
+/* USB Descriptor Types. See USB 1.1 spec, page 187, table 9-5 */
+#define DESCRIPTOR_TYPE_DEVICE         0x01
+#define DESCRIPTOR_TYPE_CONFIGURATION  0x02
+#define DESCRIPTOR_TYPE_STRING         0x03
+#define DESCRIPTOR_TYPE_INTERFACE      0x04
+#define DESCRIPTOR_TYPE_ENDPOINT       0x05
+
+#define STR_DESCR(len, ...) { len * 2 + 2, DESCRIPTOR_TYPE_STRING, { __VA_ARGS__ } }
+
+/** USB Device Descriptor. See USB 1.1 spec, pp. 196 - 198 */
+struct usb_device_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< DEVICE Descriptor Type. */
+	uint16_t bcdUSB;		/**< USB specification release number (BCD). */
+	uint8_t bDeviceClass;		/**< Class code. */
+	uint8_t bDeviceSubClass;	/**< Subclass code. */
+	uint8_t bDeviceProtocol;	/**< Protocol code. */
+	uint8_t bMaxPacketSize0;	/**< Maximum packet size for EP0 (8, 16, 32, 64). */
+	uint16_t idVendor;		/**< USB Vendor ID. */
+	uint16_t idProduct;		/**< USB Product ID. */
+	uint16_t bcdDevice;		/**< Device Release Number (BCD). */
+	uint8_t iManufacturer;		/**< Index of manufacturer string descriptor. */
+	uint8_t iProduct;		/**< Index of product string descriptor. */
+	uint8_t iSerialNumber;		/**< Index of string descriptor containing serial #. */
+	uint8_t bNumConfigurations;	/**< Number of possible configurations. */
+};
+
+/** USB Configuration Descriptor. See USB 1.1 spec, pp. 199 - 200 */
+struct usb_config_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< CONFIGURATION descriptor type. */
+	uint16_t wTotalLength;		/**< Combined total length of all descriptors. */
+	uint8_t bNumInterfaces;		/**< Number of interfaces in this configuration. */
+	uint8_t bConfigurationValue;	/**< Value used to select this configuration. */
+	uint8_t iConfiguration;		/**< Index of configuration string descriptor. */
+	uint8_t bmAttributes;		/**< Configuration characteristics. */
+	uint8_t MaxPower;		/**< Maximum power consumption in 2 mA units. */
+};
+
+/** USB Interface Descriptor. See USB 1.1 spec, pp. 201 - 203 */
+struct usb_interface_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< INTERFACE descriptor type. */
+	uint8_t bInterfaceNumber;	/**< Interface number. */
+	uint8_t bAlternateSetting;	/**< Value used to select alternate setting. */
+	uint8_t bNumEndpoints;		/**< Number of endpoints used by this interface. */
+	uint8_t bInterfaceClass;	/**< Class code. */
+	uint8_t bInterfaceSubclass;	/**< Subclass code. */
+	uint8_t bInterfaceProtocol;	/**< Protocol code. */
+	uint8_t iInterface;		/**< Index of interface string descriptor. */
+};
+
+/** USB Endpoint Descriptor. See USB 1.1 spec, pp. 203 - 204 */
+struct usb_endpoint_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< ENDPOINT descriptor type. */
+	uint8_t bEndpointAddress;	/**< Endpoint Address: USB 1.1 spec, table 9-10. */
+	uint8_t bmAttributes;		/**< Endpoint Attributes: USB 1.1 spec, table 9-10. */
+	uint16_t wMaxPacketSize;	/**< Maximum packet size for this endpoint. */
+	uint8_t bInterval;		/**< Polling interval (in ms) for this endpoint. */
+};
+
+/** USB Language Descriptor. See USB 1.1 spec, pp. 204 - 205 */
+struct usb_language_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< STRING descriptor type. */
+	uint16_t wLANGID[];		/**< LANGID codes. */
+};
+
+/** USB String Descriptor. See USB 1.1 spec, pp. 204 - 205 */
+struct usb_string_descriptor {
+	uint8_t bLength;		/**< Size of this descriptor in bytes. */
+	uint8_t bDescriptorType;	/**< STRING descriptor type. */
+	uint16_t bString[];		/**< UNICODE encoded string. */
+};
+
+/********************** USB Control Endpoint 0 related *********************/
+
+/** USB Control Setup Data. See USB 1.1 spec, pp. 183 - 185 */
+struct setup_data {
+	uint8_t bmRequestType;		/**< Characteristics of a request. */
+	uint8_t bRequest;		/**< Specific request. */
+	uint16_t wValue;		/**< Field that varies according to request. */
+	uint16_t wIndex;		/**< Field that varies according to request. */
+	uint16_t wLength;		/**< Number of bytes to transfer in data stage. */
+};
+
+/* External declarations for variables that need to be accessed outside of
+ * the USB module */
+extern volatile bool EP2_out;
+extern volatile bool EP2_in;
+extern volatile __xdata __at 0x7FE8 struct setup_data setup_data;
+
+/*
+ * USB Request Types (bmRequestType): See USB 1.1 spec, page 183, table 9-2
+ *
+ * Bit 7: Data transfer direction
+ *    0 = Host-to-device
+ *    1 = Device-to-host
+ * Bit 6...5: Type
+ *    0 = Standard
+ *    1 = Class
+ *    2 = Vendor
+ *    3 = Reserved
+ * Bit 4...0: Recipient
+ *    0 = Device
+ *    1 = Interface
+ *    2 = Endpoint
+ *    3 = Other
+ *    4...31 = Reserved
+ */
+
+#define USB_DIR_OUT             0x00
+#define USB_DIR_IN              0x80
+
+#define USB_REQ_TYPE_STANDARD   (0x00 << 5)
+#define USB_REQ_TYPE_CLASS      (0x01 << 5)
+#define USB_REQ_TYPE_VENDOR     (0x02 << 5)
+#define USB_REQ_TYPE_RESERVED   (0x03 << 5)
+
+#define USB_RECIP_DEVICE        0x00
+#define USB_RECIP_INTERFACE     0x01
+#define USB_RECIP_ENDPOINT      0x02
+#define USB_RECIP_OTHER         0x03
+
+/* bmRequestType for USB Standard Requests */
+
+/* Clear Interface Request */
+#define CF_DEVICE    (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+#define CF_INTERFACE (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_INTERFACE)
+#define CF_ENDPOINT  (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_ENDPOINT)
+
+/* Get Configuration Request */
+#define GC_DEVICE    (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+
+/* Get Descriptor Request */
+#define GD_DEVICE    (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+
+/* Get Interface Request */
+#define GI_INTERFACE (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_INTERFACE)
+
+/* Get Status Request: See USB 1.1 spec, page 190 */
+#define GS_DEVICE    (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+#define GS_INTERFACE (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_INTERFACE)
+#define GS_ENDPOINT  (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_ENDPOINT)
+
+/* Set Address Request is handled by EZ-USB core */
+
+/* Set Configuration Request */
+#define SC_DEVICE    (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+
+/* Set Descriptor Request */
+#define SD_DEVICE    (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+
+/* Set Feature Request */
+#define SF_DEVICE    (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_DEVICE)
+#define SF_INTERFACE (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_INTERFACE)
+#define SF_ENDPOINT  (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_ENDPOINT)
+
+/* Set Interface Request */
+#define SI_INTERFACE (USB_DIR_OUT | USB_REQ_TYPE_STANDARD | USB_RECIP_INTERFACE)
+
+/* Synch Frame Request */
+#define SY_ENDPOINT  (USB_DIR_IN | USB_REQ_TYPE_STANDARD | USB_RECIP_ENDPOINT)
+
+/* USB Requests (bRequest): See USB 1.1 spec, table 9-4 on page 187 */
+#define GET_STATUS               0
+#define CLEAR_FEATURE            1
+/* Value '2' is reserved for future use */
+#define SET_FEATURE              3
+/* Value '4' is reserved for future use */
+#define SET_ADDRESS              5
+#define GET_DESCRIPTOR           6
+#define SET_DESCRIPTOR           7
+#define GET_CONFIGURATION        8
+#define SET_CONFIGURATION        9
+#define GET_INTERFACE           10
+#define SET_INTERFACE           11
+#define SYNCH_FRAME             12
+
+/* Standard Feature Selectors: See USB 1.1 spec, table 9-6 on page 188 */
+#define DEVICE_REMOTE_WAKEUP     1
+#define ENDPOINT_HALT            0
+
+/************************** EZ-USB specific stuff **************************/
+
+/** USB Interrupts. See AN2131-TRM, page 9-4 for details */
+enum usb_isr {
+	SUDAV_ISR = 13,
+	SOF_ISR,
+	SUTOK_ISR,
+	SUSPEND_ISR,
+	USBRESET_ISR,
+	IBN_ISR,
+	EP0IN_ISR,
+	EP0OUT_ISR,
+	EP1IN_ISR,
+	EP1OUT_ISR,
+	EP2IN_ISR,
+	EP2OUT_ISR,
+	EP3IN_ISR,
+	EP3OUT_ISR,
+	EP4IN_ISR,
+	EP4OUT_ISR,
+	EP5IN_ISR,
+	EP5OUT_ISR,
+	EP6IN_ISR,
+	EP6OUT_ISR,
+	EP7IN_ISR,
+	EP7OUT_ISR
+};
+
+/*************************** Function Prototypes ***************************/
+
+__xdata uint8_t *usb_get_endpoint_cs_reg(uint8_t ep);
+void usb_reset_data_toggle(uint8_t ep);
+
+bool usb_handle_get_status(void);
+bool usb_handle_clear_feature(void);
+bool usb_handle_set_feature(void);
+bool usb_handle_get_descriptor(void);
+void usb_handle_set_interface(void);
+
+void usb_handle_setup_data(void);
+void usb_init(void);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/USBJmpTb.a51
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/USBJmpTb.a51 b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/USBJmpTb.a51
new file mode 100755
index 0000000..8ddd680
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/USBJmpTb.a51
@@ -0,0 +1,83 @@
+;--------------------------------------------------------------------------;
+;    Copyright (C) 2011-2013 by Martin Schmoelzer                          ;
+;    <ma...@student.tuwien.ac.at>                              ;
+;                                                                          ;
+;    This program is free software; you can redistribute it and/or modify  ;
+;    it under the terms of the GNU General Public License as published by  ;
+;    the Free Software Foundation; either version 2 of the License, or     ;
+;    (at your option) any later version.                                   ;
+;                                                                          ;
+;    This program is distributed in the hope that it will be useful,       ;
+;    but WITHOUT ANY WARRANTY; without even the implied warranty of        ;
+;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         ;
+;    GNU General Public License for more details.                          ;
+;                                                                          ;
+;    You should have received a copy of the GNU General Public License     ;
+;    along with this program; if not, write to the                         ;
+;    Free Software Foundation, Inc.,                                       ;
+;    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           ;
+;--------------------------------------------------------------------------;
+
+.module JUMPTABLE
+.globl USB_AutoVector
+.globl USB_Jump_Table
+
+;--------------------------------------------------------------------------;
+; Interrupt Vectors                                                        ;
+;--------------------------------------------------------------------------;
+.area   USB_JV (ABS,OVR)   ; Absolute, Overlay
+.org    0x43               ; USB interrupt (INT2) jumps here
+USB_AutoVector = #. + 2
+    ljmp  USB_Jump_Table
+
+;--------------------------------------------------------------------------;
+; USB Jump Table                                                           ;
+;--------------------------------------------------------------------------;
+.area  USB_JT (ABS)        ; Absolute placement
+.org   0x1B00              ; Place jump table at 0x1B00
+
+USB_Jump_Table:            ; autovector jump table
+    ljmp  _sudav_isr       ; Setup Data Available
+    .db 0
+    ljmp  _sof_isr         ; Start of Frame
+    .db 0
+    ljmp  _sutok_isr       ; Setup Data Loading
+    .db 0
+    ljmp  _suspend_isr     ; Global Suspend
+    .db 0
+    ljmp  _usbreset_isr    ; USB Reset
+    .db 0
+    ljmp  _ibn_isr         ; IN Bulk NAK interrupt
+    .db 0
+    ljmp  _ep0in_isr       ; Endpoint 0 IN
+    .db 0
+    ljmp  _ep0out_isr      ; Endpoint 0 OUT
+    .db 0
+    ljmp  _ep1in_isr       ; Endpoint 1 IN
+    .db 0
+    ljmp  _ep1out_isr      ; Endpoint 1 OUT
+    .db 0
+    ljmp  _ep2in_isr       ; Endpoint 2 IN
+    .db 0
+    ljmp  _ep2out_isr      ; Endpoint 2 OUT
+    .db 0
+    ljmp  _ep3in_isr       ; Endpoint 3 IN
+    .db 0
+    ljmp  _ep3out_isr      ; Endpoint 3 OUT
+    .db 0
+    ljmp  _ep4in_isr       ; Endpoint 4 IN
+    .db 0
+    ljmp  _ep4out_isr      ; Endpoint 4 OUT
+    .db 0
+    ljmp  _ep5in_isr       ; Endpoint 5 IN
+    .db 0
+    ljmp  _ep5out_isr      ; Endpoint 5 OUT
+    .db 0
+    ljmp  _ep6in_isr       ; Endpoint 6 IN
+    .db 0
+    ljmp  _ep6out_isr      ; Endpoint 6 OUT
+    .db 0
+    ljmp  _ep7in_isr       ; Endpoint 7 IN
+    .db 0
+    ljmp  _ep7out_isr      ; Endpoint 7 OUT
+    .db 0

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e302582d/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/delay.c
----------------------------------------------------------------------
diff --git a/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/delay.c b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/delay.c
new file mode 100755
index 0000000..82569e2
--- /dev/null
+++ b/docs/os/tutorials/downloads/openocd-code-89bf96ffe6ac66c80407af8383b9d5adc0dc35f4/src/jtag/drivers/OpenULINK/src/delay.c
@@ -0,0 +1,51 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Martin Schmoelzer                               *
+ *   <ma...@student.tuwien.ac.at>                              *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+ ***************************************************************************/
+
+#include "delay.h"
+
+void delay_5us(void)
+{
+	NOP;
+}
+
+void delay_1ms(void)
+{
+	uint16_t i;
+
+	for (i = 0; i < 598; i++)
+		;
+}
+
+void delay_us(uint16_t delay)
+{
+	uint16_t i;
+	uint16_t maxcount = (delay / 5);
+
+	for (i = 0; i < maxcount; i++)
+		delay_5us();
+}
+
+void delay_ms(uint16_t delay)
+{
+	uint16_t i;
+
+	for (i = 0; i < delay; i++)
+		delay_1ms();
+}