boards: arm: Add support for TI MSP-EXP432P401R-LAUNCHXL

This patch adds support for TI Simplelink MSP-EXP432P401R-LAUNCHXL
development board based on Cortex M4 family

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Manivannan Sadhasivam 2017-07-22 11:43:10 +05:30 committed by Kumar Gala
commit 1e483b48c0
14 changed files with 239 additions and 0 deletions

View file

@ -41,6 +41,7 @@ boards/arm/frdm_k64f/* @MaureenHelm
boards/arm/frdm_kw41z/* @MaureenHelm
boards/arm/hexiwear_k64/* @MaureenHelm
boards/arm/mps2_an385/* @fvincenzo
boards/arm/msp_exp432p401r_launchxl/* @Mani-Sadhasivam
boards/arm/nrf51_blenano/* @rsalveti
boards/arm/nrf52_pca10040/* @carlescufi
boards/arm/nucleo_f401re/* @rsalveti @idlethread

View file

@ -0,0 +1,6 @@
# Kconfig - TI MSP-EXP432P401R LaunchXL configuration
#
if BOARD_MSP_EXP432P401R_LAUNCHXL
endif # BOARD_MSP_EXP432P401R_LAUNCHXL

View file

@ -0,0 +1,6 @@
# Kconfig - TI SimpleLink MSP-EXP432P401R LaunchXL Development Board
#
config BOARD_MSP_EXP432P401R_LAUNCHXL
bool "TI MSP-EXP432P401R LAUNCHXL"
depends on SOC_MSP432P401R

View file

@ -0,0 +1,9 @@
# Kconfig - TI MSP-EXP432P401R LaunchXL development board configuration
#
if BOARD_MSP_EXP432P401R_LAUNCHXL
config BOARD
default msp_exp432p401r_launchxl
endif # BOARD_MSP_EXP432P401R_LAUNCHXL

View file

@ -0,0 +1,2 @@
# No C files (yet)
obj- += dummy.o

View file

@ -0,0 +1,5 @@
/*
* Copyright (c) 2017, Linaro Ltd
*
* SPDX-License-Identifier: Apache-2.0
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View file

@ -0,0 +1,128 @@
.. _msp_exp432p401r_launchxl:
MSP-EXP432P401R LaunchXL
########################
Overview
********
The SimpleLink MSPEXP432P401R LaunchPad development kit is an easy-to-use evaluation
module for the SimpleLink MSP432P401R microcontroller. It contains everything needed to start
developing on the SimpleLink MSP432 low-power + performance ARM |reg| 32-bit Cortex |reg|-M4F
microcontroller (MCU).
.. figure:: img/msp_exp432p401r_launchxl.jpg
:width: 1032px
:align: center
:height: 1663px
:alt: MSP-EXP432P401R LaunchXL development board
Features:
=========
* Low-power ARM Cortex-M4F MSP432P401R
* 40-pin LaunchPad development kit standard that leverages the BoosterPack plug-in module ecosystem
* XDS110-ET, an open-source onboard debug probe featuring EnergyTrace+ technology and application
UART
* Two buttons and two LEDs for user interaction
* Backchannel UART through USB to PC
Details on the MSP-EXP432P401R LaunchXL development board can be found in the
`MSP-EXP432P401R LaunchXL User's Guide`_.
Supported Features
==================
* The on-board 32-kHz crystal allows for lower LPM3 sleep currents and a higher-precision clock source than the
default internal 32-kHz REFOCLK. Therefore, the presence of the crystal allows the full range of low-
power modes to be used.
* The on-board 48-MHz crystal allows the device to run at its maximum operating speed for MCLK and HSMCLK.
The MSP-EXP432P401R LaunchXL development board configuration supports the following hardware features:
+-----------+------------+-----------------------+
| Interface | Controller | Driver/Component |
+===========+============+=======================+
| NVIC | on-chip | nested vectored |
| | | interrupt controller |
+-----------+------------+-----------------------+
| SYSTICK | on-chip | system clock |
+-----------+------------+-----------------------+
| UART | on-chip | serial port |
+-----------+------------+-----------------------+
More details about the supported periperals are available in `MSP432P4XX TRM`_
Other hardware features are not currently supported by the Zephyr kernel.
Building and Flashing
*********************
Building
========
Follow the :ref:`getting_started` instructions for Zephyr application
development.
To build for the MSP-EXP432P401R LaunchXL:
.. code-block:: console
$ make -C samples/hello_world BOARD=msp_exp432p401r_launchxl
The resulting ``zephyr.elf`` binary can be flashed onto MSP-EXP432P401R LaunchXL
using the command line utility mentioned below.
Flashing
========
For Linux:
----------
`UniFlash`_ command line utility is used to program the flash memory. Only
elf loading is currently supported.
The following command will flash the ``zephyr.elf`` binary to the MSP-EXP432P401R LaunchXL board:
.. code-block:: console
$ ./dslite.sh --config=MSP432P401R.ccxml zephyr.elf
.. note:: The ccxml configuration file is included in boards/arm/msp_exp432p401r_launchxl/support.
Debugging
=========
MSP-EXP432P401R LaunchXL board supports debugging primarily using `CCS IDE`_. More information
on debugging using CCS can be found in `CCS Debug Handbook`_.
Launchpad also supports debugging using GDB. See section 3.3 of `GCC ARM Toolchain Guide`_.
References
**********
TI MSP432 Wiki:
https://en.wikipedia.org/wiki/TI_MSP432
TI MSP432P401R Product Page:
http://www.ti.com/product/msp432p401r
TI MSP432 SDK:
http://www.ti.com/tool/SIMPLELINK-MSP432-SDK
.. _MSP-EXP432P401R LaunchXL User's Guide:
http://www.ti.com/lit/ug/slau597c/slau597c.pdf
.. _MSP432P4XX TRM:
http://www.ti.com/lit/ug/slau356f/slau356f.pdf
.. _UniFlash:
http://processors.wiki.ti.com/index.php/UniFlash_v4_Quick_Guide#Command_Line_Interface
.. _CCS IDE:
http://www.ti.com/tool/ccstudio
.. _CCS Debug Handbook:
http://processors.wiki.ti.com/index.php/Debug_Handbook_for_CCS#Cortex_M3.2FM4.2FTiva.2FMSP432
.. _GCC ARM Toolchain Guide:
http://www.ti.com/lit/ug/slau688b/slau688b.pdf

View file

@ -0,0 +1,7 @@
identifier: msp_exp432p401r_launchxl
name: MSP-EXP432P401R-LAUNCHXL
type: mcu
arch: arm
toolchain:
- zephyr
- gccarmemb

View file

@ -0,0 +1,21 @@
CONFIG_ARM=y
CONFIG_BOARD_MSP_EXP432P401R_LAUNCHXL=y
CONFIG_SOC_FAMILY_TISIMPLELINK=y
CONFIG_SOC_SERIES_MSP432P4XX=y
CONFIG_SOC_MSP432P401R=y
CONFIG_CORTEX_M_SYSTICK=y
CONFIG_CPU_HAS_FPU=y
CONFIG_FLASH=y
CONFIG_FLASH_BASE_ADDRESS=0x00000000
# enable uart driver
CONFIG_SERIAL=y
CONFIG_SERIAL_HAS_DRIVER=y
CONFIG_UART_MSP432P4XX=y
# enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
# Enable MSP432P4XX SDK driver files
CONFIG_HAS_MSP432P4XXSDK=y

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="2" id="SWD Mode Settings">
<choice Name="SWD Mode - Aux COM port is target TDO pin" value="nothing"/>
</property>
<platform XML_version="1.2" id="platform_0">
<instance XML_version="1.2" desc="MSP432P401R_0" href="devices/msp432p401r.xml" id="MSP432P401R_0" xml="msp432p401r.xml" xmlpath="devices"/>
</platform>
</connection>
</configuration>
</configurations>

View file

@ -51,6 +51,7 @@ dtb-$(CONFIG_BOARD_OLIMEX_STM32_P405) = olimex_stm32_p405.dts_compiled
dtb-$(CONFIG_BOARD_STM32F429I_DISC1) = stm32f429i_disc1.dts_compiled
dtb-$(CONFIG_BOARD_EFM32WG_STK3800) = efm32wg_stk3800.dts_compiled
dtb-$(CONFIG_BOARD_96B_NEONKEY) = 96b_neonkey.dts_compiled
dtb-$(CONFIG_BOARD_MSP_EXP432P401R_LAUNCHXL) = msp_exp432p401r_launchxl.dts_compiled
always := $(dtb-y)
endif

View file

@ -0,0 +1,25 @@
/dts-v1/;
#include <ti/msp432p4xx.dtsi>
/ {
model = "TI MSP-EXP432P401R LaunchXL";
compatible = "ti,msp-exp432p401r-launchxl","ti,msp432p401r",
"ti,msp432p4xx";
aliases {
uart_0 = &uart0;
};
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
};
};
&uart0 {
status = "ok";
current-speed = <115200>;
};

View file

@ -0,0 +1,12 @@
/* This file is a temporary workaround for mapping of the generated information
* to the current driver definitions. This will be removed when the drivers
* are modified to handle the generated information, or the mapping of
* generated data matches the driver definitions.
*/
#define CONFIG_NUM_IRQ_PRIO_BITS ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
#define CONFIG_UART_MSP432P4XX_NAME TI_MSP432P4XX_UART_40001000_LABEL
#define CONFIG_UART_MSP432P4XX_BASE_ADDRESS TI_MSP432P4XX_UART_40001000_BASE_ADDRESS
#define CONFIG_UART_MSP432P4XX_BAUD_RATE TI_MSP432P4XX_UART_40001000_CURRENT_SPEED