From 129bb6b1c3b74b52a1b168cbe0bfe9eef44cc007 Mon Sep 17 00:00:00 2001
From: Deomid Ryabkov <rojer@cesanta.com>
Date: Tue, 12 Apr 2016 09:40:07 +0300
Subject: [PATCH] Add MSP432 lib and example

PUBLISHED_FROM=57ff02457269938feae805f2972b96b15931d41a
---
 examples/CC3200/Makefile                      |   3 -
 examples/CC3200/ccs/MG_sensor_demo/.cproject  |   4 +-
 .../org.eclipse.cdt.codan.core.prefs          |   3 -
 .../.settings/org.eclipse.cdt.core.prefs      |   3 -
 .../org.eclipse.cdt.debug.core.prefs          |   2 -
 .../org.eclipse.core.resources.prefs          |  11 -
 examples/CC3200/ccs/Makefile                  |   2 +
 examples/CC3200/ccs/Mongoose/.cproject        |   4 +-
 .../org.eclipse.cdt.codan.core.prefs          |   3 -
 .../org.eclipse.cdt.debug.core.prefs          |   2 -
 .../org.eclipse.core.resources.prefs          |  11 -
 examples/CC3200/main.c                        |   4 +-
 examples/MSP432/ccs/MG_hello/.ccsproject      |  15 +
 examples/MSP432/ccs/MG_hello/.cproject        | 267 +++++++
 examples/MSP432/ccs/MG_hello/.project         |  29 +
 examples/MSP432/ccs/MG_hello/Board.h          |  99 +++
 examples/MSP432/ccs/MG_hello/MG_hello.cfg     | 540 +++++++++++++++
 .../MSP432/ccs/MG_hello/MSP_EXP432P401R.c     | 653 ++++++++++++++++++
 .../MSP432/ccs/MG_hello/MSP_EXP432P401R.cmd   |  61 ++
 .../MSP432/ccs/MG_hello/MSP_EXP432P401R.h     | 252 +++++++
 examples/MSP432/ccs/MG_hello/main.c           | 154 +++++
 .../MG_hello/targetConfigs/MSP432P401R.ccxml  |  13 +
 .../ccs/MG_hello/targetConfigs/readme.txt     |   9 +
 examples/MSP432/ccs/MG_hello/wifi.c           | 116 ++++
 examples/MSP432/ccs/MG_hello/wifi.h           |  14 +
 examples/MSP432/ccs/Makefile                  |   2 +
 examples/MSP432/ccs/Mongoose/.ccsproject      |  13 +
 examples/MSP432/ccs/Mongoose/.cproject        | 190 +++++
 examples/MSP432/ccs/Mongoose/.project         |  40 ++
 examples/MSP432/ccs/Mongoose/Mongoose.cfg     |   1 +
 examples/Makefile                             |   2 +-
 31 files changed, 2477 insertions(+), 45 deletions(-)
 delete mode 100644 examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.codan.core.prefs
 delete mode 100755 examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.core.prefs
 delete mode 100644 examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.debug.core.prefs
 delete mode 100644 examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.core.resources.prefs
 create mode 100644 examples/CC3200/ccs/Makefile
 delete mode 100644 examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.codan.core.prefs
 delete mode 100644 examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.debug.core.prefs
 delete mode 100644 examples/CC3200/ccs/Mongoose/.settings/org.eclipse.core.resources.prefs
 create mode 100644 examples/MSP432/ccs/MG_hello/.ccsproject
 create mode 100644 examples/MSP432/ccs/MG_hello/.cproject
 create mode 100644 examples/MSP432/ccs/MG_hello/.project
 create mode 100644 examples/MSP432/ccs/MG_hello/Board.h
 create mode 100644 examples/MSP432/ccs/MG_hello/MG_hello.cfg
 create mode 100644 examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.c
 create mode 100644 examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.cmd
 create mode 100644 examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.h
 create mode 100644 examples/MSP432/ccs/MG_hello/main.c
 create mode 100644 examples/MSP432/ccs/MG_hello/targetConfigs/MSP432P401R.ccxml
 create mode 100644 examples/MSP432/ccs/MG_hello/targetConfigs/readme.txt
 create mode 100644 examples/MSP432/ccs/MG_hello/wifi.c
 create mode 100644 examples/MSP432/ccs/MG_hello/wifi.h
 create mode 100644 examples/MSP432/ccs/Makefile
 create mode 100644 examples/MSP432/ccs/Mongoose/.ccsproject
 create mode 100644 examples/MSP432/ccs/Mongoose/.cproject
 create mode 100644 examples/MSP432/ccs/Mongoose/.project
 create mode 100644 examples/MSP432/ccs/Mongoose/Mongoose.cfg

diff --git a/examples/CC3200/Makefile b/examples/CC3200/Makefile
index cbb9fe4e7..227bc70b6 100644
--- a/examples/CC3200/Makefile
+++ b/examples/CC3200/Makefile
@@ -7,9 +7,6 @@ PORT ?= auto
 MAKEFLAGS += w
 
 all clean:
-	rm -rf ccs/*/Debug
-	rm -rf ccs/*/Release
-	rm -rf ccs/*/.launches
 	docker run --rm -i -v $(SRC_DIR):/src $(SDK) \
 		/bin/bash -c "\
 			make -C /src/mongoose mongoose.c mongoose.h && \
diff --git a/examples/CC3200/ccs/MG_sensor_demo/.cproject b/examples/CC3200/ccs/MG_sensor_demo/.cproject
index 1cf62a468..c1fd08c51 100644
--- a/examples/CC3200/ccs/MG_sensor_demo/.cproject
+++ b/examples/CC3200/ccs/MG_sensor_demo/.cproject
@@ -31,7 +31,7 @@
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE.1334773591" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
 									<listOptionValue builtIn="false" value="SL_PLATFORM_MULTI_THREADED=1"/>
-									<listOptionValue builtIn="false" value="CC3200_FS_SLFS=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
 									<listOptionValue builtIn="false" value="USE_FREERTOS"/>
 									<listOptionValue builtIn="false" value="cc3200"/>
 								</option>
@@ -126,7 +126,7 @@
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE.709446512" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
 									<listOptionValue builtIn="false" value="SL_PLATFORM_MULTI_THREADED=1"/>
-									<listOptionValue builtIn="false" value="CC3200_FS_SLFS=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
 									<listOptionValue builtIn="false" value="USE_FREERTOS"/>
 									<listOptionValue builtIn="false" value="cc3200"/>
 								</option>
diff --git a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.codan.core.prefs b/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.codan.core.prefs
deleted file mode 100644
index f653028c5..000000000
--- a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.codan.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-inEditor=false
-onBuild=false
diff --git a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.core.prefs b/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.core.prefs
deleted file mode 100755
index b22c31ed4..000000000
--- a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-environment/project/com.ti.ccstudio.buildDefinitions.TMS470.Release.2030896039/append=true
-environment/project/com.ti.ccstudio.buildDefinitions.TMS470.Release.2030896039/appendContributed=true
diff --git a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.debug.core.prefs b/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.debug.core.prefs
deleted file mode 100644
index 2adc7b1dd..000000000
--- a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.cdt.debug.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
diff --git a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.core.resources.prefs b/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 37af36743..000000000
--- a/examples/CC3200/ccs/MG_sensor_demo/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-encoding//Debug/makefile=UTF-8
-encoding//Debug/objects.mk=UTF-8
-encoding//Debug/sources.mk=UTF-8
-encoding//Debug/subdir_rules.mk=UTF-8
-encoding//Debug/subdir_vars.mk=UTF-8
-encoding//Release/makefile=UTF-8
-encoding//Release/objects.mk=UTF-8
-encoding//Release/sources.mk=UTF-8
-encoding//Release/subdir_rules.mk=UTF-8
-encoding//Release/subdir_vars.mk=UTF-8
diff --git a/examples/CC3200/ccs/Makefile b/examples/CC3200/ccs/Makefile
new file mode 100644
index 000000000..85279a195
--- /dev/null
+++ b/examples/CC3200/ccs/Makefile
@@ -0,0 +1,2 @@
+clean:
+	rm -rf */Debug */Release */.launches */.settings */.xdchelp */src
diff --git a/examples/CC3200/ccs/Mongoose/.cproject b/examples/CC3200/ccs/Mongoose/.cproject
index f601d79bb..814c770f3 100644
--- a/examples/CC3200/ccs/Mongoose/.cproject
+++ b/examples/CC3200/ccs/Mongoose/.cproject
@@ -29,7 +29,7 @@
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE.2068422510" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
 									<listOptionValue builtIn="false" value="SL_PLATFORM_MULTI_THREADED=1"/>
-									<listOptionValue builtIn="false" value="CC3200_FS_SLFS=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
 									<listOptionValue builtIn="false" value="cc3200"/>
 								</option>
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.1338331575" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
@@ -94,7 +94,7 @@
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE.1633469996" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.DEFINE" valueType="definedSymbols">
 									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
 									<listOptionValue builtIn="false" value="SL_PLATFORM_MULTI_THREADED=1"/>
-									<listOptionValue builtIn="false" value="CC3200_FS_SLFS=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
 									<listOptionValue builtIn="false" value="cc3200"/>
 								</option>
 								<option id="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.627114921" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
diff --git a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.codan.core.prefs b/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.codan.core.prefs
deleted file mode 100644
index f653028c5..000000000
--- a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.codan.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-inEditor=false
-onBuild=false
diff --git a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.debug.core.prefs b/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.debug.core.prefs
deleted file mode 100644
index 2adc7b1dd..000000000
--- a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.cdt.debug.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
diff --git a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.core.resources.prefs b/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 37af36743..000000000
--- a/examples/CC3200/ccs/Mongoose/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-encoding//Debug/makefile=UTF-8
-encoding//Debug/objects.mk=UTF-8
-encoding//Debug/sources.mk=UTF-8
-encoding//Debug/subdir_rules.mk=UTF-8
-encoding//Debug/subdir_vars.mk=UTF-8
-encoding//Release/makefile=UTF-8
-encoding//Release/objects.mk=UTF-8
-encoding//Release/sources.mk=UTF-8
-encoding//Release/subdir_rules.mk=UTF-8
-encoding//Release/subdir_vars.mk=UTF-8
diff --git a/examples/CC3200/main.c b/examples/CC3200/main.c
index 81770c819..31f2211be 100644
--- a/examples/CC3200/main.c
+++ b/examples/CC3200/main.c
@@ -228,6 +228,6 @@ void SimpleLinkSockEventHandler(SlSockEvent_t *e) {
 }
 
 void SimpleLinkGeneralEventHandler(SlDeviceEvent_t *e) {
-  LOG(LL_INFO, ("status %d sender %d", e->EventData.deviceEvent.status,
-                e->EventData.deviceEvent.sender));
+  LOG(LL_ERROR, ("status %d sender %d", e->EventData.deviceEvent.status,
+                 e->EventData.deviceEvent.sender));
 }
diff --git a/examples/MSP432/ccs/MG_hello/.ccsproject b/examples/MSP432/ccs/MG_hello/.ccsproject
new file mode 100644
index 000000000..723a2dd4a
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/.ccsproject
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<deviceVariant value="MSP432P401R"/>
+	<deviceFamily value="MSP432"/>
+	<deviceEndianness value="little"/>
+	<codegenToolVersion value="5.2.7"/>
+	<isElfFormat value="true"/>
+	<rts value="libc.a"/>
+	<createSlaveProjects value=""/>
+	<origin value="/home/rojer/cesanta/ti/tirtos_msp43x_2_16_00_08/resources/msp_exp432P401RLaunchpad/networkExamples/tiNetworkExamples/wiFiExamples/com_ti_rtsc_tirtosmsp430_example_101.projectspec"/>
+	<templateProperties value="id=com_ti_rtsc_tirtosmsp430_example_101.projectspec.tcpEchoCC3X00_MSP_EXP432P401R_TI_MSP432P401R,type=rtsc,products=com.ti.rtsc.TIRTOSmsp430,xdcToolsVersion=3_32_00_06_core,target=ti.targets.arm.elf.M4F,platform=ti.platforms.msp432:MSP432P401R,buildProfile=release,isHybrid=true,configuroOptions= --compileOptions &quot;${COMPILER_FLAGS} &quot;,"/>
+	<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
+	<isTargetManual value="false"/>
+</projectOptions>
diff --git a/examples/MSP432/ccs/MG_hello/.cproject b/examples/MSP432/ccs/MG_hello/.cproject
new file mode 100644
index 000000000..1d39d5a46
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/.cproject
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.638648210">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.638648210" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.638648210" name="Debug" parent="com.ti.ccstudio.buildDefinitions.MSP432.Debug" postbuildStep="" prebuildStep="">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.638648210." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.DebugToolchain.1076366966" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerDebug.1079317900">
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.276624783" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=MSP432P401R"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
+								<listOptionValue builtIn="false" value="XDC_VERSION=3.31.1.33_core"/>
+								<listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSmsp430:2.16.0.08;"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.138822681" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.2.7" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.targetPlatformDebug.1618410608" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.targetPlatformDebug"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.builderDebug.736457078" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.builderDebug"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.compilerDebug.736356176" name="MSP432 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.compilerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC.1591032819" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.1284806631" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.1019484696" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.1019163630" name="Application binary interface. [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.eabi" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.1936183167" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE.938644212" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="__MSP432P401R__"/>
+									<listOptionValue builtIn="false" value="TARGET_IS_MSP432P4XX"/>
+									<listOptionValue builtIn="false" value="MSP432WARE"/>
+									<listOptionValue builtIn="false" value="ccs"/>
+									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH.1321802084" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../Mongoose&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../..&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00/oslib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00/simplelink/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/inc/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/inc&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/driverlib/MSP432P4xx&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.802231855" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER.976177344" name="Enable checking of ULP power rules (--advice:power)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER" value="&quot;all&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING.612029411" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+									<listOptionValue builtIn="false" value="255"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER.1754878942" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.1689634884" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN.1189300180" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.1104211376" name="Set error category for ULP power rules (--advice:power_severity)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.suppress" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.716853038" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT.1816905062" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT.C99" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS.1163073582" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS.147603670" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS.145022476" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS.879075933" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerDebug.1079317900" name="MSP432 Linker" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.MAP_FILE.846990062" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.STACK_SIZE.34022886" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.STACK_SIZE" value="512" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.HEAP_SIZE.1014126637" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.HEAP_SIZE" value="1024" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.OUTPUT_FILE.1315814966" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.XML_LINK_INFO.603154510" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DISPLAY_ERROR_NUMBER.950980130" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP.259050193" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.SEARCH_PATH.926931707" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.LIBRARY.710098937" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.LIBRARY" valueType="libs">
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/driverlib/MSP432P4xx/ccs/msp432p4xx_driverlib.lib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../Mongoose/Debug/Mongoose.lib&quot;"/>
+								</option>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD_SRCS.1725215293" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD2_SRCS.1216891169" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__GEN_CMDS.981400465" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.966033321" name="MSP432 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.ROMWIDTH.574665258" name="Specify rom width (--romwidth, -romwidth)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.ROMWIDTH" value="8" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.MEMWIDTH.173244956" name="Specify memory width (--memwidth, -memwidth)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.MEMWIDTH" value="8" valueType="string"/>
+							</tool>
+							<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1889527785" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1674391127" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.654422520" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M4F" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1998131485" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.2023234812" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1112795975" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1944781751" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
+									<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSMSP430_REPOS}"/>
+									<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
+								</option>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.1553318971" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value="&quot;${COMPILER_FLAGS} &quot;" valueType="string"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+				<externalSettings containerId="Mongoose;com.ti.ccstudio.buildDefinitions.MSP432.Debug.242205865" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+			</storageModule>
+		</cconfiguration>
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.MSP432.Release.436397866">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.MSP432.Release.436397866" moduleId="org.eclipse.cdt.core.settings" name="Release">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.MSP432.Release.436397866" name="Release" parent="com.ti.ccstudio.buildDefinitions.MSP432.Release" postbuildStep="" prebuildStep="">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP432.Release.436397866." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.ReleaseToolchain.374423190" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerRelease.260367345">
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1649672422" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=MSP432P401R"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
+								<listOptionValue builtIn="false" value="XDC_VERSION=3.31.1.33_core"/>
+								<listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSmsp430:2.16.0.08;"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.927265857" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.2.7" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.targetPlatformRelease.1835040420" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.targetPlatformRelease"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.builderRelease.1977190713" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.builderRelease"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.compilerRelease.1200593934" name="MSP432 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.compilerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC.1457348870" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.280776704" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.2145418987" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.1836019986" name="Application binary interface. [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.eabi" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.2113274796" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE.531247366" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="__MSP432P401R__"/>
+									<listOptionValue builtIn="false" value="TARGET_IS_MSP432P4XX"/>
+									<listOptionValue builtIn="false" value="MSP432WARE"/>
+									<listOptionValue builtIn="false" value="ccs"/>
+									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH.881229545" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../Mongoose&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../../../..&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00/oslib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00/simplelink/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/inc/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/inc&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/driverlib/MSP432P4xx&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER.1564386250" name="Enable checking of ULP power rules (--advice:power)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER" value="all" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING.708184392" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+									<listOptionValue builtIn="false" value="255"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER.536483130" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.239547499" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN.968480652" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.350731145" name="Set error category for ULP power rules (--advice:power_severity)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.suppress" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.1651881817" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.1299449598" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS.1687182342" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS.1421282679" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS.1396461343" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS.651013519" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerRelease.260367345" name="MSP432 Linker" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exe.linkerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.MAP_FILE.1948445835" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.STACK_SIZE.2067652312" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.STACK_SIZE" value="512" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.HEAP_SIZE.612962133" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.HEAP_SIZE" value="1024" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.OUTPUT_FILE.2095976499" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.XML_LINK_INFO.712616529" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DISPLAY_ERROR_NUMBER.1224501479" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP.418234384" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.SEARCH_PATH.137176329" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.LIBRARY.818310635" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.linkerID.LIBRARY" valueType="libs">
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/msp432_driverlib_3_10_00_09/driverlib/MSP432P4xx/ccs/msp432p4xx_driverlib.lib&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${PROJECT_LOC}/../Mongoose/Release/Mongoose.lib&quot;"/>
+								</option>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD_SRCS.1894656966" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD2_SRCS.762446262" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__GEN_CMDS.1931644627" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.263181790" name="MSP432 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.ROMWIDTH.505552603" name="Specify rom width (--romwidth, -romwidth)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.ROMWIDTH" value="8" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.MEMWIDTH.748071088" name="Specify memory width (--memwidth, -memwidth)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.hex.MEMWIDTH" value="8" valueType="string"/>
+							</tool>
+							<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1631621958" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.432148205" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1198814330" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M4F" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1903385455" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.2126022150" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1194372441" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1407213349" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
+									<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSMSP430_REPOS}"/>
+									<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
+								</option>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.1959987883" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value="&quot;${COMPILER_FLAGS} &quot;" valueType="string"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="src|msp432p401r.cmd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+				<externalSettings containerId="Mongoose;com.ti.ccstudio.buildDefinitions.MSP432.Release.1544782967" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+			</storageModule>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="tcpEchoCC3X00_MSP_EXP432P401R_TI_MSP432P401R.com.ti.ccstudio.buildDefinitions.MSP432.ProjectType.382106642" name="MSP432" projectType="com.ti.ccstudio.buildDefinitions.MSP432.ProjectType"/>
+	</storageModule>
+	<storageModule moduleId="scannerConfiguration"/>
+	<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
+		<project-mappings>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+		</project-mappings>
+	</storageModule>
+	<storageModule moduleId="refreshScope"/>
+</cproject>
diff --git a/examples/MSP432/ccs/MG_hello/.project b/examples/MSP432/ccs/MG_hello/.project
new file mode 100644
index 000000000..6a90575db
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>MG_hello</name>
+	<comment></comment>
+	<projects>
+		<project>Mongoose</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
+		<nature>com.ti.ccstudio.core.ccsNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+</projectDescription>
diff --git a/examples/MSP432/ccs/MG_hello/Board.h b/examples/MSP432/ccs/MG_hello/Board.h
new file mode 100644
index 000000000..312526897
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/Board.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2015, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __BOARD_H
+#define __BOARD_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "MSP_EXP432P401R.h"
+
+#define Board_initGeneral           MSP_EXP432P401R_initGeneral
+#define Board_initGPIO              MSP_EXP432P401R_initGPIO
+#define Board_initI2C               MSP_EXP432P401R_initI2C
+#define Board_initPWM               MSP_EXP432P401R_initPWM
+#define Board_initSDSPI             MSP_EXP432P401R_initSDSPI
+#define Board_initSPI               MSP_EXP432P401R_initSPI
+#define Board_initUART              MSP_EXP432P401R_initUART
+#define Board_initWatchdog          MSP_EXP432P401R_initWatchdog
+#define Board_initWiFi              MSP_EXP432P401R_initWiFi
+
+#define Board_LED_ON                MSP_EXP432P401R_LED_ON
+#define Board_LED_OFF               MSP_EXP432P401R_LED_OFF
+
+#define Board_BUTTON0               MSP_EXP432P401R_S1
+#define Board_BUTTON1               MSP_EXP432P401R_S2
+#define Board_LED0                  MSP_EXP432P401R_LED1
+#define Board_LED1                  MSP_EXP432P401R_LED_RED
+#define Board_LED2                  MSP_EXP432P401R_LED_RED
+
+/*
+ * MSP_EXP432P401R_LED_GREEN & MSP_EXP432P401R_LED_BLUE are used for
+ * PWM examples.  Uncomment the following lines if you would like to control
+ * the LEDs with the GPIO driver.
+ */
+//#define Board_LED2                  MSP_EXP432P401R_LED_GREEN
+//#define Board_LED3                  MSP_EXP432P401R_LED_BLUE
+
+#define Board_I2C0                  MSP_EXP432P401R_I2CB0
+#define Board_I2C_TMP               MSP_EXP432P401R_I2CB0
+#define Board_I2C_NFC               MSP_EXP432P401R_I2CB0
+#define Board_I2C_TPL0401           MSP_EXP432P401R_I2CB0
+
+#define Board_PWM0                  MSP_EXP432P401R_PWM_TA1_1
+#define Board_PWM1                  MSP_EXP432P401R_PWM_TA1_2
+
+#define Board_SDSPI0                MSP_EXP432P401R_SDSPIB0
+
+#define Board_SPI0                  MSP_EXP432P401R_SPIB0
+#define Board_SPI1                  MSP_EXP432P401R_SPIB2
+
+#define Board_UART0                 MSP_EXP432P401R_UARTA0
+#define Board_UART1                 MSP_EXP432P401R_UARTA2
+
+#define Board_WATCHDOG0             MSP_EXP432P401R_WATCHDOG
+
+#define Board_WIFI                  MSP_EXP432P401R_WIFI
+#define Board_WIFI_SPI              MSP_EXP432P401R_SPIB0
+
+/* Board specific I2C addresses */
+#define Board_TMP006_ADDR           (0x40)
+#define Board_RF430CL330_ADDR       (0x28)
+#define Board_TPL0401_ADDR          (0x40)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __BOARD_H */
diff --git a/examples/MSP432/ccs/MG_hello/MG_hello.cfg b/examples/MSP432/ccs/MG_hello/MG_hello.cfg
new file mode 100644
index 000000000..96f218787
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/MG_hello.cfg
@@ -0,0 +1,540 @@
+/*
+ * Copyright (c) 2015-2016, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+
+/* ================ Clock configuration ================ */
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+/*
+ * Default value is family dependent. For example, Linux systems often only
+ * support a minimum period of 10000 us and multiples of 10000 us.
+ * TI platforms have a default of 1000 us.
+ */
+Clock.tickPeriod = 1000;
+
+
+
+/* ================ Defaults (module) configuration ================ */
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+/*
+ * A flag to allow module names to be loaded on the target. Module name
+ * strings are placed in the .const section for debugging purposes.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Setting this parameter to true will include name strings in the .const
+ *      section so that Errors and Asserts are easier to debug.
+ *  - false
+ *      Setting this parameter to false will reduce footprint in the .const
+ *      section. As a result, Error and Assert messages will contain an
+ *      "unknown module" prefix instead of the actual module name.
+ */
+Defaults.common$.namedModule = true;
+//Defaults.common$.namedModule = false;
+
+
+
+/* ================ Error configuration ================ */
+var Error = xdc.useModule('xdc.runtime.Error');
+/*
+ * This function is called to handle all raised errors, but unlike
+ * Error.raiseHook, this function is responsible for completely handling the
+ * error with an appropriately initialized Error_Block.
+ *
+ * Pick one:
+ *  - Error.policyDefault (default)
+ *      Calls Error.raiseHook with an initialized Error_Block structure and logs
+ *      the error using the module's logger.
+ *  - Error.policySpin
+ *      Simple alternative that traps on a while(1) loop for minimized target
+ *      footprint.
+ *      Using Error.policySpin, the Error.raiseHook will NOT called.
+ */
+Error.policyFxn = Error.policyDefault;
+//Error.policyFxn = Error.policySpin;
+
+/*
+ * If Error.policyFxn is set to Error.policyDefault, this function is called
+ * whenever an error is raised by the Error module.
+ *
+ * Pick one:
+ *  - Error.print (default)
+ *      Errors are formatted and output via System_printf() for easier
+ *      debugging.
+ *  - null
+ *      Errors are not formatted or logged. This option reduces code footprint.
+ *  - non-null function
+ *      Errors invoke custom user function. See the Error module documentation
+ *      for more details.
+ */
+Error.raiseHook = Error.print;
+//Error.raiseHook = null;
+//Error.raiseHook = "&myErrorFxn";
+
+/*
+ * If Error.policyFxn is set to Error.policyDefault, this option applies to the
+ * maximum number of times the Error.raiseHook function can be recursively
+ * invoked. This option limits the possibility of an infinite recursion that
+ * could lead to a stack overflow.
+ * The default value is 16.
+ */
+Error.maxDepth = 2;
+
+
+
+/* ================ Hwi configuration ================ */
+var halHwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
+/*
+ * Checks for Hwi (system) stack overruns while in the Idle loop.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Checks the top word for system stack overflows during the idle loop and
+ *      raises an Error if one is detected.
+ *  - false
+ *      Disabling the runtime check improves runtime performance and yields a
+ *      reduced flash footprint.
+ */
+halHwi.checkStackFlag = true;
+//halHwi.checkStackFlag = false;
+
+/*
+ * The following options alter the system's behavior when a hardware exception
+ * is detected.
+ *
+ * Pick one:
+ *  - Hwi.enableException = true
+ *      This option causes the default m3Hwi.excHandlerFunc function to fully
+ *      decode an exception and dump the registers to the system console.
+ *      This option raises errors in the Error module and displays the
+ *      exception in ROV.
+ *  - Hwi.enableException = false
+ *      This option reduces code footprint by not decoding or printing the
+ *      exception to the system console.
+ *      It however still raises errors in the Error module and displays the
+ *      exception in ROV.
+ *  - Hwi.excHandlerFunc = null
+ *      This is the most aggressive option for code footprint savings; but it
+ *      can difficult to debug exceptions. It reduces flash footprint by
+ *      plugging in a default while(1) trap when exception occur. This option
+ *      does not raise an error with the Error module.
+ */
+m3Hwi.enableException = true;
+//m3Hwi.enableException = false;
+//m3Hwi.excHandlerFunc = null;
+
+/*
+ * Enable hardware exception generation when dividing by zero.
+ *
+ * Pick one:
+ *  - 0 (default)
+ *      Disables hardware exceptions when dividing by zero
+ *  - 1
+ *      Enables hardware exceptions when dividing by zero
+ */
+m3Hwi.nvicCCR.DIV_0_TRP = 0;
+//m3Hwi.nvicCCR.DIV_0_TRP = 1;
+
+/*
+ * Enable hardware exception generation for invalid data alignment.
+ *
+ * Pick one:
+ *  - 0 (default)
+ *      Disables hardware exceptions for data alignment
+ *  - 1
+ *      Enables hardware exceptions for data alignment
+ */
+m3Hwi.nvicCCR.UNALIGN_TRP = 0;
+//m3Hwi.nvicCCR.UNALIGN_TRP = 1;
+
+
+
+/* ================ Idle configuration ================ */
+var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+/*
+ * The Idle module is used to specify a list of functions to be called when no
+ * other tasks are running in the system.
+ *
+ * Functions added here will be run continuously within the idle task.
+ *
+ * Function signature:
+ *     Void func(Void);
+ */
+//Idle.addFunc("&myIdleFunc");
+
+
+
+/* ================ Kernel (SYS/BIOS) configuration ================ */
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+/*
+ * Enable asserts in the BIOS library.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Enables asserts for debugging purposes.
+ *  - false
+ *      Disables asserts for a reduced code footprint and better performance.
+ */
+//BIOS.assertsEnabled = true;
+BIOS.assertsEnabled = false;
+
+/*
+ * Specify default heap size for BIOS.
+ */
+BIOS.heapSize = 32768;
+
+/*
+ * A flag to determine if xdc.runtime sources are to be included in a custom
+ * built BIOS library.
+ *
+ * Pick one:
+ *  - false (default)
+ *      The pre-built xdc.runtime library is provided by the respective target
+ *      used to build the application.
+ *  - true
+ *      xdc.runtime library souces are to be included in the custom BIOS
+ *      library. This option yields the most efficient library in both code
+ *      footprint and runtime performance.
+ */
+BIOS.includeXdcRuntime = false;
+//BIOS.includeXdcRuntime = true;
+
+/*
+ * The SYS/BIOS runtime is provided in the form of a library that is linked
+ * with the application. Several forms of this library are provided with the
+ * SYS/BIOS product.
+ *
+ * Pick one:
+ *   - BIOS.LibType_Custom
+ *      Custom built library that is highly optimized for code footprint and
+ *      runtime performance.
+ *   - BIOS.LibType_Debug
+ *      Custom built library that is non-optimized that can be used to
+ *      single-step through APIs with a debugger.
+ *
+ */
+BIOS.libType = BIOS.LibType_Custom;
+//BIOS.libType = BIOS.LibType_Debug;
+
+/*
+ * Runtime instance creation enable flag.
+ *
+ * Pick one:
+ *   - true (default)
+ *      Allows Mod_create() and Mod_delete() to be called at runtime which
+ *      requires a default heap for dynamic memory allocation.
+ *   - false
+ *      Reduces code footprint by disallowing Mod_create() and Mod_delete() to
+ *      be called at runtime. Object instances are constructed via
+ *      Mod_construct() and destructed via Mod_destruct().
+ */
+BIOS.runtimeCreatesEnabled = true;
+//BIOS.runtimeCreatesEnabled = false;
+
+/*
+ * Enable logs in the BIOS library.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Enables logs for debugging purposes.
+ *  - false
+ *      Disables logging for reduced code footprint and improved runtime
+ *      performance.
+ */
+//BIOS.logsEnabled = true;
+BIOS.logsEnabled = false;
+
+
+
+/* ================ Memory configuration ================ */
+var Memory = xdc.useModule('xdc.runtime.Memory');
+/*
+ * The Memory module itself simply provides a common interface for any
+ * variety of system and application specific memory management policies
+ * implemented by the IHeap modules(Ex. HeapMem, HeapBuf).
+ */
+
+
+
+/* ================ Program configuration ================ */
+/*
+ *  Program.stack is ignored with IAR. Use the project options in
+ *  IAR Embedded Workbench to alter the system stack size.
+ */
+if (!Program.build.target.$name.match(/iar/)) {
+    /*
+     *  Reducing the system stack size (used by ISRs and Swis) to reduce
+     *  RAM usage.
+     */
+    Program.stack = 1024;
+}
+
+
+
+/*
+ * Enable Semihosting for GNU targets to print to CCS console
+ */
+if (Program.build.target.$name.match(/gnu/)) {
+    var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
+}
+/* ================ Semaphore configuration ================ */
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+/*
+ * Enables global support for Task priority pend queuing.
+ *
+ * Pick one:
+ *  - true (default)
+ *      This allows pending tasks to be serviced based on their task priority.
+ *  - false
+ *      Pending tasks are services based on first in, first out basis.
+ *
+ *  When using BIOS in ROM:
+ *      This option must be set to false.
+ */
+//Semaphore.supportsPriority = true;
+Semaphore.supportsPriority = false;
+
+/*
+ * Allows for the implicit posting of events through the semaphore,
+ * disable for additional code saving.
+ *
+ * Pick one:
+ *  - true
+ *      This allows the Semaphore module to post semaphores and events
+ *      simultaneously.
+ *  - false (default)
+ *      Events must be explicitly posted to unblock tasks.
+ *
+ */
+//Semaphore.supportsEvents = true;
+Semaphore.supportsEvents = false;
+
+
+
+/* ================ Swi configuration ================ */
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+/*
+ * A software interrupt is an object that encapsulates a function to be
+ * executed and a priority. Software interrupts are prioritized, preempt tasks
+ * and are preempted by hardware interrupt service routines.
+ *
+ * This module is included to allow Swi's in a users' application.
+ */
+
+
+
+/* ================ System configuration ================ */
+var System = xdc.useModule('xdc.runtime.System');
+/*
+ * The Abort handler is called when the system exits abnormally.
+ *
+ * Pick one:
+ *  - System.abortStd (default)
+ *      Call the ANSI C Standard 'abort()' to terminate the application.
+ *  - System.abortSpin
+ *      A lightweight abort function that loops indefinitely in a while(1) trap
+ *      function.
+ *  - A custom abort handler
+ *      A user-defined function. See the System module documentation for
+ *      details.
+ */
+System.abortFxn = System.abortStd;
+//System.abortFxn = System.abortSpin;
+//System.abortFxn = "&myAbortSystem";
+
+/*
+ * The Exit handler is called when the system exits normally.
+ *
+ * Pick one:
+ *  - System.exitStd (default)
+ *      Call the ANSI C Standard 'exit()' to terminate the application.
+ *  - System.exitSpin
+ *      A lightweight exit function that loops indefinitely in a while(1) trap
+ *      function.
+ *  - A custom exit function
+ *      A user-defined function. See the System module documentation for
+ *      details.
+ */
+System.exitFxn = System.exitStd;
+//System.exitFxn = System.exitSpin;
+//System.exitFxn = "&myExitSystem";
+
+/*
+ * Minimize exit handler array in the System module. The System module includes
+ * an array of functions that are registered with System_atexit() which is
+ * called by System_exit(). The default value is 8.
+ */
+System.maxAtexitHandlers = 2;
+
+/*
+ * The System.SupportProxy defines a low-level implementation of System
+ * functions such as System_printf(), System_flush(), etc.
+ *
+ * Pick one pair:
+ *  - SysMin
+ *      This module maintains an internal configurable circular buffer that
+ *      stores the output until System_flush() is called.
+ *      The size of the circular buffer is set via SysMin.bufSize.
+ *  - SysCallback
+ *      SysCallback allows for user-defined implementations for System APIs.
+ *      The SysCallback support proxy has a smaller code footprint and can be
+ *      used to supply custom System_printf services.
+ *      The default SysCallback functions point to stub functions. See the
+ *      SysCallback module's documentation.
+ */
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+SysMin.bufSize = 512;
+System.SupportProxy = SysMin;
+//var SysCallback = xdc.useModule('xdc.runtime.SysCallback');
+//System.SupportProxy = SysCallback;
+//SysCallback.abortFxn = "&myUserAbort";
+//SysCallback.exitFxn  = "&myUserExit";
+//SysCallback.flushFxn = "&myUserFlush";
+//SysCallback.putchFxn = "&myUserPutch";
+//SysCallback.readyFxn = "&myUserReady";
+
+
+
+
+/* ================ Task configuration ================ */
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+/*
+ * Check task stacks for overflow conditions.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Enables runtime checks for task stack overflow conditions during
+ *      context switching ("from" and "to")
+ *  - false
+ *      Disables runtime checks for task stack overflow conditions.
+ */
+Task.checkStackFlag = true;
+//Task.checkStackFlag = false;
+
+/*
+ * Set the default task stack size when creating tasks.
+ *
+ * The default is dependent on the device being used. Reducing the default stack
+ * size yields greater memory savings.
+ */
+Task.defaultStackSize = 512;
+
+/*
+ * Enables the idle task.
+ *
+ * Pick one:
+ *  - true (default)
+ *      Creates a task with priority of 0 which calls idle hook functions. This
+ *      option must be set to true to gain power savings provided by the Power
+ *      module.
+ *  - false
+ *      No idle task is created. This option consumes less memory as no
+ *      additional default task stack is needed.
+ *      To gain power savings by the Power module without having the idle task,
+ *      add Idle.run as the Task.allBlockedFunc.
+ */
+Task.enableIdleTask = true;
+//Task.enableIdleTask = false;
+//Task.allBlockedFunc = Idle.run;
+
+/*
+ * If Task.enableIdleTask is set to true, this option sets the idle task's
+ * stack size.
+ *
+ * Reducing the idle stack size yields greater memory savings.
+ */
+Task.idleTaskStackSize = 512;
+
+/*
+ * Reduce the number of task priorities.
+ * The default is 16.
+ * Decreasing the number of task priorities yield memory savings.
+ */
+Task.numPriorities = 16;
+
+
+
+/* ================ Text configuration ================ */
+var Text = xdc.useModule('xdc.runtime.Text');
+/*
+ * These strings are placed in the .const section. Setting this parameter to
+ * false will save space in the .const section. Error, Assert and Log messages
+ * will print raw ids and args instead of a formatted message.
+ *
+ * Pick one:
+ *  - true (default)
+ *      This option loads test string into the .const for easier debugging.
+ *  - false
+ *      This option reduces the .const footprint.
+ */
+Text.isLoaded = true;
+//Text.isLoaded = false;
+
+
+
+/* ================ Types configuration ================ */
+var Types = xdc.useModule('xdc.runtime.Types');
+/*
+ * This module defines basic constants and types used throughout the
+ * xdc.runtime package.
+ */
+
+
+
+/* ================ TI-RTOS middleware configuration ================ */
+var mwConfig = xdc.useModule('ti.mw.Config');
+/*
+ * Include TI-RTOS middleware libraries
+ */
+
+
+
+/* ================ TI-RTOS drivers' configuration ================ */
+var driversConfig = xdc.useModule('ti.drivers.Config');
+/*
+ * Include TI-RTOS drivers
+ *
+ * Pick one:
+ *  - driversConfig.LibType_NonInstrumented (default)
+ *      Use TI-RTOS drivers library optimized for footprint and performance
+ *      without asserts or logs.
+ *  - driversConfig.LibType_Instrumented
+ *      Use TI-RTOS drivers library for debugging with asserts and logs enabled.
+ */
+driversConfig.libType = driversConfig.LibType_NonInstrumented;
+//driversConfig.libType = driversConfig.LibType_Instrumented;
+
+
+
+/* ================ Application Specific Instances ================ */
+var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
diff --git a/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.c b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.c
new file mode 100644
index 000000000..80e15c1e0
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.c
@@ -0,0 +1,653 @@
+/*
+ * Copyright (c) 2015-2016, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ *  ======== MSP_EXP432P401R.c ========
+ *  This file is responsible for setting up the board specific items for the
+ *  MSP_EXP432P401R board.
+ */
+
+#include <stdbool.h>
+
+#include <ti/drivers/ports/DebugP.h>
+#include <ti/drivers/ports/HwiP.h>
+#include <ti/drivers/Power.h>
+#include <ti/drivers/power/PowerMSP432.h>
+
+#include <msp.h>
+#include <rom.h>
+#include <rom_map.h>
+#include <dma.h>
+#include <gpio.h>
+#include <i2c.h>
+#include <pmap.h>
+#include <spi.h>
+#include <timer_a.h>
+#include <uart.h>
+#include <wdt_a.h>
+
+#include <interrupt.h>
+
+#include "MSP_EXP432P401R.h"
+
+/*
+ *  =============================== DMA ===============================
+ */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_ALIGN(dmaControlTable, 256)
+#elif defined(__IAR_SYSTEMS_ICC__)
+#pragma data_alignment=256
+#elif defined(__GNUC__)
+__attribute__ ((aligned (256)))
+#endif
+static DMA_ControlTable dmaControlTable[8];
+static bool dmaInitialized = false;
+
+/*
+ *  ======== dmaErrorHwi ========
+ */
+static void dmaErrorHwi(uintptr_t arg)
+{
+    DebugP_log1("DMA error code: %d\n", MAP_DMA_getErrorStatus());
+    MAP_DMA_clearErrorStatus();
+    DebugP_log0("DMA error!!\n");
+    while(1);
+}
+
+/*
+ *  ======== MSP_EXP432P401R_initDMA ========
+ */
+void MSP_EXP432P401R_initDMA(void)
+{
+    HwiP_Params hwiParams;
+    HwiP_Handle dmaErrorHwiHandle;
+
+    if (!dmaInitialized) {
+        HwiP_Params_init(&hwiParams);
+        dmaErrorHwiHandle = HwiP_create(INT_DMA_ERR, dmaErrorHwi, &hwiParams);
+        if (dmaErrorHwiHandle == NULL) {
+            DebugP_log0("Failed to create DMA error Hwi!!\n");
+            while (1);
+        }
+
+        MAP_DMA_enableModule();
+        MAP_DMA_setControlBase(dmaControlTable);
+
+        dmaInitialized = true;
+    }
+}
+
+/*
+ *  ======== MSP_EXP432P401R_initGeneral ========
+ */
+void MSP_EXP432P401R_initGeneral(void)
+{
+    Power_init();
+}
+
+/*
+ *  =============================== GPIO ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(GPIOMSP432_config, ".const:GPIOMSP432_config")
+#endif
+
+#include <ti/drivers/GPIO.h>
+#include <ti/drivers/gpio/GPIOMSP432.h>
+
+/*
+ * Array of Pin configurations
+ * NOTE: The order of the pin configurations must coincide with what was
+ *       defined in MSP_EXP432P401R.h
+ * NOTE: Pins not used for interrupts should be placed at the end of the
+ *       array.  Callback entries can be omitted from callbacks array to
+ *       reduce memory usage.
+ */
+GPIO_PinConfig gpioPinConfigs[] = {
+    /* Input pins */
+    /* MSP_EXP432P401R_S1 */
+    GPIOMSP432_P1_1 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
+    /* MSP_EXP432P401R_S2 */
+    GPIOMSP432_P1_4 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
+
+    /* Output pins */
+    /* MSP_EXP432P401R_LED1 */
+    GPIOMSP432_P1_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
+    /* MSP_EXP432P401R_LED_RED */
+    GPIOMSP432_P2_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
+
+    /*
+     * MSP_EXP432P401R_LED_GREEN & MSP_EXP432P401R_LED_BLUE are used for
+     * PWM examples.  Uncomment the following lines if you would like to control
+     * the LEDs with the GPIO driver.
+     */
+    /* MSP_EXP432P401R_LED_GREEN */
+    //GPIOMSP432_P2_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
+    /* MSP_EXP432P401R_LED_BLUE */
+    //GPIOMSP432_P2_2 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW
+};
+
+/*
+ * Array of callback function pointers
+ * NOTE: The order of the pin configurations must coincide with what was
+ *       defined in MSP_EXP432P401R.h
+ * NOTE: Pins not used for interrupts can be omitted from callbacks array to
+ *       reduce memory usage (if placed at end of gpioPinConfigs array).
+ */
+GPIO_CallbackFxn gpioCallbackFunctions[] = {
+    /* MSP_EXP432P401R_S1 */
+    NULL,
+    /* MSP_EXP432P401R_S2 */
+    NULL
+};
+
+const GPIOMSP432_Config GPIOMSP432_config = {
+    .pinConfigs = (GPIO_PinConfig *)gpioPinConfigs,
+    .callbacks = (GPIO_CallbackFxn *)gpioCallbackFunctions,
+    .numberOfPinConfigs = sizeof(gpioPinConfigs)/sizeof(GPIO_PinConfig),
+    .numberOfCallbacks = sizeof(gpioCallbackFunctions)/sizeof(GPIO_CallbackFxn),
+    .intPriority = (~0)
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initGPIO ========
+ */
+void MSP_EXP432P401R_initGPIO(void)
+{
+    /* Initialize peripheral and pins */
+    GPIO_init();
+}
+
+/*
+ *  =============================== I2C ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
+#pragma DATA_SECTION(i2cMSP432HWAttrs, ".const:i2cMSP432HWAttrs")
+#endif
+
+#include <ti/drivers/I2C.h>
+#include <ti/drivers/i2c/I2CMSP432.h>
+
+I2CMSP432_Object i2cMSP432Objects[MSP_EXP432P401R_I2CCOUNT];
+
+const I2CMSP432_HWAttrs i2cMSP432HWAttrs[MSP_EXP432P401R_I2CCOUNT] = {
+    {
+        .baseAddr = EUSCI_B0_BASE,
+        .intNum = INT_EUSCIB0,
+        .intPriority = (~0),
+        .clockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK
+    }
+};
+
+const I2C_Config I2C_config[] = {
+    {
+        .fxnTablePtr = &I2CMSP432_fxnTable,
+        .object = &i2cMSP432Objects[0],
+        .hwAttrs = &i2cMSP432HWAttrs[0]
+    },
+    {NULL, NULL, NULL}
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initI2C ========
+ */
+void MSP_EXP432P401R_initI2C(void)
+{
+    /*
+     * NOTE: TI-RTOS examples configure EUSCIB0 as either SPI or I2C.  Thus,
+     * a conflict occurs when the I2C & SPI drivers are used simultaneously in
+     * an application.  Modify the pin mux settings in this file and resolve the
+     * conflict before running your the application.
+     */
+    /* Configure Pins 1.6 & 1.7 as SDA & SCL, respectively. */
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,
+        GPIO_PIN6 | GPIO_PIN7, GPIO_PRIMARY_MODULE_FUNCTION);
+
+    /* Initialize the I2C driver */
+    I2C_init();
+}
+
+/*
+ *  =============================== Power ===============================
+ */
+const PowerMSP432_Config PowerMSP432_config = {
+    .policyInitFxn = &PowerMSP432_initPolicy,
+    .policyFxn = &PowerMSP432_sleepPolicy,
+    .initialPerfLevel = 2,
+    .enablePolicy = false,
+    .enablePerf = true
+};
+
+/*
+ *  =============================== PWM ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
+#pragma DATA_SECTION(pwmTimerMSP432HWAttrs, ".const:pwmTimerMSP432HWAttrs")
+#endif
+
+#include <ti/drivers/PWM.h>
+#include <ti/drivers/pwm/PWMTimerMSP432.h>
+
+PWMTimerMSP432_Object pwmTimerMSP432Objects[MSP_EXP432P401R_PWMCOUNT];
+
+const PWMTimerMSP432_HWAttrs pwmTimerMSP432HWAttrs[MSP_EXP432P401R_PWMCOUNT] = {
+    {
+        .baseAddr = TIMER_A1_BASE,
+        .compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1
+    },
+    {
+        .baseAddr = TIMER_A1_BASE,
+        .compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_2
+    }
+};
+
+const PWM_Config PWM_config[] = {
+    {
+        .fxnTablePtr = &PWMTimerMSP432_fxnTable,
+        .object = &pwmTimerMSP432Objects[0],
+        .hwAttrs = &pwmTimerMSP432HWAttrs[0]
+    },
+    {
+        .fxnTablePtr = &PWMTimerMSP432_fxnTable,
+        .object = &pwmTimerMSP432Objects[1],
+        .hwAttrs = &pwmTimerMSP432HWAttrs[1]
+    },
+    {NULL, NULL, NULL}
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initPWM ========
+ */
+void MSP_EXP432P401R_initPWM(void)
+{
+    /* Use Port Map on Port2 get Timer outputs on pins with LEDs (2.1, 2.2) */
+    const uint8_t portMap [] = {
+        PM_NONE, PM_TA1CCR1A, PM_TA1CCR2A, PM_NONE,
+        PM_NONE, PM_NONE,     PM_NONE,     PM_NONE
+    };
+
+    /* Mapping capture compare registers to Port 2 */
+    MAP_PMAP_configurePorts((const uint8_t *) portMap, PMAP_P2MAP, 1,
+        PMAP_DISABLE_RECONFIGURATION);
+
+    /* Enable PWM output on GPIO pins */
+    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,
+        GPIO_PIN1 | GPIO_PIN2, GPIO_PRIMARY_MODULE_FUNCTION);
+
+    PWM_init();
+}
+
+/*
+ *  =============================== SDSPI ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(SDSPI_config, ".const:SDSPI_config")
+#pragma DATA_SECTION(sdspiMSP432HWAttrs, ".const:sdspiMSP432HWAttrs")
+#endif
+
+#include <ti/drivers/SDSPI.h>
+#include <ti/drivers/sdspi/SDSPIMSP432.h>
+
+SDSPIMSP432_Object sdspiMSP432Objects[MSP_EXP432P401R_SDSPICOUNT];
+
+const SDSPIMSP432_HWAttrs sdspiMSP432HWAttrs[MSP_EXP432P401R_SDSPICOUNT] = {
+    {
+        .baseAddr = EUSCI_B0_BASE,
+        .clockSource = EUSCI_B_SPI_CLOCKSOURCE_SMCLK,
+
+        /* CLK, MOSI & MISO ports & pins */
+        .portSCK = GPIO_PORT_P1,
+        .pinSCK = GPIO_PIN5,
+        .sckMode = GPIO_PRIMARY_MODULE_FUNCTION,
+
+        .portMISO = GPIO_PORT_P1,
+        .pinMISO = GPIO_PIN7,
+        .misoMode = GPIO_PRIMARY_MODULE_FUNCTION,
+
+        .portMOSI = GPIO_PORT_P1,
+        .pinMOSI = GPIO_PIN6,
+        .mosiMode = GPIO_PRIMARY_MODULE_FUNCTION,
+
+        /* Chip select port & pin */
+        .portCS = GPIO_PORT_P4,
+        .pinCS = GPIO_PIN6
+    }
+};
+
+const SDSPI_Config SDSPI_config[] = {
+    {
+        .fxnTablePtr = &SDSPIMSP432_fxnTable,
+        .object = &sdspiMSP432Objects[0],
+        .hwAttrs = &sdspiMSP432HWAttrs[0]
+    },
+    {NULL, NULL, NULL}
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initSDSPI ========
+ */
+void MSP_EXP432P401R_initSDSPI(void)
+{
+    SDSPI_init();
+}
+
+/*
+ *  =============================== SPI ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
+#pragma DATA_SECTION(spiMSP432DMAHWAttrs, ".const:spiMSP432DMAHWAttrs")
+#endif
+
+#include <ti/drivers/SPI.h>
+#include <ti/drivers/spi/SPIMSP432DMA.h>
+
+SPIMSP432DMA_Object spiMSP432DMAObjects[MSP_EXP432P401R_SPICOUNT];
+
+const SPIMSP432DMA_HWAttrs spiMSP432DMAHWAttrs[MSP_EXP432P401R_SPICOUNT] = {
+    {
+        .baseAddr = EUSCI_B0_BASE,
+        .bitOrder = EUSCI_B_SPI_MSB_FIRST,
+        .clockSource = EUSCI_B_SPI_CLOCKSOURCE_SMCLK,
+
+        .defaultTxBufValue = 0,
+
+        .dmaIntNum = INT_DMA_INT1,
+        .intPriority = (~0),
+        .rxDMAChannelIndex = DMA_CH1_EUSCIB0RX0,
+        .txDMAChannelIndex = DMA_CH0_EUSCIB0TX0
+    },
+    {
+        .baseAddr = EUSCI_B2_BASE,
+        .bitOrder = EUSCI_B_SPI_MSB_FIRST,
+        .clockSource = EUSCI_B_SPI_CLOCKSOURCE_SMCLK,
+
+        .defaultTxBufValue = 0,
+
+        .dmaIntNum = INT_DMA_INT2,
+        .intPriority = (~0),
+        .rxDMAChannelIndex = DMA_CH5_EUSCIB2RX0,
+        .txDMAChannelIndex = DMA_CH4_EUSCIB2TX0
+    }
+};
+
+const SPI_Config SPI_config[] = {
+    {
+        .fxnTablePtr = &SPIMSP432DMA_fxnTable,
+        .object = &spiMSP432DMAObjects[0],
+        .hwAttrs = &spiMSP432DMAHWAttrs[0]
+    },
+    {
+        .fxnTablePtr = &SPIMSP432DMA_fxnTable,
+        .object = &spiMSP432DMAObjects[1],
+        .hwAttrs = &spiMSP432DMAHWAttrs[1]
+    },
+    {NULL, NULL, NULL},
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initSPI ========
+ */
+void MSP_EXP432P401R_initSPI(void)
+{
+    /*
+     * NOTE: TI-RTOS examples configure EUSCIB0 as either SPI or I2C.  Thus,
+     * a conflict occurs when the I2C & SPI drivers are used simultaneously in
+     * an application.  Modify the pin mux settings in this file and resolve the
+     * conflict before running your the application.
+     */
+    /* Configure CLK, MOSI & MISO for SPI0 (EUSCI_B0) */
+    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1,
+        GPIO_PIN5 | GPIO_PIN6, GPIO_PRIMARY_MODULE_FUNCTION);
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1, GPIO_PIN7,
+        GPIO_PRIMARY_MODULE_FUNCTION);
+
+    /* Configure CLK, MOSI & MISO for SPI1 (EUSCI_B2) */
+    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P3,
+        GPIO_PIN5 | GPIO_PIN6, GPIO_PRIMARY_MODULE_FUNCTION);
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3, GPIO_PIN7,
+        GPIO_PRIMARY_MODULE_FUNCTION);
+
+    MSP_EXP432P401R_initDMA();
+    SPI_init();
+}
+
+/*
+ *  =============================== UART ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(UART_config, ".const:UART_config")
+#pragma DATA_SECTION(uartMSP432HWAttrs, ".const:uartMSP432HWAttrs")
+#endif
+
+#include <ti/drivers/UART.h>
+#include <ti/drivers/uart/UARTMSP432.h>
+
+UARTMSP432_Object uartMSP432Objects[MSP_EXP432P401R_UARTCOUNT];
+unsigned char uartMSP432RingBuffer[MSP_EXP432P401R_UARTCOUNT][32];
+
+/*
+ * The baudrate dividers were determined by using the MSP430 baudrate
+ * calculator
+ * http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430BaudRateConverter/index.html
+ */
+const UARTMSP432_BaudrateConfig uartMSP432Baudrates[] = {
+    /* {baudrate, input clock, prescalar, UCBRFx, UCBRSx, oversampling} */
+    {
+        .outputBaudrate = 115200,
+        .inputClockFreq = 12000000,
+        .prescalar = 6,
+        .hwRegUCBRFx = 8,
+        .hwRegUCBRSx = 32,
+        .oversampling = 1
+    },
+    {115200, 6000000,   3,  4,   2, 1},
+    {115200, 3000000,   1, 10,   0, 1},
+    {9600,   12000000, 78,  2,   0, 1},
+    {9600,   6000000,  39,  1,   0, 1},
+    {9600,   3000000,  19,  8,  85, 1},
+    {9600,   32768,     3,  0, 146, 0}
+};
+
+const UARTMSP432_HWAttrs uartMSP432HWAttrs[MSP_EXP432P401R_UARTCOUNT] = {
+    {
+        .baseAddr = EUSCI_A0_BASE,
+        .intNum = INT_EUSCIA0,
+        .intPriority = (~0),
+        .clockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK,
+        .bitOrder = EUSCI_A_UART_LSB_FIRST,
+        .numBaudrateEntries = sizeof(uartMSP432Baudrates) /
+            sizeof(UARTMSP432_BaudrateConfig),
+        .baudrateLUT = uartMSP432Baudrates,
+        .ringBufPtr  = uartMSP432RingBuffer[0],
+        .ringBufSize = sizeof(uartMSP432RingBuffer[0])
+    },
+    {
+        .baseAddr = EUSCI_A2_BASE,
+        .intNum = INT_EUSCIA2,
+        .intPriority = (~0),
+        .clockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK,
+        .bitOrder = EUSCI_A_UART_LSB_FIRST,
+        .numBaudrateEntries = sizeof(uartMSP432Baudrates) /
+            sizeof(UARTMSP432_BaudrateConfig),
+        .baudrateLUT = uartMSP432Baudrates,
+        .ringBufPtr  = uartMSP432RingBuffer[1],
+        .ringBufSize = sizeof(uartMSP432RingBuffer[1])
+    }
+};
+
+const UART_Config UART_config[] = {
+    {
+        .fxnTablePtr = &UARTMSP432_fxnTable,
+        .object = &uartMSP432Objects[0],
+        .hwAttrs = &uartMSP432HWAttrs[0]
+    },
+    {
+        .fxnTablePtr = &UARTMSP432_fxnTable,
+        .object = &uartMSP432Objects[1],
+        .hwAttrs = &uartMSP432HWAttrs[1]
+    },
+    {NULL, NULL, NULL}
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initUART ========
+ */
+void MSP_EXP432P401R_initUART(void)
+{
+    /* Set P1.2 & P1.3 in UART mode */
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,
+        GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
+
+    /* Set P3.2 & P3.3 in UART mode */
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
+        GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
+
+    /* Initialize the UART driver */
+    UART_init();
+}
+
+/*
+ *  =============================== Watchdog ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(Watchdog_config, ".const:Watchdog_config")
+#pragma DATA_SECTION(watchdogMSP432HWAttrs, ".const:watchdogMSP432HWAttrs")
+#endif
+
+#include <ti/drivers/Watchdog.h>
+#include <ti/drivers/watchdog/WatchdogMSP432.h>
+
+WatchdogMSP432_Object watchdogMSP432Objects[MSP_EXP432P401R_WATCHDOGCOUNT];
+
+const WatchdogMSP432_HWAttrs
+    watchdogMSP432HWAttrs[MSP_EXP432P401R_WATCHDOGCOUNT] = {
+    {
+        .baseAddr = WDT_A_BASE,
+        .intNum = INT_WDT_A,
+        .intPriority = (~0),
+        .clockSource = WDT_A_CLOCKSOURCE_SMCLK,
+        .clockDivider = WDT_A_CLOCKDIVIDER_8192K
+    },
+};
+
+const Watchdog_Config Watchdog_config[] = {
+    {
+        .fxnTablePtr = &WatchdogMSP432_fxnTable,
+        .object = &watchdogMSP432Objects[0],
+        .hwAttrs = &watchdogMSP432HWAttrs[0]
+    },
+    {NULL, NULL, NULL}
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initWatchdog ========
+ */
+void MSP_EXP432P401R_initWatchdog(void)
+{
+    /* Initialize the Watchdog driver */
+    Watchdog_init();
+}
+
+/*
+ *  =============================== WiFi ===============================
+ */
+/* Place into subsections to allow the TI linker to remove items properly */
+#if defined(__TI_COMPILER_VERSION__)
+#pragma DATA_SECTION(WiFi_config, ".const:WiFi_config")
+#pragma DATA_SECTION(wiFiCC3100HWAttrs, ".const:wiFiCC3100HWAttrs")
+#endif
+
+#include <ti/drivers/WiFi.h>
+#include <ti/drivers/wifi/WiFiCC3100.h>
+
+WiFiCC3100_Object wiFiCC3100Objects[MSP_EXP432P401R_WIFICOUNT];
+
+const WiFiCC3100_HWAttrs wiFiCC3100HWAttrs[MSP_EXP432P401R_WIFICOUNT] = {
+    {
+        .irqPort = GPIO_PORT_P2,
+        .irqPin = GPIO_PIN5,
+        .irqIntNum = INT_PORT2,
+
+        .csPort = GPIO_PORT_P3,
+        .csPin = GPIO_PIN0,
+
+        .enPort = GPIO_PORT_P4,
+        .enPin = GPIO_PIN1
+    }
+};
+
+const WiFi_Config WiFi_config[] = {
+    {
+        .fxnTablePtr = &WiFiCC3100_fxnTable,
+        .object = &wiFiCC3100Objects[0],
+        .hwAttrs = &wiFiCC3100HWAttrs[0]
+    },
+    {NULL, NULL, NULL},
+};
+
+/*
+ *  ======== MSP_EXP432P401R_initWiFi ========
+ */
+void MSP_EXP432P401R_initWiFi(void)
+{
+    /* Configure EN & CS pins to disable CC3100 */
+    MAP_GPIO_setAsOutputPin(GPIO_PORT_P3, GPIO_PIN0);
+    MAP_GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN1);
+    MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN0);
+    MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN1);
+
+    /* Configure CLK, MOSI & MISO for SPI0 (EUSCI_B0) */
+    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1,
+        GPIO_PIN5 | GPIO_PIN6, GPIO_PRIMARY_MODULE_FUNCTION);
+    MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1, GPIO_PIN7,
+        GPIO_PRIMARY_MODULE_FUNCTION);
+
+    /* Configure IRQ pin */
+    MAP_GPIO_setAsInputPinWithPullDownResistor(GPIO_PORT_P2, GPIO_PIN5);
+    MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P2, GPIO_PIN5,
+        GPIO_LOW_TO_HIGH_TRANSITION);
+
+    /* Initialize SPI and WiFi drivers */
+    MSP_EXP432P401R_initDMA();
+    SPI_init();
+    WiFi_init();
+}
diff --git a/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.cmd b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.cmd
new file mode 100644
index 000000000..82d58a1f3
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.cmd
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2015-2016, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ *  ======== MSP_EXP432P401R.cmd ========
+ *  Define the memory block start/length for the MSP_EXP432P401R M4
+ */
+
+MEMORY
+{
+    MAIN       (RX) : origin = 0x00000000, length = 0x00040000
+    INFO       (RX) : origin = 0x00200000, length = 0x00004000
+    SRAM_CODE  (RWX): origin = 0x01000000, length = 0x00010000
+    SRAM_DATA  (RW) : origin = 0x20000000, length = 0x00010000
+}
+
+/* Section allocation in memory */
+
+SECTIONS
+{
+    .text   :   > MAIN
+    .const  :   > MAIN
+    .cinit  :   > MAIN
+    .pinit  :   > MAIN
+
+    .data   :   > SRAM_DATA
+    .bss    :   > SRAM_DATA
+    .sysmem :   > SRAM_DATA
+    .stack  :   > SRAM_DATA (HIGH)
+}
+
+/* Symbolic definition of the WDTCTL register for RTS */
+WDTCTL_SYM = 0x4000480C;
diff --git a/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.h b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.h
new file mode 100644
index 000000000..1738f49e2
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/MSP_EXP432P401R.h
@@ -0,0 +1,252 @@
+/*
+ * Copyright (c) 2015, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/** ============================================================================
+ *  @file       MSP_EXP432P401R.h
+ *
+ *  @brief      MSP_EXP432P401R Board Specific APIs
+ *
+ *  The MSP_EXP432P401R header file should be included in an application as
+ *  follows:
+ *  @code
+ *  #include <MSP_EXP432P401R.h>
+ *  @endcode
+ *
+ *  ============================================================================
+ */
+#ifndef __MSP_EXP432P401R_H
+#define __MSP_EXP432P401R_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LEDs on MSP_EXP432P401R are active high. */
+#define MSP_EXP432P401R_LED_OFF (0)
+#define MSP_EXP432P401R_LED_ON  (1)
+
+/*!
+ *  @def    MSP_EXP432P401R_GPIOName
+ *  @brief  Enum of GPIO names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_GPIOName {
+    MSP_EXP432P401R_S1 = 0,
+    MSP_EXP432P401R_S2,
+    MSP_EXP432P401R_LED1,
+    MSP_EXP432P401R_LED_RED,
+
+    /*
+     * MSP_EXP432P401R_LED_GREEN & MSP_EXP432P401R_LED_BLUE are used for
+     * PWM examples.  Uncomment the following lines if you would like to control
+     * the LEDs with the GPIO driver.
+     */
+    //MSP_EXP432P401R_LED_GREEN,
+    //MSP_EXP432P401R_LED_BLUE,
+
+    MSP_EXP432P401R_GPIOCOUNT
+} MSP_EXP432P401R_GPIOName;
+
+/*!
+ *  @def    MSP_EXP432P401R_I2CName
+ *  @brief  Enum of I2C names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_I2CName {
+    MSP_EXP432P401R_I2CB0 = 0,
+
+    MSP_EXP432P401R_I2CCOUNT
+} MSP_EXP432P401R_I2CName;
+
+/*!
+ *  @def    MSP_EXP432P401R_PWMName
+ *  @brief  Enum of PWM names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_PWMName {
+    MSP_EXP432P401R_PWM_TA1_1 = 0,
+    MSP_EXP432P401R_PWM_TA1_2,
+
+    MSP_EXP432P401R_PWMCOUNT
+} MSP_EXP432P401R_PWMName;
+
+/*!
+ *  @def    MSP_EXP432P401R_SDSPIName
+ *  @brief  Enum of SDSPI names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_SDSPIName {
+    MSP_EXP432P401R_SDSPIB0 = 0,
+
+    MSP_EXP432P401R_SDSPICOUNT
+} EMSP_EXP432P401R_SDSPIName;
+
+/*!
+ *  @def    MSP_EXP432P401R_SPIName
+ *  @brief  Enum of SPI names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_SPIName {
+    MSP_EXP432P401R_SPIB0 = 0,
+    MSP_EXP432P401R_SPIB2,
+
+    MSP_EXP432P401R_SPICOUNT
+} MSP_EXP432P401R_SPIName;
+
+/*!
+ *  @def    MSP_EXP432P401R_UARTName
+ *  @brief  Enum of UART names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_UARTName {
+    MSP_EXP432P401R_UARTA0 = 0,
+    MSP_EXP432P401R_UARTA2,
+
+    MSP_EXP432P401R_UARTCOUNT
+} MSP_EXP432P401R_UARTName;
+
+/*!
+ *  @def    MSP_EXP432P401R_WatchdogName
+ *  @brief  Enum of Watchdog names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_WatchdogName {
+    MSP_EXP432P401R_WATCHDOG = 0,
+
+    MSP_EXP432P401R_WATCHDOGCOUNT
+} MSP_EXP432P401R_WatchdogName;
+
+/*!
+ *  @def    MSP_EXP432P401R_WiFiName
+ *  @brief  Enum of WiFi names on the MSP_EXP432P401R dev board
+ */
+typedef enum MSP_EXP432P401R_WiFiName {
+    MSP_EXP432P401R_WIFI = 0,
+
+    MSP_EXP432P401R_WIFICOUNT
+} MSP_EXP432P401R_WiFiName;
+
+/*!
+ *  @brief  Initialize the general board specific settings
+ *
+ *  This function initializes the general board specific settings.
+ */
+extern void MSP_EXP432P401R_initGeneral(void);
+
+/*!
+ *  @brief  Initialize board specific GPIO settings
+ *
+ *  This function initializes the board specific GPIO settings and
+ *  then calls the GPIO_init API to initialize the GPIO module.
+ *
+ *  The GPIOs controlled by the GPIO module are determined by the GPIO_PinConfig
+ *  variable.
+ */
+extern void MSP_EXP432P401R_initGPIO(void);
+
+/*!
+ *  @brief  Initialize board specific I2C settings
+ *
+ *  This function initializes the board specific I2C settings and then calls
+ *  the I2C_init API to initialize the I2C module.
+ *
+ *  The I2C peripherals controlled by the I2C module are determined by the
+ *  I2C_config variable.
+ */
+extern void MSP_EXP432P401R_initI2C(void);
+
+/*!
+ *  @brief  Initialize board specific PWM settings
+ *
+ *  This function initializes the board specific PWM settings and then calls
+ *  the PWM_init API to initialize the PWM module.
+ *
+ *  The PWM peripherals controlled by the PWM module are determined by the
+ *  PWM_config variable.
+ */
+extern void MSP_EXP432P401R_initPWM(void);
+
+/*!
+ *  @brief  Initialize board specific SDSPI settings
+ *
+ *  This function initializes the board specific SDSPI settings and then calls
+ *  the SDSPI_init API to initialize the SDSPI module.
+ *
+ *  The SDSPI peripherals controlled by the SDSPI module are determined by the
+ *  SDSPI_config variable.
+ */
+extern void MSP_EXP432P401R_initSDSPI(void);
+
+/*!
+ *  @brief  Initialize board specific SPI settings
+ *
+ *  This function initializes the board specific SPI settings and then calls
+ *  the SPI_init API to initialize the SPI module.
+ *
+ *  The SPI peripherals controlled by the SPI module are determined by the
+ *  SPI_config variable.
+ */
+extern void MSP_EXP432P401R_initSPI(void);
+
+/*!
+ *  @brief  Initialize board specific UART settings
+ *
+ *  This function initializes the board specific UART settings and then calls
+ *  the UART_init API to initialize the UART module.
+ *
+ *  The UART peripherals controlled by the UART module are determined by the
+ *  UART_config variable.
+ */
+extern void MSP_EXP432P401R_initUART(void);
+
+/*!
+ *  @brief  Initialize board specific Watchdog settings
+ *
+ *  This function initializes the board specific Watchdog settings and then
+ *  calls the Watchdog_init API to initialize the Watchdog module.
+ *
+ *  The Watchdog peripherals controlled by the Watchdog module are determined
+ *  by the Watchdog_config variable.
+ */
+extern void MSP_EXP432P401R_initWatchdog(void);
+
+/*!
+ *  @brief  Initialize board specific WiFi settings
+ *
+ *  This function initializes the board specific WiFi settings and then calls
+ *  the WiFi_init API to initialize the WiFi module.
+ *
+ *  The hardware resources controlled by the WiFi module are determined by the
+ *  WiFi_config variable.
+ *
+ *  A SimpleLink CC3100 device or module is required and must be connected to
+ *  use the WiFi driver.
+ */
+extern void MSP_EXP432P401R_initWiFi(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MSP_EXP432P401R_H */
diff --git a/examples/MSP432/ccs/MG_hello/main.c b/examples/MSP432/ccs/MG_hello/main.c
new file mode 100644
index 000000000..e1109a7f8
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/main.c
@@ -0,0 +1,154 @@
+/*
+ * Copyright (c) 2014-2016 Cesanta Software Limited
+ * All rights reserved
+ */
+
+/* Set up an AP or connect to existing WiFi network. */
+#define WIFI_AP_SSID "Mongoose"
+#define WIFI_AP_PASS ""
+#define WIFI_AP_CHAN 6
+//#define WIFI_STA_SSID "YourWiFi"
+//#define WIFI_STA_PASS "YourPass"
+
+#define MG_TASK_PRIORITY 3
+#define MG_TASK_STACK_SIZE 8192
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+/* XDCtools Header files */
+#include <xdc/std.h>
+#include <xdc/runtime/System.h>
+
+/* BIOS Header files */
+#include <ti/sysbios/BIOS.h>
+#include <ti/sysbios/knl/Task.h>
+
+/* TI-RTOS Header files */
+#include <ti/drivers/GPIO.h>
+#include <ti/drivers/WiFi.h>
+
+/* Example/Board Header file */
+#include "Board.h"
+
+/* Mongoose.h brings in SimpleLink support. Do not include simplelink.h. */
+#include <mongoose.h>
+
+#include "wifi.h"
+
+void mg_ev_handler(struct mg_connection *nc, int ev, void *p) {
+  static const char *reply_fmt =
+      "HTTP/1.0 200 OK\r\n"
+      "Connection: close\r\n"
+      "Content-Type: text/plain\r\n"
+      "\r\n"
+      "Hello %s\n";
+  LOG(LL_DEBUG, ("conn %p ev %d", nc, ev));
+
+  switch (ev) {
+    case MG_EV_ACCEPT: {
+      char addr[32];
+      mg_sock_addr_to_str(&nc->sa, addr, sizeof(addr),
+                          MG_SOCK_STRINGIFY_IP | MG_SOCK_STRINGIFY_PORT);
+      LOG(LL_INFO, ("Connection %p from %s", nc, addr));
+      break;
+    }
+    case MG_EV_HTTP_REQUEST: {
+      char addr[32];
+      struct http_message *hm = (struct http_message *) p;
+      mg_sock_addr_to_str(&nc->sa, addr, sizeof(addr),
+                          MG_SOCK_STRINGIFY_IP | MG_SOCK_STRINGIFY_PORT);
+      LOG(LL_INFO,
+          ("HTTP request from %s: %.*s %.*s", addr, (int) hm->method.len,
+           hm->method.p, (int) hm->uri.len, hm->uri.p));
+      mg_printf(nc, reply_fmt, addr);
+      nc->flags |= MG_F_SEND_AND_CLOSE;
+      break;
+    }
+    case MG_EV_CLOSE: {
+      LOG(LL_INFO, ("Connection %p closed", nc));
+      break;
+    }
+  }
+}
+
+static void mg_init(struct mg_mgr *mgr) {
+  WiFi_Params        wifiParams;
+  WiFi_Handle        handle;
+
+  LOG(LL_INFO, ("MG task running"));
+
+  /* Open WiFi driver */
+  WiFi_Params_init(&wifiParams);
+  wifiParams.bitRate = 2000000;
+  handle = WiFi_open(Board_WIFI, Board_WIFI_SPI, NULL, &wifiParams);
+  if (handle == NULL) {
+    System_abort("WiFi driver failed to open.");
+  }
+
+  sl_Start(0, 0, 0);
+
+  sl_fs_init();
+
+#if defined(WIFI_STA_SSID)
+  if (!wifi_setup_sta(WIFI_STA_SSID, WIFI_STA_PASS)) {
+    LOG(LL_ERROR, ("Error setting up WiFi station"));
+  }
+#elif defined(WIFI_AP_SSID)
+  if (!wifi_setup_ap(WIFI_AP_SSID, WIFI_AP_PASS, WIFI_AP_CHAN)) {
+    LOG(LL_ERROR, ("Error setting up WiFi AP"));
+  }
+#else
+#error WiFi not configured
+#endif
+
+  /* We don't need SimpleLink's web server. */
+  sl_NetAppStop(SL_NET_APP_HTTP_SERVER_ID);
+
+  const char *err = "";
+  struct mg_bind_opts opts;
+  memset(&opts, 0, sizeof(opts));
+  opts.error_string = &err;
+
+  struct mg_connection *nc = mg_bind(mgr, "80", mg_ev_handler);
+  if (nc != NULL) {
+    mg_set_protocol_http_websocket(nc);
+  } else {
+    LOG(LL_ERROR, ("Failed to create listener: %s", err));
+  }
+}
+
+int main(void) {
+    Board_initGeneral();
+    Board_initGPIO();
+    Board_initWiFi();
+
+    setvbuf(stdout, NULL, _IOLBF, 0);
+    setvbuf(stderr, NULL, _IOLBF, 0);
+    cs_log_set_level(LL_INFO);
+    cs_log_set_file(stdout);
+
+    if (!mg_start_task(MG_TASK_PRIORITY, MG_TASK_STACK_SIZE, mg_init)) {
+      LOG(LL_ERROR, ("Error starting Mongoose task"));
+      return 1;
+    }
+
+    LOG(LL_INFO, ("OK"));
+
+    osi_start();
+
+    return 0;
+}
+
+void SimpleLinkHttpServerCallback(SlHttpServerEvent_t *e,
+                                  SlHttpServerResponse_t *resp) {
+}
+
+void SimpleLinkSockEventHandler(SlSockEvent_t *e) {
+}
+
+void SimpleLinkGeneralEventHandler(SlDeviceEvent_t *e) {
+  LOG(LL_ERROR, ("status %d sender %d", e->EventData.deviceEvent.status,
+                 e->EventData.deviceEvent.sender));
+}
diff --git a/examples/MSP432/ccs/MG_hello/targetConfigs/MSP432P401R.ccxml b/examples/MSP432/ccs/MG_hello/targetConfigs/MSP432P401R.ccxml
new file mode 100644
index 000000000..98d3e3399
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/targetConfigs/MSP432P401R.ccxml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+    <configuration XML_version="1.2" id="configuration_0">
+        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
+            <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"/>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="MSP432P401R" href="devices/msp432p401r.xml" id="MSP432P401R" xml="msp432p401r.xml" xmlpath="devices"/>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>
diff --git a/examples/MSP432/ccs/MG_hello/targetConfigs/readme.txt b/examples/MSP432/ccs/MG_hello/targetConfigs/readme.txt
new file mode 100644
index 000000000..af97b62d5
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/targetConfigs/readme.txt
@@ -0,0 +1,9 @@
+The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
+on the device and connection settings specified in your project on the Properties > General page.
+
+Please note that in automatic target-configuration management, changes to the project's device and/or
+connection settings will either modify an existing or generate a new target-configuration file. Thus,
+if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
+you may create your own target-configuration file for this project and manage it manually. You can
+always switch back to automatic target-configuration management by checking the "Manage the project's
+target-configuration automatically" checkbox on the project's Properties > General page.
\ No newline at end of file
diff --git a/examples/MSP432/ccs/MG_hello/wifi.c b/examples/MSP432/ccs/MG_hello/wifi.c
new file mode 100644
index 000000000..02aa9a51d
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/wifi.c
@@ -0,0 +1,116 @@
+#include "wifi.h"
+
+#include "mongoose.h"
+#include "simplelink.h"
+#include "wlan.h"
+
+void SimpleLinkWlanEventHandler(SlWlanEvent_t *e) {
+  switch (e->Event) {
+    case SL_WLAN_CONNECT_EVENT:
+      LOG(LL_INFO, ("WiFi: connected"));
+      break;
+    case SL_WLAN_STA_CONNECTED_EVENT:
+      LOG(LL_INFO, ("WiFi: station connected"));
+      break;
+    case SL_WLAN_STA_DISCONNECTED_EVENT:
+      LOG(LL_INFO, ("WiFi: station disconnected"));
+      break;
+    default:
+      LOG(LL_INFO, ("WiFi: event %d", e->Event));
+  }
+}
+
+int ip_acquired = 0;
+
+void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *e) {
+  if (e->Event == SL_NETAPP_IPV4_IPACQUIRED_EVENT) {
+    SlIpV4AcquiredAsync_t *ed = &e->EventData.ipAcquiredV4;
+    LOG(LL_INFO, ("IP acquired: %lu.%lu.%lu.%lu", SL_IPV4_BYTE(ed->ip, 3),
+                  SL_IPV4_BYTE(ed->ip, 2), SL_IPV4_BYTE(ed->ip, 1),
+                  SL_IPV4_BYTE(ed->ip, 0)));
+    ip_acquired = 1;
+  } else if (e->Event == SL_NETAPP_IP_LEASED_EVENT) {
+    LOG(LL_INFO, ("IP leased"));
+  } else {
+    LOG(LL_INFO, ("NetApp event %d", e->Event));
+  }
+}
+
+bool wifi_setup_ap(const char *ssid, const char *pass, int channel) {
+  uint8_t v;
+  if (sl_WlanSetMode(ROLE_AP) != 0) {
+    return false;
+  }
+  if (sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SSID, strlen(ssid),
+                 (const uint8_t *) ssid) != 0) {
+    return false;
+  }
+  v = strlen(pass) > 0 ? SL_SEC_TYPE_WPA : SL_SEC_TYPE_OPEN;
+  if (sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SECURITY_TYPE, 1, &v) != 0) {
+    return false;
+  }
+  if (v == SL_SEC_TYPE_WPA &&
+      sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_PASSWORD, strlen(pass),
+                 (const uint8_t *) pass) != 0) {
+    return false;
+  }
+  v = channel;
+  if (sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_CHANNEL, 1, &v) != 0) {
+    return false;
+  }
+  sl_NetAppStop(SL_NET_APP_DHCP_SERVER_ID);
+  {
+    SlNetCfgIpV4Args_t ipcfg;
+    memset(&ipcfg, 0, sizeof(ipcfg));
+    if (!inet_pton(AF_INET, "192.168.4.1", &ipcfg.ipV4) ||
+        !inet_pton(AF_INET, "255.255.255.0", &ipcfg.ipV4Mask) ||
+        /* This means "disable". 0.0.0.0 won't do. */
+        !inet_pton(AF_INET, "255.255.255.255", &ipcfg.ipV4DnsServer) ||
+        /* We'd like to disable gateway too, but DHCP server refuses to start.
+           */
+        !inet_pton(AF_INET, "192.168.4.1", &ipcfg.ipV4Gateway) ||
+        sl_NetCfgSet(SL_IPV4_AP_P2P_GO_STATIC_ENABLE, IPCONFIG_MODE_ENABLE_IPV4,
+                     sizeof(ipcfg), (uint8_t *) &ipcfg) != 0) {
+      return false;
+    }
+  }
+  {
+    SlNetAppDhcpServerBasicOpt_t dhcpcfg;
+    memset(&dhcpcfg, 0, sizeof(dhcpcfg));
+    dhcpcfg.lease_time = 900;
+    if (!inet_pton(AF_INET, "192.168.4.20", &dhcpcfg.ipv4_addr_start) ||
+        !inet_pton(AF_INET, "192.168.4.200", &dhcpcfg.ipv4_addr_last) ||
+        sl_NetAppSet(SL_NET_APP_DHCP_SERVER_ID, NETAPP_SET_DHCP_SRV_BASIC_OPT,
+                     sizeof(dhcpcfg), (uint8_t *) &dhcpcfg) != 0) {
+      return false;
+    }
+  }
+  sl_Stop(0);
+  int role = sl_Start(NULL, NULL, NULL);
+  if (role != ROLE_AP) {
+	LOG(LL_ERROR, ("Expected ROLE_AP (%d), got %d", ROLE_AP, role));
+	return false;
+  }
+  if (sl_NetAppStart(SL_NET_APP_DHCP_SERVER_ID) != 0) {
+    LOG(LL_ERROR, ("DHCP server failed to start"));
+    return false;
+  }
+  LOG(LL_INFO, ("WiFi: AP %s configured", ssid));
+  return true;
+}
+
+bool wifi_setup_sta(const char *ssid, const char *pass) {
+  SlSecParams_t sp;
+  LOG(LL_INFO, ("WiFi: connecting to %s", ssid));
+  if (sl_WlanSetMode(ROLE_STA) != 0) return false;
+  sl_Stop(0);
+  sl_Start(NULL, NULL, NULL);
+  sl_WlanDisconnect();
+  sp.Key = (_i8 *) pass;
+  sp.KeyLen = strlen(pass);
+  sp.Type = sp.KeyLen ? SL_SEC_TYPE_WPA : SL_SEC_TYPE_OPEN;
+  if (sl_WlanConnect((const _i8 *) ssid, strlen(ssid), 0, &sp, 0) != 0) {
+    return false;
+  }
+  return true;
+}
diff --git a/examples/MSP432/ccs/MG_hello/wifi.h b/examples/MSP432/ccs/MG_hello/wifi.h
new file mode 100644
index 000000000..e300cbf49
--- /dev/null
+++ b/examples/MSP432/ccs/MG_hello/wifi.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2014-2016 Cesanta Software Limited
+ * All rights reserved
+ */
+
+#ifndef CS_MONGOOSE_EXAMPLES_CC3200_WIFI_H_
+#define CS_MONGOOSE_EXAMPLES_CC3200_WIFI_H_
+
+#include <stdbool.h>
+
+bool wifi_setup_ap(const char *ssid, const char *pass, int channel);
+bool wifi_setup_sta(const char *ssid, const char *pass);
+
+#endif /* CS_MONGOOSE_EXAMPLES_CC3200_WIFI_H_ */
diff --git a/examples/MSP432/ccs/Makefile b/examples/MSP432/ccs/Makefile
new file mode 100644
index 000000000..d102c42de
--- /dev/null
+++ b/examples/MSP432/ccs/Makefile
@@ -0,0 +1,2 @@
+clean:
+	rm -rf */Debug */Release */.config */.launches */.settings */.xdchelp */src
diff --git a/examples/MSP432/ccs/Mongoose/.ccsproject b/examples/MSP432/ccs/Mongoose/.ccsproject
new file mode 100644
index 000000000..46675f94c
--- /dev/null
+++ b/examples/MSP432/ccs/Mongoose/.ccsproject
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<deviceVariant value="MSP432P401R"/>
+	<deviceFamily value="MSP432"/>
+	<deviceEndianness value="little"/>
+	<codegenToolVersion value="5.2.7"/>
+	<isElfFormat value="true"/>
+	<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
+	<createSlaveProjects value=""/>
+	<templateProperties value="id=org.eclipse.rtsc.project.templates.EmptyRtscApplication,buildProfile=release,isHybrid=true,"/>
+	<isTargetManual value="false"/>
+</projectOptions>
diff --git a/examples/MSP432/ccs/Mongoose/.cproject b/examples/MSP432/ccs/Mongoose/.cproject
new file mode 100644
index 000000000..0001140a2
--- /dev/null
+++ b/examples/MSP432/ccs/Mongoose/.cproject
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.242205865">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.242205865" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="lib" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.242205865" name="Debug" parent="com.ti.ccstudio.buildDefinitions.MSP432.Debug" postbuildStep="" prebuildStep="">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP432.Debug.242205865." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.libraryDebugToolchain.852495899" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.libraryDebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianDebug.182350248">
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1081004038" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=MSP432P401R"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
+								<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
+								<listOptionValue builtIn="false" value="XDC_VERSION=3.31.1.33_core"/>
+								<listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSmsp430:2.16.0.08;"/>
+								<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:staticLibrary"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.910806295" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.2.7" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.targetPlatformDebug.220661868" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.targetPlatformDebug"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.builderDebug.2008525884" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.builderDebug"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.compilerDebug.1957478400" name="MSP432 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.compilerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC.1600079717" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.181573608" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.949942191" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.107180039" name="Application binary interface. [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.eabi" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.22166878" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE.588204726" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="__MSP432P401R__"/>
+									<listOptionValue builtIn="false" value="TARGET_IS_MSP432P4XX"/>
+									<listOptionValue builtIn="false" value="ccs"/>
+									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH.134723464" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.1299929989" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER.247804643" name="Enable checking of ULP power rules (--advice:power)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER" value="&quot;all&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING.75072455" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER.1631534749" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.377575485" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN.214103179" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT.1039008667" name="C Dialect" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.C_DIALECT.C99" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.1561332826" name="Set error category for ULP power rules (--advice:power_severity)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.suppress" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS.640783361" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS.1558463740" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS.1443539078" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS.1291573730" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianDebug.182350248" name="MSP432 Archiver" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.archiverID.OUTPUT_FILE.1501640506" name="Output file" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.archiverID.OUTPUT_FILE" value="&quot;${ProjName}.lib&quot;" valueType="string"/>
+							</tool>
+							<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1323526968" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.507947486" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.2087087444" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M4F" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1627911596" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1633912539" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.msp432:$DeviceId$" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.109209033" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="debug" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1719973519" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
+									<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSMSP430_REPOS}"/>
+									<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
+								</option>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.MSP432.Release.1544782967">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.MSP432.Release.1544782967" moduleId="org.eclipse.cdt.core.settings" name="Release">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="lib" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.MSP432.Release.1544782967" name="Release" parent="com.ti.ccstudio.buildDefinitions.MSP432.Release" postbuildStep="" prebuildStep="">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.MSP432.Release.1544782967." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.ReleaseToolchain.74382251" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianRelease.1395179648">
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1512922139" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=MSP432P401R"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.5.0"/>
+								<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
+								<listOptionValue builtIn="false" value="XDC_VERSION=3.31.1.33_core"/>
+								<listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.TIRTOSmsp430:2.16.0.08;"/>
+								<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:staticLibrary"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1127638216" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.2.7" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.targetPlatformRelease.1428280703" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.targetPlatformRelease"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.builderRelease.2091719435" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.builderRelease"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.compilerRelease.574316885" name="MSP432 Compiler" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.compilerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC.1255465912" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.GCC" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.1375172738" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.677673886" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.CODE_STATE.16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.350325440" name="Application binary interface. [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ABI.eabi" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.1996484789" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE.181121787" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="__MSP432P401R__"/>
+									<listOptionValue builtIn="false" value="TARGET_IS_MSP432P4XX"/>
+									<listOptionValue builtIn="false" value="ccs"/>
+									<listOptionValue builtIn="false" value="MG_ENABLE_HTTP_STREAMING_MULTIPART=1"/>
+									<listOptionValue builtIn="false" value="MG_FS_SLFS=1"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH.1239544023" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/products/tidrivers_msp43x_2_16_00_08/packages/ti/mw/wifi/cc3x00&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CCS_BASE_ROOT}/arm/include/CMSIS&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER.937821825" name="Enable checking of ULP power rules (--advice:power)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER" value="&quot;all&quot;" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING.1871833692" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER.1052162638" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.139877883" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN.832106645" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.1681960761" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY" value="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compilerID.ADVICE__POWER_SEVERITY.suppress" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS.494310206" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS.1747791468" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS.1060043732" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS.1680835546" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianRelease.1395179648" name="MSP432 Archiver" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.library.librarianRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.MSP432_5.2.archiverID.OUTPUT_FILE.874992649" name="Output file" superClass="com.ti.ccstudio.buildDefinitions.MSP432_5.2.archiverID.OUTPUT_FILE" value="&quot;${ProjName}.lib&quot;" valueType="string"/>
+							</tool>
+							<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.736679504" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.404302903" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="&quot;${CG_TOOL_ROOT}&quot;" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1601732449" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M4F" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1561112080" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.msp432:MSP432P401R" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.832946789" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.msp432:$DeviceId$" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.894476358" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
+								<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1046157525" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
+									<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSMSP430_REPOS}"/>
+									<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
+								</option>
+							</tool>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry excluding="src|msp432p401r.cmd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="Mongoose.com.ti.ccstudio.buildDefinitions.MSP432.ProjectType.1858983168" name="MSP432" projectType="com.ti.ccstudio.buildDefinitions.MSP432.ProjectType"/>
+	</storageModule>
+	<storageModule moduleId="scannerConfiguration"/>
+	<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
+		<project-mappings>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+			<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+		</project-mappings>
+	</storageModule>
+	<storageModule moduleId="refreshScope"/>
+</cproject>
diff --git a/examples/MSP432/ccs/Mongoose/.project b/examples/MSP432/ccs/Mongoose/.project
new file mode 100644
index 000000000..5100371d6
--- /dev/null
+++ b/examples/MSP432/ccs/Mongoose/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Mongoose</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>
+		<nature>com.ti.ccstudio.core.ccsNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+	<linkedResources>
+		<link>
+			<name>mongoose.c</name>
+			<type>1</type>
+			<locationURI>PARENT-4-PROJECT_LOC/mongoose.c</locationURI>
+		</link>
+		<link>
+			<name>mongoose.h</name>
+			<type>1</type>
+			<locationURI>PARENT-4-PROJECT_LOC/mongoose.h</locationURI>
+		</link>
+	</linkedResources>
+</projectDescription>
diff --git a/examples/MSP432/ccs/Mongoose/Mongoose.cfg b/examples/MSP432/ccs/Mongoose/Mongoose.cfg
new file mode 100644
index 000000000..8f148c48b
--- /dev/null
+++ b/examples/MSP432/ccs/Mongoose/Mongoose.cfg
@@ -0,0 +1 @@
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
diff --git a/examples/Makefile b/examples/Makefile
index 3f1798221..5972212a3 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -3,7 +3,7 @@
 
 # `wildcard ./*/` works in both linux and linux/wine, while `wildcard */` enumerates nothing under wine
 SUBDIRS = $(sort $(dir $(wildcard ./*/)))
-SUBDIRS:=$(filter-out ./ ./CC3200/, $(SUBDIRS))
+SUBDIRS:=$(filter-out ./ ./CC3200/ ./ESP8266_RTOS/ ./MSP432/, $(SUBDIRS))
 
 ifeq ($(OS), Windows_NT)
   SUBDIRS:=$(filter-out ./load_balancer/ ./netcat/ ./raspberry_pi_mjpeg_led/ ./captive_dns_server/, $(SUBDIRS))
-- 
GitLab