README
======
This is the README file for the port of NuttX to the TI CC3200 Launchpad.
OpenOCD for Windows
===================
Get the CC3200 SDK
------------------
Get this from the TI web site. Also get "CC3200 SimpleLink™ Wi-Fi® and
IoT Solution With MCU LaunchPad™ Getting Started Guide" (SWRU376A)
Get OpenOCD
------------
The OpenOCD project is here: http://openocd.sourceforge.net/
I use the pre-built binaries provided by Freddie Chopin that can b
downloaded here: http://www.freddiechopin.info/
I used version 0.8.0 which available here:
http://www.freddiechopin.info/en/articles/34-news/92-openocd-w-wersji-080
Other versions are available here:
http://www.freddiechopin.info/en/download/category/4-openocd
Get Zadig
---------
Unless you are very clever with Windows drivers, then I also recommend
that you download and install Zadig: http://zadig.akeo.ie/
Other Stuff
-----------
USB Cable, your favorite serial terminal program, NuttX build with
one of the CC3200 configurations in this diretory.
Installing
----------
Install the TI CC3200 SDK and OpenOCD. Zadig is just an binary so there
is no installation. Plug in the CC3200 via the USB cable. You should see
two new devices in the Windows Device Manager, both called:
USB <-> JTAG/SWD
There will be indications on the driver icon that no driver is installed.
Follow the instructions in the paragraph "Install USB Driver" to install
the TI USB drivers. You need to do this twice, once for each device. Now
you will have two devices with different names:
CC3200CP JTAG Port A, and
CC3200CP UART Port B
OpenOCD cannot use the TI JTAG drivers. So we need to replace that port
(ONLY) with the libusb driver. Use Zadig to install the libusb driver
replacing the TI driver for "CC3200CP JTAG Port A". Now you should have
the following under "Ports (COM & LPT)":
CC3200 UART Port B
And under "Universal Serial Bus Devices", again:
USB <-> JTAG/SWD
But this time without the indication that a driver is needed.
Starting OpenOCD
----------------
These instructions assume that (1) you are using a terminal with a Bash
shell under Cygwin, (2) that you installed OpenOCD at C:\openocd-0.8.0,
and (3) you are using a 64-bit windows version. You will need to make
minor changes if any of these are not true.
The script to use with OpenOCD 0.8.0 is provided in
nuttx/configs/cc3200-launchpad/tools. Go there and start OpenOCd as
follow:
$ cd configs/cc3200-launchpad/tools
$ /cygdrive/c/openocd-0.8.0/bin-x64/openocd-x64-0.8.0.exe --file cc3200.cfg
And you should see something like:
Open On-Chip Debugger 0.8.0 (2014-04-28-08:42)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: cc3200.jrc tap/device found: 0x0b97c02f (mfg: 0x017, part: 0xb97c, ver: 0x0)
Info : JTAG tap: cc3200.dap enabled
Info : cc3200.cpu: hardware has 6 breakpoints, 4 watchpoints
Open the Serial Terminal
------------------------
Connect the CC3200 board via the USB cabale. Open the serial terminal
program using the libusb COM device. For me this is usually COM6 but
could be anything. If you are unsure, remove the CC3200 and see which
one goes away.
The serial interface should be configured 115200 8N1.
Using GDB
---------
Start GDB and connect to OpenOCD:
$ arm-none-eabi-gdb
(gdb) target remote localhost:3333
Load and start the NuttX ELF file (nuttx):
(gdb) mon reset halt
(gdb) load nuttx
(gdb) cont
(gdb)
After entering cont(inue), you should see the NSH prompt in the serial
terminal window:
C3200 init
NuttShell (NSH)
nsh>