/**
@defgroup        boards_cc1312_launchpad TI CC1312 LaunchPad
@ingroup         boards
@brief           Texas Instruments SimpleLink(TM) CC1312 Wireless MCU LaunchPad(TM) Kit

## Overview

The [LAUNCHXL-CC1312R1](http://www.ti.com/tool/LAUNCHXL-CC1312R1) is a Texas
Instrument's development kit for the CC1312R1 SoC MCU which combines a
Cortex-M4F microcontroller alongside a dedicated Cortex-M0 to control radio.

## Hardware

![LAUNCHXL-CC1312R1](http://www.ti.com/diagrams/launchxl-cc1312r1_cc1312r1-top-prof1.jpg)

| MCU               | CC1312R1              |
|:----------------- |:--------------------- |
| Family            | ARM Cortex-M4F        |
| Vendor            | Texas Instruments     |
| RAM               | 80KiB                 |
| Flash             | 352KiB                |
| Frequency         | 48MHz                 |
| FPU               | yes                   |
| Timers            | 4                     |
| ADCs              | 1x 12-bit (channels)  |
| UARTs             | 2                     |
| SPIs              | 2                     |
| I2Cs              | 1                     |
| Vcc               | 1.8V - 3.8V           |
| Datasheet         | [Datasheet](http://www.ti.com/lit/ds/symlink/cc1312r.pdf) (pdf file) |
| Reference Manual  | [Reference Manual](http://www.ti.com/lit/ug/swcu185d/swcu185d.pdf) |

## Board pinout

The [CC1312R Quick Start Guide](http://www.ti.com/lit/ml/swru535c/swru535c.pdf)
provides the default pinout for the board.

## Flashing and Debugging

The LAUNCHXL-CC1312R1 comes with an XDS110 on-board debug probe that provides
programming, flashing and debugging capabilities.

### Using TI tools

#### Installing CCS and Uniflash

The TI's Code Composer Studio provides the necessary tools to use the debug
features of the XDS110; Uniflash provides flashing tools. Both programs can
be found here:

- [Code Composer Studio (CCS) Integrated Development Environment (IDE)](http://www.ti.com/tool/CCSTUDIO).
- [Uniflash Standalone Flash Tool for TI Microcontrollers (MCU), Sitara Processors & SimpleLink devices](http://www.ti.com/tool/UNIFLASH).

Before using the XDS110 with the latest CCS/Uniflash versions the firmware for
it needs to be updated. Texas Instruments has a guide to correctly update it
[here](http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#updating-the-xds110-firmware).

#### Setting up the environment

In order to make use of the programming and debugging capabilities of the XDS110
some environment variable needs to be set:

```
export CCS_PATH=<path to ti install folder>/ti/ccs930
export UNIFLASH_PATH<path to ti install folder>/ti/uniflash_5.2.0
```

That assumes you have CCS 9.3.0 (for the path name) and Uniflash 5.2.0, adjust
accordingly.

After that you can flash using the RIOT `make flash` command on your application
or to debug you first start the debug server:

```
make debug-server
```

And then on another terminal you can run:

```
make debug
```

It will open GDB and connect to the debug server automatically.

#### Reset

The LAUNCHXL-CC1312R1 provides a reset button but it can also be reset from
a computer using the `make reset` command.

### Using OpenOCD

To use OpenOCD with the XDS110 you need to use the an special version of
OpenOCD made by TI (upstream version is not _yet_ compatible). You can
clone and compile it from source:

```
# Clone into the openocd-ti folder
git clone https://git.ti.com/cgit/sdo-emu/openocd openocd-ti

# Change directory to the openocd source code
cd openocd-ti/openocd

# Configure, build, install
./configure
make
sudo make install
```

#### Setting up the environment

Now that we have the TI version of OpenOCD we need to export the `PROGRAMMER`
environment variable, this is to enable OpenOCD instead of Uniflash.

```
export PROGRAMMER=openocd
```

Now we can just do `make debug-server` and then `make debug`, this all using
OpenOCD.

*/
