1.. _msp_exp432p401r_launchxl:
2
3MSP-EXP432P401R LaunchXL
4########################
5
6Overview
7********
8
9The SimpleLink MSP‐EXP432P401R LaunchPad development kit is an easy-to-use evaluation
10module for the SimpleLink MSP432P401R microcontroller. It contains everything needed to start
11developing on the SimpleLink MSP432 low-power + performance ARM |reg| 32-bit Cortex |reg|-M4F
12microcontroller (MCU).
13
14.. figure:: img/msp_exp432p401r_launchxl.jpg
15     :align: center
16     :alt: MSP-EXP432P401R LaunchXL development board
17
18Features:
19=========
20
21* Low-power ARM Cortex-M4F MSP432P401R
22* 40-pin LaunchPad development kit standard that leverages the BoosterPack plug-in module ecosystem
23* XDS110-ET, an open-source onboard debug probe featuring EnergyTrace+ technology and application
24  UART
25* Two buttons and two LEDs for user interaction
26* Backchannel UART through USB to PC
27
28Details on the MSP-EXP432P401R LaunchXL development board can be found in the
29MSP-EXP432P401R LaunchXL User's Guide.
30
31Supported Features
32==================
33
34* The on-board 32-kHz crystal allows for lower LPM3 sleep currents and a higher-precision clock source than the
35  default internal 32-kHz REFOCLK. Therefore, the presence of the crystal allows the full range of low-
36  power modes to be used.
37* The on-board 48-MHz crystal allows the device to run at its maximum operating speed for MCLK and HSMCLK.
38
39The MSP-EXP432P401R LaunchXL development board configuration supports the following hardware features:
40
41+-----------+------------+-----------------------+
42| Interface | Controller | Driver/Component      |
43+===========+============+=======================+
44| NVIC      | on-chip    | nested vectored       |
45|           |            | interrupt controller  |
46+-----------+------------+-----------------------+
47| SYSTICK   | on-chip    | system clock          |
48+-----------+------------+-----------------------+
49| UART      | on-chip    | serial port           |
50+-----------+------------+-----------------------+
51
52More details about the supported peripherals are available in MSP432P4XX TRM
53Other hardware features are not currently supported by the Zephyr kernel.
54
55Building and Flashing
56*********************
57
58Prerequisites:
59==============
60
61#. Ensure the XDS-110 emulation firmware is updated.
62
63   Download and install the latest `XDS-110 emulation package`_.
64
65   Follow these `xds110 firmware update directions
66   <http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#updating-the-xds110-firmware>`_
67
68   Note that the emulation package install may place the xdsdfu utility
69   in ``<install_dir>/ccs_base/common/uscif/xds110/``.
70
71#. Install OpenOCD
72
73   You can obtain OpenOCD by following these
74   :ref:`installing the latest Zephyr SDK instructions <toolchain_zephyr_sdk>`.
75
76   After the installation, add the directory containing the OpenOCD executable
77   to your environment's PATH variable. For example, use this command in Linux:
78
79   .. code-block:: console
80
81      export PATH=$ZEPHYR_SDK_INSTALL_DIR/sysroots/x86_64-pokysdk-linux/usr/bin/openocd:$PATH
82
83   If you had previously installed TI OpenOCD, you can simply switch to use
84   the one in the Zephyr SDK. If for some reason you wish to continue to use
85   your TI OpenOCD installation, you can set the OPENOCD and
86   OPENOCD_DEFAULT_PATH variables in
87   :zephyr_file:`boards/arm/msp_exp432p401r_launchxl/board.cmake` to point the build
88   to the paths of the OpenOCD binary and its scripts, before
89   including the common openocd.board.cmake file:
90
91   .. code-block:: cmake
92
93      set(OPENOCD "/usr/local/bin/openocd" CACHE FILEPATH "" FORCE)
94      set(OPENOCD_DEFAULT_PATH /usr/local/share/openocd/scripts)
95      include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
96
97Flashing
98========
99
100Follow the :ref:`getting_started` instructions for Zephyr application
101development.
102
103For example, to build and flash the :ref:`hello_world` application for the
104MSP-EXP432P401R LaunchXL:
105
106.. zephyr-app-commands::
107   :zephyr-app: samples/hello_world
108   :board: msp_exp432p401r_launchxl
109   :goals: flash
110
111This will load the image into flash.
112
113To see program output from UART0, connect a separate terminal window:
114
115.. code-block:: console
116
117  % screen /dev/ttyACM0 115200 8N1
118
119Then press the reset button (S3) on the board to run the program.
120
121Debugging
122=========
123
124To debug a previously flashed image, after resetting the board, use the 'debug'
125build target:
126
127.. zephyr-app-commands::
128   :zephyr-app: samples/hello_world
129   :board: msp_exp432p401r_launchxl
130   :maybe-skip-config:
131   :goals: debug
132
133References
134**********
135
136TI MSP432 Wiki:
137   https://en.wikipedia.org/wiki/TI_MSP432
138
139TI MSP432P401R Product Page:
140   http://www.ti.com/product/msp432p401r
141
142TI MSP432 SDK:
143   http://www.ti.com/tool/SIMPLELINK-MSP432-SDK
144
145.. _UniFlash:
146   http://processors.wiki.ti.com/index.php/UniFlash_v4_Quick_Guide#Command_Line_Interface
147
148.. _CCS IDE:
149   http://www.ti.com/tool/ccstudio
150
151..  _XDS-110 emulation package:
152   http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package#XDS_Emulation_Software_.28emupack.29_Download
153