summaryrefslogtreecommitdiff
path: root/boards/dk-tm4c129x/grlib_demo
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-06-29 12:34:32 +0300
committerYuval Adam <yuv.adm@gmail.com>2014-06-29 12:34:32 +0300
commitc3e4c9a25c2910d2d66d52215b3406b13d5b23d5 (patch)
treeadded370d1e356901f8579f076e3263fb0464db7 /boards/dk-tm4c129x/grlib_demo
parent990090a4cc9070837d31e66b58d40f0c3d038741 (diff)
Add more board models
Diffstat (limited to 'boards/dk-tm4c129x/grlib_demo')
-rw-r--r--boards/dk-tm4c129x/grlib_demo/Makefile95
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/.ccsimportspec10
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/.ccsproject10
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/.cproject191
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/.project90
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs3
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.binbin0 -> 65712 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.outbin0 -> 436321 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/macros.ini_initial1
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ccs/target_config.ccxml13
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.binbin0 -> 61580 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.outbin0 -> 426024 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.axfbin0 -> 114964 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.binbin0 -> 65288 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.c1324
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.ewd614
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.ewp813
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.icf78
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.ld57
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.sct47
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.uvopt415
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo.uvproj469
-rw-r--r--boards/dk-tm4c129x/grlib_demo/grlib_demo_ccs.cmd70
-rw-r--r--boards/dk-tm4c129x/grlib_demo/images.c1131
-rw-r--r--boards/dk-tm4c129x/grlib_demo/images.h43
-rw-r--r--boards/dk-tm4c129x/grlib_demo/readme.txt70
-rw-r--r--boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.axfbin0 -> 521008 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.binbin0 -> 63000 bytes
-rw-r--r--boards/dk-tm4c129x/grlib_demo/startup_ccs.c276
-rw-r--r--boards/dk-tm4c129x/grlib_demo/startup_ewarm.c307
-rw-r--r--boards/dk-tm4c129x/grlib_demo/startup_gcc.c323
-rw-r--r--boards/dk-tm4c129x/grlib_demo/startup_rvmdk.S332
32 files changed, 6782 insertions, 0 deletions
diff --git a/boards/dk-tm4c129x/grlib_demo/Makefile b/boards/dk-tm4c129x/grlib_demo/Makefile
new file mode 100644
index 0000000..df5423b
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/Makefile
@@ -0,0 +1,95 @@
+#******************************************************************************
+#
+# Makefile - Rules for building the grlib_demo example.
+#
+# Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+# Software License Agreement
+#
+# Texas Instruments (TI) is supplying this software for use solely and
+# exclusively on TI's microcontroller products. The software is owned by
+# TI and/or its suppliers, and is protected under applicable copyright
+# laws. You may not combine this software with "viral" open-source
+# software in order to form a larger program.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+# NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+# NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+# CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+# DAMAGES, FOR ANY REASON WHATSOEVER.
+#
+# This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+#
+#******************************************************************************
+
+#
+# Defines the part type that this project uses.
+#
+PART=TM4C129XNCZAD
+
+#
+# The base directory for TivaWare.
+#
+ROOT=../../../..
+
+#
+# Include the common make definitions.
+#
+include ${ROOT}/makedefs
+
+#
+# Where to find source files that do not live in this directory.
+#
+VPATH=../drivers
+VPATH+=../../../../utils
+
+#
+# Where to find header files that do not live in the source directory.
+#
+IPATH=..
+IPATH+=../../../..
+
+#
+# The default rule, which causes the grlib_demo example to be built.
+#
+all: ${COMPILER}
+all: ${COMPILER}/grlib_demo.axf
+
+#
+# The rule to clean out all the build products.
+#
+clean:
+ @rm -rf ${COMPILER} ${wildcard *~}
+
+#
+# The rule to create the target directory.
+#
+${COMPILER}:
+ @mkdir -p ${COMPILER}
+
+#
+# Rules for building the grlib_demo example.
+#
+${COMPILER}/grlib_demo.axf: ${COMPILER}/frame.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/grlib_demo.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/images.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/kentec320x240x16_ssd2119.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/pinout.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/sine.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/sound.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/startup_${COMPILER}.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/touch.o
+${COMPILER}/grlib_demo.axf: ${COMPILER}/ustdlib.o
+${COMPILER}/grlib_demo.axf: ${ROOT}/grlib/${COMPILER}/libgr.a
+${COMPILER}/grlib_demo.axf: ${ROOT}/driverlib/${COMPILER}/libdriver.a
+${COMPILER}/grlib_demo.axf: grlib_demo.ld
+SCATTERgcc_grlib_demo=grlib_demo.ld
+ENTRY_grlib_demo=ResetISR
+CFLAGSgcc=-DTARGET_IS_TM4C129_RA0
+
+#
+# Include the automatically generated dependency files.
+#
+ifneq (${MAKECMDGOALS},clean)
+-include ${wildcard ${COMPILER}/*.d} __dummy__
+endif
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/.ccsimportspec b/boards/dk-tm4c129x/grlib_demo/ccs/.ccsimportspec
new file mode 100644
index 0000000..542acf7
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/.ccsimportspec
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<importSpec>
+ <source root="..">
+ <file name="grlib_demo.c"/>
+ <file name="images.c"/>
+ <file name="images.h"/>
+ <file regex=".*_ccs\.cmd"/>
+ <file name="startup_ccs.c"/>
+ </source>
+</importSpec>
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/.ccsproject b/boards/dk-tm4c129x/grlib_demo/ccs/.ccsproject
new file mode 100644
index 0000000..59a3400
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/.ccsproject
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+ <deviceVariant value="Cortex M.TM4C129XNCZAD"/>
+ <deviceFamily value="TMS470"/>
+ <deviceEndianness value="little"/>
+ <codegenToolVersion value="5.0.4"/>
+ <isElfFormat value="true"/>
+ <rts value="libc.a"/>
+</projectOptions>
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/.cproject b/boards/dk-tm4c129x/grlib_demo/ccs/.cproject
new file mode 100644
index 0000000..1f4f47c
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/.cproject
@@ -0,0 +1,191 @@
+<?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.TMS470.Debug.1997226077">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1997226077" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <macros>
+ <stringMacro name="SW_ROOT" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../../../.."/>
+ </macros>
+ <externalSettings/>
+ <extensions>
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <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"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1997226077" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug" postbuildStep="&quot;${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin&quot; &quot;${BuildArtifactFileName}&quot; &quot;${BuildArtifactFileBaseName}.bin&quot; &quot;${CG_TOOL_ROOT}/bin/armofd&quot; &quot;${CG_TOOL_ROOT}/bin/armhex&quot; &quot;${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin&quot;">
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1997226077." name="/" resourcePath="">
+ <toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.DebugToolchain.520633520" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerDebug.2124544902">
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.332417591" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.TM4C129XNCZAD"/>
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.980325530" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.0.4" valueType="string"/>
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.targetPlatformDebug.155109518" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.targetPlatformDebug"/>
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.builderDebug.134955381" name="GNU Make.Debug" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.builderDebug"/>
+ <tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.compilerDebug.2042742407" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.compilerDebug">
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION.1550190511" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE.716126000" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE.16" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI.753081456" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI.eabi" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT.1287197514" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEBUGGING_MODEL.1081203949" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WARNING.1598328260" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WARNING" valueType="stringList">
+ <listOptionValue builtIn="false" value="225"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DISPLAY_ERROR_NUMBER.191386318" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP.1340418098" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.INCLUDE_PATH.1711083406" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.INCLUDE_PATH" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/examples/boards/dk-tm4c129x&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}&quot;"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.LITTLE_ENDIAN.759424768" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS.1711681767" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.OPT_LEVEL.870019444" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.OPT_LEVEL.2" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GCC.100724906" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GCC" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.UAL.1157063488" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.UAL" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEFINE.1950174446" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEFINE" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="ccs=&quot;ccs&quot;"/>
+ <listOptionValue builtIn="false" value="PART_TM4C129XNCZAD"/>
+ <listOptionValue builtIn="false" value="TARGET_IS_TM4C129_RA0"/>
+ </option>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__C_SRCS.459065966" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__C_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__CPP_SRCS.1604090847" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__CPP_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM_SRCS.468551529" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM2_SRCS.839299831" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM2_SRCS"/>
+ </tool>
+ <tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerDebug.2124544902" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerDebug">
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.MAP_FILE.1225281739" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.MAP_FILE" value="&quot;grlib_demo_ccs.map&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.STACK_SIZE.182447605" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.STACK_SIZE" value="1024" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.HEAP_SIZE.661852406" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.HEAP_SIZE" value="0" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.OUTPUT_FILE.1360104575" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.XML_LINK_INFO.1656856752" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DISPLAY_ERROR_NUMBER.1810595861" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP.1720125947" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.SEARCH_PATH.1198350643" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.SEARCH_PATH" valueType="libPaths">
+ <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.TMS470_5.0.linkerID.LIBRARY.1096061074" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.LIBRARY" valueType="libs">
+ <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/driverlib/ccs/Debug/driverlib.lib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/grlib/ccs/Debug/grlib.lib&quot;"/>
+ </option>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD_SRCS.979525800" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD2_SRCS.1452295496" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD2_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__GEN_CMDS.355908612" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__GEN_CMDS"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Release.1863483802">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Release.1863483802" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <macros>
+ <stringMacro name="SW_ROOT" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../../../.."/>
+ </macros>
+ <externalSettings/>
+ <extensions>
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <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"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Release.1863483802" name="Release" parent="com.ti.ccstudio.buildDefinitions.TMS470.Release" postbuildStep="&quot;${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin&quot; &quot;${BuildArtifactFileName}&quot; &quot;${BuildArtifactFileBaseName}.bin&quot; &quot;${CG_TOOL_ROOT}/bin/armofd&quot; &quot;${CG_TOOL_ROOT}/bin/armhex&quot; &quot;${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin&quot;">
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Release.1863483802." name="/" resourcePath="">
+ <toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.ReleaseToolchain.412151306" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerRelease.332269319">
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1878559889" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.TM4C129XNCZAD"/>
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.315304825" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="5.0.4" valueType="string"/>
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.targetPlatformRelease.279214172" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.targetPlatformRelease"/>
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.builderRelease.926286887" name="GNU Make.Release" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.builderRelease"/>
+ <tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.compilerRelease.1128402900" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.compilerRelease">
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION.1728300464" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE.183496051" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.CODE_STATE.16" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI.180318777" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.ABI.eabi" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT.1911824609" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.FLOAT_SUPPORT.FPv4SPD16" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WARNING.54860337" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WARNING" valueType="stringList">
+ <listOptionValue builtIn="false" value="225"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DISPLAY_ERROR_NUMBER.170750417" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP.1126173006" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.INCLUDE_PATH.2023485440" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.INCLUDE_PATH" valueType="includePath">
+ <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/examples/boards/dk-tm4c129x&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}&quot;"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.LITTLE_ENDIAN.385737239" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS.1825370718" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GCC.441990412" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.GCC" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.UAL.1655095360" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.UAL" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEFINE.592190445" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compilerID.DEFINE" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="ccs=&quot;ccs&quot;"/>
+ <listOptionValue builtIn="false" value="PART_TM4C129XNCZAD"/>
+ <listOptionValue builtIn="false" value="TARGET_IS_TM4C129_RA0"/>
+ </option>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__C_SRCS.464964836" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__C_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__CPP_SRCS.1867525122" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__CPP_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM_SRCS.1348168682" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM2_SRCS.62644193" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.compiler.inputType__ASM2_SRCS"/>
+ </tool>
+ <tool id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerRelease.332269319" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exe.linkerRelease">
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.MAP_FILE.1989636127" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.MAP_FILE" value="&quot;grlib_demo_ccs.map&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.STACK_SIZE.1328680404" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.STACK_SIZE" value="1024" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.HEAP_SIZE.1552061325" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.HEAP_SIZE" value="0" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.OUTPUT_FILE.2086133229" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.XML_LINK_INFO.1551118545" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DISPLAY_ERROR_NUMBER.795578147" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP.1305314298" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.SEARCH_PATH.75543860" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.SEARCH_PATH" valueType="libPaths">
+ <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.TMS470_5.0.linkerID.LIBRARY.615043884" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.linkerID.LIBRARY" valueType="libs">
+ <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/driverlib/ccs/Debug/driverlib.lib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SW_ROOT}/grlib/ccs/Debug/grlib.lib&quot;"/>
+ </option>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD_SRCS.91425998" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD2_SRCS.59620418" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__CMD2_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__GEN_CMDS.1946560594" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_5.0.exeLinker.inputType__GEN_CMDS"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </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="grlib_demo.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.47992590" name="ARM" projectType="com.ti.ccstudio.buildDefinitions.TMS470.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>
+</cproject>
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/.project b/boards/dk-tm4c129x/grlib_demo/ccs/.project
new file mode 100644
index 0000000..9a1511b
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/.project
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>grlib_demo</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>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>grlib_demo.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/grlib_demo/grlib_demo.c</locationURI>
+ </link>
+ <link>
+ <name>grlib_demo_ccs.cmd</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/grlib_demo/grlib_demo_ccs.cmd</locationURI>
+ </link>
+ <link>
+ <name>images.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/grlib_demo/images.c</locationURI>
+ </link>
+ <link>
+ <name>startup_ccs.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/grlib_demo/startup_ccs.c</locationURI>
+ </link>
+ <link>
+ <name>drivers/frame.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/drivers/frame.c</locationURI>
+ </link>
+ <link>
+ <name>drivers/kentec320x240x16_ssd2119.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/drivers/kentec320x240x16_ssd2119.c</locationURI>
+ </link>
+ <link>
+ <name>drivers/pinout.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/drivers/pinout.c</locationURI>
+ </link>
+ <link>
+ <name>drivers/sound.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/drivers/sound.c</locationURI>
+ </link>
+ <link>
+ <name>drivers/touch.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/examples/boards/dk-tm4c129x/drivers/touch.c</locationURI>
+ </link>
+ <link>
+ <name>utils/sine.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/utils/sine.c</locationURI>
+ </link>
+ <link>
+ <name>utils/ustdlib.c</name>
+ <type>1</type>
+ <locationURI>SW_ROOT/utils/ustdlib.c</locationURI>
+ </link>
+ </linkedResources>
+ <variableList>
+ <variable>
+ <name>SW_ROOT</name>
+ <value>$%7BPARENT-5-PROJECT_LOC%7D</value>
+ </variable>
+ </variableList>
+</projectDescription>
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs b/boards/dk-tm4c129x/grlib_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100644
index 0000000..98b6350
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+inEditor=false
+onBuild=false
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.bin b/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.bin
new file mode 100644
index 0000000..197a7c4
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.bin
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.out b/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.out
new file mode 100644
index 0000000..bfd06af
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/Debug/grlib_demo.out
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/macros.ini_initial b/boards/dk-tm4c129x/grlib_demo/ccs/macros.ini_initial
new file mode 100644
index 0000000..31214b5
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/macros.ini_initial
@@ -0,0 +1 @@
+SW_ROOT = ../../../../..
diff --git a/boards/dk-tm4c129x/grlib_demo/ccs/target_config.ccxml b/boards/dk-tm4c129x/grlib_demo/ccs/target_config.ccxml
new file mode 100644
index 0000000..6e5ef45
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ccs/target_config.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="Stellaris In-Circuit Debug Interface_0">
+ <instance XML_version="1.2" desc="Stellaris In-Circuit Debug Interface_0" href="connections/Stellaris_ICDI_Connection.xml" id="Stellaris In-Circuit Debug Interface_0" xml="Stellaris_ICDI_Connection.xml" xmlpath="connections"/>
+ <connection XML_version="1.2" id="Stellaris In-Circuit Debug Interface_0">
+ <instance XML_version="1.2" href="drivers/stellaris_cs_dap.xml" id="drivers" xml="stellaris_cs_dap.xml" xmlpath="drivers"/>
+ <instance XML_version="1.2" href="drivers/stellaris_cortex_m4.xml" id="drivers" xml="stellaris_cortex_m4.xml" xmlpath="drivers"/>
+ <platform XML_version="1.2" id="platform_0">
+ <instance XML_version="1.2" desc="Stellaris TM4C129XNCZAD_0" href="devices/tm4c129xnczad.xml" id="Stellaris TM4C129XNCZAD_0" xml="tm4c129xnczad.xml" xmlpath="devices"/>
+ </platform>
+ </connection>
+ </configuration>
+</configurations>
diff --git a/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.bin b/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.bin
new file mode 100644
index 0000000..9862dea
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.bin
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.out b/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.out
new file mode 100644
index 0000000..62126b9
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/ewarm/Exe/grlib_demo.out
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.axf b/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.axf
new file mode 100644
index 0000000..5b941c7
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.axf
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.bin b/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.bin
new file mode 100644
index 0000000..091acc1
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/gcc/grlib_demo.bin
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.c b/boards/dk-tm4c129x/grlib_demo/grlib_demo.c
new file mode 100644
index 0000000..d2eac50
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.c
@@ -0,0 +1,1324 @@
+//*****************************************************************************
+//
+// grlib_demo.c - Demonstration of the TivaWare Graphics Library.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#include <stdbool.h>
+#include <stdint.h>
+#include "inc/hw_types.h"
+#include "driverlib/rom.h"
+#include "driverlib/rom_map.h"
+#include "driverlib/sysctl.h"
+#include "driverlib/udma.h"
+#include "grlib/grlib.h"
+#include "grlib/widget.h"
+#include "grlib/canvas.h"
+#include "grlib/checkbox.h"
+#include "grlib/container.h"
+#include "grlib/pushbutton.h"
+#include "grlib/radiobutton.h"
+#include "grlib/slider.h"
+#include "utils/ustdlib.h"
+#include "utils/sine.h"
+#include "drivers/frame.h"
+#include "drivers/kentec320x240x16_ssd2119.h"
+#include "drivers/pinout.h"
+#include "drivers/sound.h"
+#include "drivers/touch.h"
+#include "images.h"
+
+//*****************************************************************************
+//
+//! \addtogroup example_list
+//! <h1>Graphics Library Demonstration (grlib_demo)</h1>
+//!
+//! This application provides a demonstration of the capabilities of the
+//! TivaWare Graphics Library. A series of panels show different features of
+//! the library. For each panel, the bottom provides a forward and back button
+//! (when appropriate), along with a brief description of the contents of the
+//! panel.
+//!
+//! The first panel provides some introductory text and basic instructions for
+//! operation of the application.
+//!
+//! The second panel shows the available drawing primitives: lines, circles,
+//! rectangles, strings, and images.
+//!
+//! The third panel shows the canvas widget, which provides a general drawing
+//! surface within the widget hierarchy. A text, image, and application-drawn
+//! canvas are displayed.
+//!
+//! The fourth panel shows the check box widget, which provides a means of
+//! toggling the state of an item. Three check boxes are provided, with each
+//! having a red ``LED'' to the right. The state of the LED tracks the state
+//! of the check box via an application callback.
+//!
+//! The fifth panel shows the container widget, which provides a grouping
+//! construct typically used for radio buttons. Containers with a title, a
+//! centered title, and no title are displayed.
+//!
+//! The sixth panel shows the push button widget. Two rows of push buttons
+//! are provided; the appearance of each row is the same but the top row
+//! does not utilize auto-repeat while the bottom row does. Each push button
+//! has a red ``LED'' beneath it, which is toggled via an application callback
+//! each time the push button is pressed. While holding down any of
+//! auto-repeat buttons, the ``LED'' for that button should be toggled as long
+//! as the button is being held down.
+//!
+//! The seventh panel shows the radio button widget. Two groups of radio
+//! buttons are displayed, the first using text and the second using images for
+//! the selection value. Each radio button has a red ``LED'' to its right,
+//! which tracks the selection state of the radio buttons via an application
+//! callback. Only one radio button from each group can be selected at a time,
+//! though the radio buttons in each group operate independently.
+//!
+//! The eighth and final panel shows the slider widget. Six sliders
+//! constructed using the various supported style options are shown. The
+//! slider value callback is used to update two widgets to reflect the values
+//! reported by sliders. A canvas widget near the top right of the display
+//! tracks the value of the red and green image-based slider to its left and
+//! the text of the grey slider on the left side of the panel is update to show
+//! its own value. The slider on the right is configured as an indicator
+//! which tracks the state of the upper slider and ignores user input.
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// The error routine that is called if the driver library encounters an error.
+//
+//*****************************************************************************
+#ifdef DEBUG
+void
+__error__(char *pcFilename, uint32_t ui32Line)
+{
+}
+#endif
+
+//*****************************************************************************
+//
+// The DMA control structure table.
+//
+//*****************************************************************************
+#ifdef ewarm
+#pragma data_alignment=1024
+tDMAControlTable psDMAControlTable[64];
+#elif defined(ccs)
+#pragma DATA_ALIGN(psDMAControlTable, 1024)
+tDMAControlTable psDMAControlTable[64];
+#else
+tDMAControlTable psDMAControlTable[64] __attribute__ ((aligned(1024)));
+#endif
+
+//*****************************************************************************
+//
+// The sound effect that is played when a key is pressed.
+//
+//*****************************************************************************
+#define AUDIO_SIZE 2048
+static int16_t g_pi16AudioBuffer[AUDIO_SIZE];
+
+//*****************************************************************************
+//
+// A set of flags that indicate the current state of the application.
+//
+//*****************************************************************************
+static uint32_t g_ui32Flags;
+#define FLAG_PING 0 // The "ping" half of the sound
+ // buffer needs to be filled
+#define FLAG_PONG 1 // The "pong" half of the sound
+ // buffer needs to be filled
+
+//*****************************************************************************
+//
+// The screen offset of the upper left hand corner where we start to draw.
+//
+//*****************************************************************************
+#define X_OFFSET 8
+#define Y_OFFSET 24
+
+//*****************************************************************************
+//
+// Forward declarations for the globals required to define the widgets at
+// compile-time.
+//
+//*****************************************************************************
+void OnPrevious(tWidget *psWidget);
+void OnNext(tWidget *psWidget);
+void OnIntroPaint(tWidget *psWidget, tContext *psContext);
+void OnPrimitivePaint(tWidget *psWidget, tContext *psContext);
+void OnCanvasPaint(tWidget *psWidget, tContext *psContext);
+void OnCheckChange(tWidget *psWidget, uint32_t bSelected);
+void OnButtonPress(tWidget *psWidget);
+void OnRadioChange(tWidget *psWidget, uint32_t bSelected);
+void OnSliderChange(tWidget *psWidget, int32_t i32Value);
+extern tCanvasWidget g_psPanels[];
+void SoundCallback(uint32_t ui32Half);
+
+//*****************************************************************************
+//
+// The first panel, which contains introductory text explaining the
+// application.
+//
+//*****************************************************************************
+Canvas(g_sIntroduction, g_psPanels, 0, 0, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_APP_DRAWN, 0, 0, 0, 0, 0, 0, OnIntroPaint);
+
+//*****************************************************************************
+//
+// The second panel, which demonstrates the graphics primitives.
+//
+//*****************************************************************************
+Canvas(g_sPrimitives, g_psPanels + 1, 0, 0, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_APP_DRAWN, 0, 0, 0, 0, 0, 0, OnPrimitivePaint);
+
+//*****************************************************************************
+//
+// The third panel, which demonstrates the canvas widget.
+//
+//*****************************************************************************
+Canvas(g_sCanvas3, g_psPanels + 2, 0, 0, &g_sKentec320x240x16_SSD2119, 200,
+ Y_OFFSET, 110, 152, CANVAS_STYLE_OUTLINE | CANVAS_STYLE_APP_DRAWN, 0,
+ ClrGray, 0, 0, 0, 0, OnCanvasPaint);
+Canvas(g_sCanvas2, g_psPanels + 2, &g_sCanvas3, 0,
+ &g_sKentec320x240x16_SSD2119, X_OFFSET, (76+Y_OFFSET), 190, 76,
+ CANVAS_STYLE_OUTLINE | CANVAS_STYLE_IMG, 0, ClrGray, 0, 0, 0,
+ g_ui8Logo, 0);
+Canvas(g_sCanvas1, g_psPanels + 2, &g_sCanvas2, 0,
+ &g_sKentec320x240x16_SSD2119, X_OFFSET, Y_OFFSET, 190, 76,
+ CANVAS_STYLE_FILL | CANVAS_STYLE_OUTLINE | CANVAS_STYLE_TEXT,
+ ClrMidnightBlue, ClrGray, ClrSilver, g_psFontCm22, "Text", 0, 0);
+
+//*****************************************************************************
+//
+// The fourth panel, which demonstrates the checkbox widget.
+//
+//*****************************************************************************
+tCanvasWidget g_psCheckBoxIndicators[] =
+{
+ CanvasStruct(g_psPanels + 3, g_psCheckBoxIndicators + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 230, 30, 50, 42,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 3, g_psCheckBoxIndicators + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 230, 82, 50, 48,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 3, 0, 0,
+ &g_sKentec320x240x16_SSD2119, 230, 134, 50, 42,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0)
+};
+tCheckBoxWidget g_psCheckBoxes[] =
+{
+ CheckBoxStruct(g_psPanels + 3, g_psCheckBoxes + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 40, 25, 185, 42,
+ CB_STYLE_OUTLINE | CB_STYLE_FILL | CB_STYLE_TEXT, 16,
+ ClrMidnightBlue, ClrGray, ClrSilver, g_psFontCm22,
+ "Select", 0, OnCheckChange),
+ CheckBoxStruct(g_psPanels + 3, g_psCheckBoxes + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 40, 78, 185, 48,
+ CB_STYLE_IMG, 16, 0, ClrGray, 0, 0, 0, g_ui8Logo,
+ OnCheckChange),
+ CheckBoxStruct(g_psPanels + 3, g_psCheckBoxIndicators, 0,
+ &g_sKentec320x240x16_SSD2119, 40, 129, 189, 42,
+ CB_STYLE_OUTLINE | CB_STYLE_TEXT, 16,
+ 0, ClrGray, ClrGreen, g_psFontCm20, "Select",
+ 0, OnCheckChange),
+};
+#define NUM_CHECK_BOXES (sizeof(g_psCheckBoxes) / \
+ sizeof(g_psCheckBoxes[0]))
+
+//*****************************************************************************
+//
+// The fifth panel, which demonstrates the container widget.
+//
+//*****************************************************************************
+Container(g_sContainer3, g_psPanels + 4, 0, 0, &g_sKentec320x240x16_SSD2119,
+ 205, 47, 105, 118, CTR_STYLE_OUTLINE | CTR_STYLE_FILL,
+ ClrMidnightBlue, ClrGray, 0, 0, 0);
+Container(g_sContainer2, g_psPanels + 4, &g_sContainer3, 0,
+ &g_sKentec320x240x16_SSD2119, X_OFFSET, 100, 190, 70,
+ (CTR_STYLE_OUTLINE | CTR_STYLE_FILL | CTR_STYLE_TEXT |
+ CTR_STYLE_TEXT_CENTER), ClrMidnightBlue, ClrGray, ClrSilver,
+ g_psFontCm22, "Group2");
+Container(g_sContainer1, g_psPanels + 4, &g_sContainer2, 0,
+ &g_sKentec320x240x16_SSD2119, X_OFFSET, Y_OFFSET, 190, 70,
+ CTR_STYLE_OUTLINE | CTR_STYLE_FILL | CTR_STYLE_TEXT, ClrMidnightBlue,
+ ClrGray, ClrSilver, g_psFontCm22, "Group1");
+
+//*****************************************************************************
+//
+// The sixth panel, which contains a selection of push buttons.
+//
+//*****************************************************************************
+tCanvasWidget g_psPushButtonIndicators[] =
+{
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 40, 80, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 90, 80, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 3, 0,
+ &g_sKentec320x240x16_SSD2119, 145, 80, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 4, 0,
+ &g_sKentec320x240x16_SSD2119, 40, 160, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 5, 0,
+ &g_sKentec320x240x16_SSD2119, 90, 160, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 6, 0,
+ &g_sKentec320x240x16_SSD2119, 145, 160, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 7, 0,
+ &g_sKentec320x240x16_SSD2119, 190, 30, 110, 24,
+ CANVAS_STYLE_TEXT, 0, 0, ClrSilver, g_psFontCm20, "Non-auto",
+ 0, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 8, 0,
+ &g_sKentec320x240x16_SSD2119, 190, 50, 110, 24,
+ CANVAS_STYLE_TEXT, 0, 0, ClrSilver, g_psFontCm20, "repeat",
+ 0, 0),
+ CanvasStruct(g_psPanels + 5, g_psPushButtonIndicators + 9, 0,
+ &g_sKentec320x240x16_SSD2119, 190, 110, 110, 24,
+ CANVAS_STYLE_TEXT, 0, 0, ClrSilver, g_psFontCm20, "Auto",
+ 0, 0),
+ CanvasStruct(g_psPanels + 5, 0, 0,
+ &g_sKentec320x240x16_SSD2119, 190, 130, 110, 24,
+ CANVAS_STYLE_TEXT, 0, 0, ClrSilver, g_psFontCm20, "repeat",
+ 0, 0),
+};
+tPushButtonWidget g_psPushButtons[] =
+{
+ RectangularButtonStruct(g_psPanels + 5, g_psPushButtons + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 30, 30, 40, 40,
+ PB_STYLE_FILL | PB_STYLE_OUTLINE | PB_STYLE_TEXT,
+ ClrMidnightBlue, ClrBlack, ClrGray, ClrSilver,
+ g_psFontCm22, "1", 0, 0, 0, 0, OnButtonPress),
+ CircularButtonStruct(g_psPanels + 5, g_psPushButtons + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 100, 50, 20,
+ PB_STYLE_FILL | PB_STYLE_OUTLINE | PB_STYLE_TEXT,
+ ClrMidnightBlue, ClrBlack, ClrGray, ClrSilver,
+ g_psFontCm22, "3", 0, 0, 0, 0, OnButtonPress),
+ RectangularButtonStruct(g_psPanels + 5, g_psPushButtons + 3, 0,
+ &g_sKentec320x240x16_SSD2119, 130, 25, 50, 50,
+ PB_STYLE_IMG | PB_STYLE_TEXT, 0, 0, 0, ClrSilver,
+ g_psFontCm22, "5", g_pui8Blue50x50,
+ g_pui8Blue50x50Press, 0, 0, OnButtonPress),
+ RectangularButtonStruct(g_psPanels + 5, g_psPushButtons + 4, 0,
+ &g_sKentec320x240x16_SSD2119, 30, 110, 40, 40,
+ (PB_STYLE_FILL | PB_STYLE_OUTLINE | PB_STYLE_TEXT |
+ PB_STYLE_AUTO_REPEAT), ClrMidnightBlue, ClrBlack,
+ ClrGray, ClrSilver, g_psFontCm22, "2", 0, 0, 125,
+ 25, OnButtonPress),
+ CircularButtonStruct(g_psPanels + 5, g_psPushButtons + 5, 0,
+ &g_sKentec320x240x16_SSD2119, 100, 130, 20,
+ (PB_STYLE_FILL | PB_STYLE_OUTLINE | PB_STYLE_TEXT |
+ PB_STYLE_AUTO_REPEAT), ClrMidnightBlue, ClrBlack,
+ ClrGray, ClrSilver, g_psFontCm22, "4", 0, 0, 125, 25,
+ OnButtonPress),
+ RectangularButtonStruct(g_psPanels + 5, g_psPushButtonIndicators, 0,
+ &g_sKentec320x240x16_SSD2119, 130, 105, 50, 50,
+ (PB_STYLE_IMG | PB_STYLE_TEXT |
+ PB_STYLE_AUTO_REPEAT), 0, 0, 0, ClrSilver,
+ g_psFontCm22, "6", g_pui8Blue50x50,
+ g_pui8Blue50x50Press, 125, 25, OnButtonPress),
+};
+#define NUM_PUSH_BUTTONS (sizeof(g_psPushButtons) / \
+ sizeof(g_psPushButtons[0]))
+uint32_t g_ui32ButtonState;
+
+//*****************************************************************************
+//
+// The seventh panel, which contains a selection of radio buttons.
+//
+//*****************************************************************************
+tContainerWidget g_psRadioContainers[];
+tCanvasWidget g_psRadioButtonIndicators[] =
+{
+ CanvasStruct(g_psRadioContainers, g_psRadioButtonIndicators + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 95, 52, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psRadioContainers, g_psRadioButtonIndicators + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 95, 97, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psRadioContainers, 0, 0,
+ &g_sKentec320x240x16_SSD2119, 95, 142, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psRadioContainers + 1, g_psRadioButtonIndicators + 4, 0,
+ &g_sKentec320x240x16_SSD2119, 260, 52, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psRadioContainers + 1, g_psRadioButtonIndicators + 5, 0,
+ &g_sKentec320x240x16_SSD2119, 260, 97, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+ CanvasStruct(g_psRadioContainers + 1, 0, 0,
+ &g_sKentec320x240x16_SSD2119, 260, 142, 20, 20,
+ CANVAS_STYLE_IMG, 0, 0, 0, 0, 0, g_pui8LightOff, 0),
+};
+tRadioButtonWidget g_psRadioButtons1[] =
+{
+ RadioButtonStruct(g_psRadioContainers, g_psRadioButtons1 + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 40, 80, 45,
+ RB_STYLE_TEXT, 16, 0, ClrSilver, ClrSilver, g_psFontCm20,
+ "One", 0, OnRadioChange),
+ RadioButtonStruct(g_psRadioContainers, g_psRadioButtons1 + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 85, 80, 45,
+ RB_STYLE_TEXT, 16, 0, ClrSilver, ClrSilver, g_psFontCm20,
+ "Two", 0, OnRadioChange),
+ RadioButtonStruct(g_psRadioContainers, g_psRadioButtonIndicators, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 130, 80, 45,
+ RB_STYLE_TEXT, 24, 0, ClrSilver, ClrSilver, g_psFontCm20,
+ "Three", 0, OnRadioChange)
+};
+#define NUM_RADIO1_BUTTONS (sizeof(g_psRadioButtons1) / \
+ sizeof(g_psRadioButtons1[0]))
+tRadioButtonWidget g_psRadioButtons2[] =
+{
+ RadioButtonStruct(g_psRadioContainers + 1, g_psRadioButtons2 + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 175, 40, 80, 45,
+ RB_STYLE_IMG, 16, 0, ClrSilver, 0, 0, 0, g_ui8Logo,
+ OnRadioChange),
+ RadioButtonStruct(g_psRadioContainers + 1, g_psRadioButtons2 + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 175, 85, 80, 45,
+ RB_STYLE_IMG, 24, 0, ClrSilver, 0, 0, 0, g_ui8Logo,
+ OnRadioChange),
+ RadioButtonStruct(g_psRadioContainers + 1, g_psRadioButtonIndicators + 3,
+ 0, &g_sKentec320x240x16_SSD2119, 175, 130, 80, 45,
+ RB_STYLE_IMG, 24, 0, ClrSilver, 0, 0, 0, g_ui8Logo,
+ OnRadioChange)
+};
+#define NUM_RADIO2_BUTTONS (sizeof(g_psRadioButtons2) / \
+ sizeof(g_psRadioButtons2[0]))
+tContainerWidget g_psRadioContainers[] =
+{
+ ContainerStruct(g_psPanels + 6, g_psRadioContainers + 1, g_psRadioButtons1,
+ &g_sKentec320x240x16_SSD2119, 8, 24, 145, 154,
+ CTR_STYLE_OUTLINE | CTR_STYLE_TEXT, 0, ClrGray, ClrSilver,
+ g_psFontCm20, "Group One"),
+ ContainerStruct(g_psPanels + 6, 0, g_psRadioButtons2,
+ &g_sKentec320x240x16_SSD2119, 167, 24, 145, 154,
+ CTR_STYLE_OUTLINE | CTR_STYLE_TEXT, 0, ClrGray, ClrSilver,
+ g_psFontCm20, "Group Two")
+};
+
+//*****************************************************************************
+//
+// The eighth panel, which demonstrates the slider widget.
+//
+//*****************************************************************************
+Canvas(g_sSliderValueCanvas, g_psPanels + 7, 0, 0,
+ &g_sKentec320x240x16_SSD2119, 210, 30, 60, 40,
+ CANVAS_STYLE_TEXT | CANVAS_STYLE_TEXT_OPAQUE, ClrBlack, 0, ClrSilver,
+ g_psFontCm24, "50%",
+ 0, 0);
+
+tSliderWidget g_psSliders[] =
+{
+ SliderStruct(g_psPanels + 7, g_psSliders + 1, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 105, 220, 30, 0, 100, 25,
+ (SL_STYLE_FILL | SL_STYLE_BACKG_FILL | SL_STYLE_OUTLINE |
+ SL_STYLE_TEXT | SL_STYLE_BACKG_TEXT),
+ ClrGray, ClrBlack, ClrSilver, ClrWhite, ClrWhite,
+ g_psFontCm20, "25%", 0, 0, OnSliderChange),
+ SliderStruct(g_psPanels + 7, g_psSliders + 2, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 145, 220, 25, 0, 100, 25,
+ (SL_STYLE_FILL | SL_STYLE_BACKG_FILL | SL_STYLE_OUTLINE |
+ SL_STYLE_TEXT),
+ ClrWhite, ClrBlueViolet, ClrSilver, ClrBlack, 0,
+ g_psFontCm18, "Foreground Text Only", 0, 0, OnSliderChange),
+ SliderStruct(g_psPanels + 7, g_psSliders + 3, 0,
+ &g_sKentec320x240x16_SSD2119, 240, 70, 26, 110, 0, 100, 50,
+ (SL_STYLE_FILL | SL_STYLE_BACKG_FILL | SL_STYLE_VERTICAL |
+ SL_STYLE_OUTLINE | SL_STYLE_LOCKED), ClrDarkGreen,
+ ClrDarkRed, ClrSilver, 0, 0, 0, 0, 0, 0, 0),
+ SliderStruct(g_psPanels + 7, g_psSliders + 4, 0,
+ &g_sKentec320x240x16_SSD2119, 275, 30, 30, 150, 0, 100, 75,
+ (SL_STYLE_IMG | SL_STYLE_BACKG_IMG | SL_STYLE_VERTICAL |
+ SL_STYLE_OUTLINE), 0, ClrBlack, ClrSilver, 0, 0, 0,
+ 0, g_pui8GettingHotter28x148, g_pui8GettingHotter28x148Mono,
+ OnSliderChange),
+ SliderStruct(g_psPanels + 7, g_psSliders + 5, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 30, 195, 37, 0, 100, 50,
+ SL_STYLE_IMG | SL_STYLE_BACKG_IMG, 0, 0, 0, 0, 0, 0,
+ 0, g_pui8GreenSlider195x37, g_pui8RedSlider195x37,
+ OnSliderChange),
+ SliderStruct(g_psPanels + 7, &g_sSliderValueCanvas, 0,
+ &g_sKentec320x240x16_SSD2119, 10, 70, 220, 25, 0, 100, 50,
+ (SL_STYLE_FILL | SL_STYLE_BACKG_FILL | SL_STYLE_TEXT |
+ SL_STYLE_BACKG_TEXT | SL_STYLE_TEXT_OPAQUE |
+ SL_STYLE_BACKG_TEXT_OPAQUE),
+ ClrBlue, ClrYellow, ClrSilver, ClrYellow, ClrBlue,
+ g_psFontCm18, "Text in both areas", 0, 0,
+ OnSliderChange),
+};
+
+#define SLIDER_TEXT_VAL_INDEX 0
+#define SLIDER_LOCKED_INDEX 2
+#define SLIDER_CANVAS_VAL_INDEX 4
+
+#define NUM_SLIDERS (sizeof(g_psSliders) / sizeof(g_psSliders[0]))
+
+//*****************************************************************************
+//
+// An array of canvas widgets, one per panel. Each canvas is filled with
+// black, overwriting the contents of the previous panel.
+//
+//*****************************************************************************
+tCanvasWidget g_psPanels[] =
+{
+ CanvasStruct(0, 0, &g_sIntroduction, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, &g_sPrimitives, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, &g_sCanvas1, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, g_psCheckBoxes, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, &g_sContainer1, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, g_psPushButtons, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, g_psRadioContainers, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+ CanvasStruct(0, 0, g_psSliders, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, Y_OFFSET, (320 - (X_OFFSET*2)), 158,
+ CANVAS_STYLE_FILL, ClrBlack, 0, 0, 0, 0, 0, 0),
+};
+
+//*****************************************************************************
+//
+// The number of panels.
+//
+//*****************************************************************************
+#define NUM_PANELS (sizeof(g_psPanels) / sizeof(g_psPanels[0]))
+
+//*****************************************************************************
+//
+// The names for each of the panels, which is displayed at the bottom of the
+// screen.
+//
+//*****************************************************************************
+char *g_pcPanelNames[] =
+{
+ " Introduction ",
+ " Primitives ",
+ " Canvas ",
+ " Checkbox ",
+ " Container ",
+ " Push Buttons ",
+ " Radio Buttons ",
+ " Sliders ",
+ " S/W Update "
+};
+
+//*****************************************************************************
+//
+// The buttons and text across the bottom of the screen.
+//
+//*****************************************************************************
+RectangularButton(g_sPrevious, 0, 0, 0, &g_sKentec320x240x16_SSD2119,
+ X_OFFSET, 182, 50, 50,
+ PB_STYLE_FILL, ClrBlack, ClrBlack, 0, ClrSilver,
+ g_psFontCm20, "-", g_pui8Blue50x50, g_pui8Blue50x50Press,
+ 0, 0, OnPrevious);
+Canvas(g_sTitle, 0, 0, 0, &g_sKentec320x240x16_SSD2119,
+ (X_OFFSET+50), 182, 204, 50,
+ CANVAS_STYLE_TEXT | CANVAS_STYLE_TEXT_OPAQUE, 0, 0, ClrSilver,
+ g_psFontCm20, 0, 0, 0);
+RectangularButton(g_sNext, 0, 0, 0, &g_sKentec320x240x16_SSD2119,
+ (320-50-X_OFFSET), 182, 50, 50,
+ PB_STYLE_IMG | PB_STYLE_TEXT, ClrBlack, ClrBlack, 0,
+ ClrSilver, g_psFontCm20, "+", g_pui8Blue50x50,
+ g_pui8Blue50x50Press, 0, 0, OnNext);
+
+//*****************************************************************************
+//
+// The panel that is currently being displayed.
+//
+//*****************************************************************************
+uint32_t g_ui32Panel;
+
+//*****************************************************************************
+//
+// The position within the waveform of the click sound.
+//
+//*****************************************************************************
+uint32_t g_ui32AudioPos;
+
+//*****************************************************************************
+//
+// The step rate of the waveform for the click sound.
+//
+//*****************************************************************************
+uint32_t g_ui32AudioStep;
+
+//*****************************************************************************
+//
+// The amplitude of the waveformfor the click sound.
+//
+//*****************************************************************************
+uint32_t g_ui32Amp;
+
+//*****************************************************************************
+//
+// The step rate of the amplitude for the click sound.
+//
+//*****************************************************************************
+uint32_t g_ui32AmpStep;
+
+//*****************************************************************************
+//
+// Initialize the variables for generating the click sound waveform
+//
+//*****************************************************************************
+void
+PlayClick(void)
+{
+ //
+ // Start the new waveform at zero.
+ //
+ g_ui32AudioPos = 0;
+
+ //
+ // Set the fixed Audio step
+ //
+ g_ui32AudioStep = ((265 * 65536) / 64000) * 65536;
+
+ //
+ // Set the amplitude of the waveform generator to full volume.
+ //
+ g_ui32Amp = 2048;
+
+ //
+ // Set the decreasing step of amplitude.
+ //
+ g_ui32AmpStep = 1;
+}
+
+//*****************************************************************************
+//
+// Handles presses of the previous panel button.
+//
+//*****************************************************************************
+void
+OnPrevious(tWidget *psWidget)
+{
+ //
+ // There is nothing to be done if the first panel is already being
+ // displayed.
+ //
+ if(g_ui32Panel == 0)
+ {
+ return;
+ }
+
+ //
+ // Remove the current panel.
+ //
+ WidgetRemove((tWidget *)(g_psPanels + g_ui32Panel));
+
+ //
+ // Decrement the panel index.
+ //
+ g_ui32Panel--;
+
+ //
+ // Add and draw the new panel.
+ //
+ WidgetAdd(WIDGET_ROOT, (tWidget *)(g_psPanels + g_ui32Panel));
+ WidgetPaint((tWidget *)(g_psPanels + g_ui32Panel));
+
+ //
+ // Set the title of this panel.
+ //
+ CanvasTextSet(&g_sTitle, g_pcPanelNames[g_ui32Panel]);
+ WidgetPaint((tWidget *)&g_sTitle);
+
+ //
+ // See if this is the first panel.
+ //
+ if(g_ui32Panel == 0)
+ {
+ //
+ // Clear the previous button from the display since the first panel is
+ // being displayed.
+ //
+ PushButtonImageOff(&g_sPrevious);
+ PushButtonTextOff(&g_sPrevious);
+ PushButtonFillOn(&g_sPrevious);
+ WidgetPaint((tWidget *)&g_sPrevious);
+ }
+
+ //
+ // See if the previous panel was the last panel.
+ //
+ if(g_ui32Panel == (NUM_PANELS - 2))
+ {
+ //
+ // Display the next button.
+ //
+ PushButtonImageOn(&g_sNext);
+ PushButtonTextOn(&g_sNext);
+ PushButtonFillOff(&g_sNext);
+ WidgetPaint((tWidget *)&g_sNext);
+ }
+
+ //
+ // Play the key click sound.
+ //
+ PlayClick();
+}
+
+//*****************************************************************************
+//
+// Handles presses of the next panel button.
+//
+//*****************************************************************************
+void
+OnNext(tWidget *psWidget)
+{
+ //
+ // There is nothing to be done if the last panel is already being
+ // displayed.
+ //
+ if(g_ui32Panel == (NUM_PANELS - 1))
+ {
+ return;
+ }
+
+ //
+ // Remove the current panel.
+ //
+ WidgetRemove((tWidget *)(g_psPanels + g_ui32Panel));
+
+ //
+ // Increment the panel index.
+ //
+ g_ui32Panel++;
+
+ //
+ // Add and draw the new panel.
+ //
+ WidgetAdd(WIDGET_ROOT, (tWidget *)(g_psPanels + g_ui32Panel));
+ WidgetPaint((tWidget *)(g_psPanels + g_ui32Panel));
+
+ //
+ // Set the title of this panel.
+ //
+ CanvasTextSet(&g_sTitle, g_pcPanelNames[g_ui32Panel]);
+ WidgetPaint((tWidget *)&g_sTitle);
+
+ //
+ // See if the previous panel was the first panel.
+ //
+ if(g_ui32Panel == 1)
+ {
+ //
+ // Display the previous button.
+ //
+ PushButtonImageOn(&g_sPrevious);
+ PushButtonTextOn(&g_sPrevious);
+ PushButtonFillOff(&g_sPrevious);
+ WidgetPaint((tWidget *)&g_sPrevious);
+ }
+
+ //
+ // See if this is the last panel.
+ //
+ if(g_ui32Panel == (NUM_PANELS - 1))
+ {
+ //
+ // Clear the next button from the display since the last panel is being
+ // displayed.
+ //
+ PushButtonImageOff(&g_sNext);
+ PushButtonTextOff(&g_sNext);
+ PushButtonFillOn(&g_sNext);
+ WidgetPaint((tWidget *)&g_sNext);
+ }
+
+ //
+ // Play the key click sound.
+ //
+ PlayClick();
+}
+
+//*****************************************************************************
+//
+// Handles paint requests for the introduction canvas widget.
+//
+//*****************************************************************************
+void
+OnIntroPaint(tWidget *psWidget, tContext *psContext)
+{
+ //
+ // Display the introduction text in the canvas.
+ //
+ GrContextFontSet(psContext, g_psFontCm16);
+ GrContextForegroundSet(psContext, ClrSilver);
+ GrStringDraw(psContext, "This application demonstrates the ", -1,
+ 10, 30, 0);
+ GrStringDraw(psContext, "TivaWare Graphics Library.", -1,
+ 10, (30+16), 0);
+ GrStringDraw(psContext, "Each panel shows a different feature of", -1,
+ 10, (30+(16*2)), 0);
+ GrStringDraw(psContext, "the graphics library. Widgets on the panels", -1,
+ 10, (30+(16*3)), 0);
+ GrStringDraw(psContext, "are fully operational; pressing them will", -1,
+ 10, (30+(16*4)), 0);
+ GrStringDraw(psContext, "result in visible feedback of some kind.", -1,
+ 10, (30+(16*5)), 0);
+ GrStringDraw(psContext, "Press the + and - buttons at the bottom", -1,
+ 10, (30+(16*6)), 0);
+ GrStringDraw(psContext, "of the screen to move between the panels.", -1,
+ 10, (30+(16*7)), 0);
+}
+
+//*****************************************************************************
+//
+// Handles paint requests for the primitives canvas widget.
+//
+//*****************************************************************************
+void
+OnPrimitivePaint(tWidget *psWidget, tContext *psContext)
+{
+ uint32_t ui32Idx;
+ tRectangle sRect;
+
+ //
+ // Draw a vertical sweep of lines from red to green.
+ //
+ for(ui32Idx = 0; ui32Idx <= 8; ui32Idx++)
+ {
+ GrContextForegroundSet(psContext,
+ (((((10 - ui32Idx) * 255) / 10) << ClrRedShift) |
+ (((ui32Idx * 255) / 10) << ClrGreenShift)));
+ GrLineDraw(psContext, 115, 120, 5, 120 - (11 * ui32Idx));
+ }
+
+ //
+ // Draw a horizontal sweep of lines from green to blue.
+ //
+ for(ui32Idx = 1; ui32Idx <= 10; ui32Idx++)
+ {
+ GrContextForegroundSet(psContext,
+ (((((10 - ui32Idx) * 255) / 10) <<
+ ClrGreenShift) |
+ (((ui32Idx * 255) / 10) << ClrBlueShift)));
+ GrLineDraw(psContext, 115, 120, 5 + (ui32Idx * 11), 29);
+ }
+
+ //
+ // Draw a filled circle with an overlapping circle.
+ //
+ GrContextForegroundSet(psContext, ClrBrown);
+ GrCircleFill(psContext, 185, 69, 40);
+ GrContextForegroundSet(psContext, ClrSkyBlue);
+ GrCircleDraw(psContext, 205, 99, 30);
+
+ //
+ // Draw a filled rectangle with an overlapping rectangle.
+ //
+ GrContextForegroundSet(psContext, ClrSlateGray);
+ sRect.i16XMin = 20;
+ sRect.i16YMin = 100;
+ sRect.i16XMax = 75;
+ sRect.i16YMax = 160;
+ GrRectFill(psContext, &sRect);
+ GrContextForegroundSet(psContext, ClrSlateBlue);
+ sRect.i16XMin += 40;
+ sRect.i16YMin += 30;
+ sRect.i16XMax += 30;
+ sRect.i16YMax += 18;
+ GrRectDraw(psContext, &sRect);
+
+ //
+ // Draw a piece of text in fonts of increasing size.
+ //
+ GrContextForegroundSet(psContext, ClrSilver);
+ GrContextFontSet(psContext, g_psFontCm14);
+ GrStringDraw(psContext, "Strings", -1, 120, 104, 0);
+ GrContextFontSet(psContext, g_psFontCm18);
+ GrStringDraw(psContext, "Strings", -1, 140, 118, 0);
+ GrContextFontSet(psContext, g_psFontCm22);
+ GrStringDraw(psContext, "Strings", -1, 160, 136, 0);
+ GrContextFontSet(psContext, g_psFontCm24);
+ GrStringDraw(psContext, "Strings", -1, 180, 158, 0);
+
+ //
+ // Draw an image.
+ //
+ GrImageDraw(psContext, g_ui8Logo, 262, 80);
+}
+
+//*****************************************************************************
+//
+// Handles paint requests for the canvas demonstration widget.
+//
+//*****************************************************************************
+void
+OnCanvasPaint(tWidget *psWidget, tContext *psContext)
+{
+ uint32_t ui32Idx;
+
+ //
+ // Draw a set of radiating lines.
+ //
+ GrContextForegroundSet(psContext, ClrGoldenrod);
+ for(ui32Idx = 50; ui32Idx <= 180; ui32Idx += 10)
+ {
+ GrLineDraw(psContext, 210, ui32Idx, 310, 230 - ui32Idx);
+ }
+
+ //
+ // Indicate that the contents of this canvas were drawn by the application.
+ //
+ GrContextFontSet(psContext, g_psFontCm12);
+ GrStringDrawCentered(psContext, "App Drawn", -1, 260, 50, 1);
+}
+
+//*****************************************************************************
+//
+// Handles change notifications for the check box widgets.
+//
+//*****************************************************************************
+void
+OnCheckChange(tWidget *psWidget, uint32_t bSelected)
+{
+ uint32_t ui32Idx;
+
+ //
+ // Find the index of this check box.
+ //
+ for(ui32Idx = 0; ui32Idx < NUM_CHECK_BOXES; ui32Idx++)
+ {
+ if(psWidget == (tWidget *)(g_psCheckBoxes + ui32Idx))
+ {
+ break;
+ }
+ }
+
+ //
+ // Return if the check box could not be found.
+ //
+ if(ui32Idx == NUM_CHECK_BOXES)
+ {
+ return;
+ }
+
+ //
+ // Set the matching indicator based on the selected state of the check box.
+ //
+ CanvasImageSet(g_psCheckBoxIndicators + ui32Idx,
+ bSelected ? g_pui8LightOn : g_pui8LightOff);
+ WidgetPaint((tWidget *)(g_psCheckBoxIndicators + ui32Idx));
+
+ //
+ // Play the key click sound.
+ //
+ PlayClick();
+}
+
+//*****************************************************************************
+//
+// Handles press notifications for the push button widgets.
+//
+//*****************************************************************************
+void
+OnButtonPress(tWidget *psWidget)
+{
+ uint32_t ui32Idx;
+
+ //
+ // Find the index of this push button.
+ //
+ for(ui32Idx = 0; ui32Idx < NUM_PUSH_BUTTONS; ui32Idx++)
+ {
+ if(psWidget == (tWidget *)(g_psPushButtons + ui32Idx))
+ {
+ break;
+ }
+ }
+
+ //
+ // Return if the push button could not be found.
+ //
+ if(ui32Idx == NUM_PUSH_BUTTONS)
+ {
+ return;
+ }
+
+ //
+ // Toggle the state of this push button indicator.
+ //
+ g_ui32ButtonState ^= 1 << ui32Idx;
+
+ //
+ // Set the matching indicator based on the selected state of the check box.
+ //
+ CanvasImageSet(g_psPushButtonIndicators + ui32Idx,
+ (g_ui32ButtonState & (1 << ui32Idx)) ? g_pui8LightOn :
+ g_pui8LightOff);
+ WidgetPaint((tWidget *)(g_psPushButtonIndicators + ui32Idx));
+
+ //
+ // Play the key click sound.
+ //
+ PlayClick();
+}
+
+//*****************************************************************************
+//
+// Handles notifications from the slider controls.
+//
+//*****************************************************************************
+void
+OnSliderChange(tWidget *psWidget, int32_t i32Value)
+{
+ static char pcCanvasText[5];
+ static char pcSliderText[5];
+
+ //
+ // Is this the widget whose value we mirror in the canvas widget and the
+ // locked slider?
+ //
+ if(psWidget == (tWidget *)&g_psSliders[SLIDER_CANVAS_VAL_INDEX])
+ {
+ //
+ // Yes - update the canvas to show the slider value.
+ //
+ usprintf(pcCanvasText, "%3d%%", i32Value);
+ CanvasTextSet(&g_sSliderValueCanvas, pcCanvasText);
+ WidgetPaint((tWidget *)&g_sSliderValueCanvas);
+
+ //
+ // Also update the value of the locked slider to reflect this one.
+ //
+ SliderValueSet(&g_psSliders[SLIDER_LOCKED_INDEX], i32Value);
+ WidgetPaint((tWidget *)&g_psSliders[SLIDER_LOCKED_INDEX]);
+ }
+
+ if(psWidget == (tWidget *)&g_psSliders[SLIDER_TEXT_VAL_INDEX])
+ {
+ //
+ // Yes - update the canvas to show the slider value.
+ //
+ usprintf(pcSliderText, "%3d%%", i32Value);
+ SliderTextSet(&g_psSliders[SLIDER_TEXT_VAL_INDEX], pcSliderText);
+ WidgetPaint((tWidget *)&g_psSliders[SLIDER_TEXT_VAL_INDEX]);
+ }
+}
+
+//*****************************************************************************
+//
+// Handles change notifications for the radio button widgets.
+//
+//*****************************************************************************
+void
+OnRadioChange(tWidget *psWidget, uint32_t bSelected)
+{
+ uint32_t ui32Idx;
+
+ //
+ // Find the index of this radio button in the first group.
+ //
+ for(ui32Idx = 0; ui32Idx < NUM_RADIO1_BUTTONS; ui32Idx++)
+ {
+ if(psWidget == (tWidget *)(g_psRadioButtons1 + ui32Idx))
+ {
+ break;
+ }
+ }
+
+ //
+ // See if the radio button was found.
+ //
+ if(ui32Idx == NUM_RADIO1_BUTTONS)
+ {
+ //
+ // Find the index of this radio button in the second group.
+ //
+ for(ui32Idx = 0; ui32Idx < NUM_RADIO2_BUTTONS; ui32Idx++)
+ {
+ if(psWidget == (tWidget *)(g_psRadioButtons2 + ui32Idx))
+ {
+ break;
+ }
+ }
+
+ //
+ // Return if the radio button could not be found.
+ //
+ if(ui32Idx == NUM_RADIO2_BUTTONS)
+ {
+ return;
+ }
+
+ //
+ // Sind the radio button is in the second group, offset the index to
+ // the indicators associated with the second group.
+ //
+ ui32Idx += NUM_RADIO1_BUTTONS;
+ }
+
+ //
+ // Set the matching indicator based on the selected state of the radio
+ // button.
+ //
+ CanvasImageSet(g_psRadioButtonIndicators + ui32Idx,
+ bSelected ? g_pui8LightOn : g_pui8LightOff);
+ WidgetPaint((tWidget *)(g_psRadioButtonIndicators + ui32Idx));
+
+ //
+ // Play the key click sound.
+ //
+ PlayClick();
+}
+
+//*****************************************************************************
+//
+// The callback function that is called by the sound driver to indicate that
+// half of the sound buffer has been played.
+//
+//*****************************************************************************
+void
+SoundCallback(uint32_t ui32Half)
+{
+ //
+ // See which half of the sound buffer has been played.
+ //
+ if(ui32Half == 0)
+ {
+ //
+ // The first half of the sound buffer needs to be filled.
+ //
+ HWREGBITW(&g_ui32Flags, FLAG_PING) = 1;
+ }
+ else
+ {
+ //
+ // The second half of the sound buffer needs to be filled.
+ //
+ HWREGBITW(&g_ui32Flags, FLAG_PONG) = 1;
+ }
+}
+
+//*****************************************************************************
+//
+// Generates an additional section of the audio output
+//
+//*****************************************************************************
+void
+GenerateAudio(int16_t *pi16Buffer, uint32_t ui32Count)
+{
+ int32_t i32Val;
+
+ //
+ // if g_ui32Amp is down to 0, fill the buffer with silence.
+ //
+ if(g_ui32Amp == 0)
+ {
+ //
+ // Fill the buffer with silence.
+ //
+ while(ui32Count--)
+ {
+ *pi16Buffer++ = 0;
+ }
+ return;
+ }
+
+ //
+ // Loop through the samples to be generated.
+ //
+ while(ui32Count--)
+ {
+ //
+ // Compute the value of the waveform.
+ //
+ i32Val = sine(g_ui32AudioPos + (sine(g_ui32AudioPos * 3) * 10922));
+
+ //
+ // Increment the position of the waveform.
+ //
+ g_ui32AudioPos += g_ui32AudioStep;
+
+ //
+ // Scale the waveform value by the volume.
+ //
+ i32Val = (i32Val * g_ui32Amp) / 1024;
+
+ //
+ // Decrement the waveform amplitude by the step.
+ //
+ g_ui32Amp -= g_ui32AmpStep;
+
+ //
+ // Cilp the waveform to min/max if required.
+ //
+ i32Val /= 2;
+ if(i32Val > 32767)
+ {
+ i32Val = 32767;
+ }
+ if(i32Val < -32768)
+ {
+ i32Val = -32768;
+ }
+
+ //
+ // Add the new waveform value to the sample buffer.
+ //
+ *pi16Buffer++ = (int16_t)i32Val;
+ }
+}
+//*****************************************************************************
+//
+// A simple demonstration of the features of the TivaWare Graphics Library.
+//
+//*****************************************************************************
+int
+main(void)
+{
+ tContext sContext;
+ uint32_t ui32SysClock;
+
+ //
+ // Run from the PLL at 120 MHz.
+ //
+ ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
+ SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
+ SYSCTL_CFG_VCO_480), 120000000);
+
+ //
+ // Configure the device pins.
+ //
+ PinoutSet();
+
+ //
+ // Initialize the display driver.
+ //
+ Kentec320x240x16_SSD2119Init(ui32SysClock);
+
+ //
+ // Initialize the graphics context.
+ //
+ GrContextInit(&sContext, &g_sKentec320x240x16_SSD2119);
+
+ //
+ // Draw the application frame.
+ //
+ FrameDraw(&sContext, "grlib-demo");
+
+ //
+ // Configure and enable uDMA
+ //
+ ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);
+ SysCtlDelay(10);
+ ROM_uDMAControlBaseSet(&psDMAControlTable[0]);
+ ROM_uDMAEnable();
+
+ //
+ // Initialize the sound driver.
+ //
+ SoundInit(ui32SysClock);
+ SoundVolumeSet(128);
+ SoundStart(g_pi16AudioBuffer, AUDIO_SIZE, 64000, SoundCallback);
+
+ //
+ // Initialize the touch screen driver and have it route its messages to the
+ // widget tree.
+ //
+ TouchScreenInit(ui32SysClock);
+ TouchScreenCallbackSet(WidgetPointerMessage);
+
+ //
+ // Add the title block and the previous and next buttons to the widget
+ // tree.
+ //
+ WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sPrevious);
+ WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sTitle);
+ WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sNext);
+
+ //
+ // Add the first panel to the widget tree.
+ //
+ g_ui32Panel = 0;
+ WidgetAdd(WIDGET_ROOT, (tWidget *)g_psPanels);
+ CanvasTextSet(&g_sTitle, g_pcPanelNames[0]);
+
+ //
+ // Issue the initial paint request to the widgets.
+ //
+ WidgetPaint(WIDGET_ROOT);
+
+ //
+ // Loop forever handling widget messages.
+ //
+ while(1)
+ {
+ //
+ // Process any messages in the widget message queue.
+ //
+ WidgetMessageQueueProcess();
+
+ //
+ // See if the first half of the sound buffer needs to be filled.
+ //
+ if(HWREGBITW(&g_ui32Flags, FLAG_PING) == 1)
+ {
+ //
+ // generate new audio into the first half of the sound buffer.
+ //
+ GenerateAudio(g_pi16AudioBuffer, AUDIO_SIZE / 2);
+
+ //
+ // Clear the flag for the first half of the sound buffer.
+ //
+ HWREGBITW(&g_ui32Flags, FLAG_PING) = 0;
+ }
+
+ //
+ // See if the second half of the sound buffer needs to be filled.
+ //
+ if(HWREGBITW(&g_ui32Flags, FLAG_PONG) == 1)
+ {
+ //
+ // generate new audio into the second half of the sound buffer.
+ //
+ GenerateAudio(g_pi16AudioBuffer + (AUDIO_SIZE / 2),
+ AUDIO_SIZE / 2);
+
+ //
+ // Clear the flag for the second half of the sound buffer.
+ //
+ HWREGBITW(&g_ui32Flags, FLAG_PONG) = 0;
+ }
+ }
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewd b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewd
new file mode 100644
index 0000000..484e41a
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewd
@@ -0,0 +1,614 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+ <fileVersion>1</fileVersion>
+ <configuration>
+ <name>Debug</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>15</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCVariant</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MemFile</name>
+ <state>$TOOLKIT_DIR$\CONFIG\debugger\TexasInstruments\tm4c129xnczad</state>
+ </option>
+ <option>
+ <name>RunToEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RunToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>CExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCDDFArgumentProducer</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDownloadSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDownloadVerifyAll</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCProductVersion</name>
+ <state>5.11.0.50579</state>
+ </option>
+ <option>
+ <name>OCDynDriverList</name>
+ <state>LMIFTDI_ID</state>
+ </option>
+ <option>
+ <name>OCLastSavedByProductVersion</name>
+ <state>5.11.0.50579</state>
+ </option>
+ <option>
+ <name>OCDownloadAttachToProgram</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FlashLoaders</name>
+ <state>,,,,(default),</state>
+ </option>
+ <option>
+ <name>UseFlashLoader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CLowLevel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCBE8Slave</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ARMSIM_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OCSimDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCSimEnablePSP</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCSimPspOverrideConfig</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCSimPspConfigFile</name>
+ <state></state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ANGEL_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCAngelHeartbeat</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CAngelCommunication</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CAngelCommBaud</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CAngelCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ANGELTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoAngelLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AngelLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>GDBSERVER_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARROM_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CRomLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomLogFileEditB</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CRomCommunication</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRomCommBaud</name>
+ <version>0</version>
+ <state>7</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>JLINK_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>9</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>JLinkSpeed</name>
+ <state>32</state>
+ </option>
+ <option>
+ <name>CCJLinkDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>JLinkInitialSpeed</name>
+ <state>32</state>
+ </option>
+ <option>
+ <name>CCDoJlinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkIRLength</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>CCJLinkInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCJLinkAttachSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCJLinkResetList</name>
+ <version>0</version>
+ <state>5</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>MACRAIGOR_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>jtag</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>EmuSpeed</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>DoEmuMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>EmuMultiTarget</name>
+ <state>0@ARM7TDMI</state>
+ </option>
+ <option>
+ <name>EmuHWReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CEmuCommBaud</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>CEmuCommPort</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>jtago</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>UnusedAddr</name>
+ <state>0x00800000</state>
+ </option>
+ <option>
+ <name>CCMacraigorHWResetDelay</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>RDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CRDIDriverDll</name>
+ <state>Browse to your RDI driver</state>
+ </option>
+ <option>
+ <name>CRDILogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CRDILogFileEdit</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCRDIHWReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDIUseETM</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>THIRDPARTY_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CThirdPartyDriverDll</name>
+ <state>Browse to your third-party driver</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileEditB</name>
+ <state>$TOOLKIT_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+</project>
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewp b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewp
new file mode 100644
index 0000000..ac0accb
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ewp
@@ -0,0 +1,813 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+ <fileVersion>1</fileVersion>
+ <configuration>
+ <name>Debug</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>14</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>ExePath</name>
+ <state>ewarm\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>ewarm\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>ewarm\List</state>
+ </option>
+ <option>
+ <name>Variant</name>
+ <version>19</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input variant</name>
+ <version>1</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>
+ </option>
+ <option>
+ <name>Output variant</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>No specifier a, A, no specifier n, no float nor long long, no flags.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FPU</name>
+ <version>2</version>
+ <state>5</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>RTConfigPath</name>
+ <state>$TOOLKIT_DIR$\INC\DLib_Config_Normal.h</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>5.11.0.50579</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>5.11.0.50579</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>TM4C129XNCZAD TexasInstruments TM4C129XNCZAD</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>19</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCDefines</name>
+ <state>ewarm</state>
+ <state>PART_TM4C129XNCZAD</state>
+ <state>TARGET_IS_TM4C129_RA0</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state>Pa050</state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>1111111</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLangSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraRules</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\..</state>
+ <state>$PROJ_DIR$\..\..\..\..</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IInterwork2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state>ewarm</state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>AMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AStdIncludes</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state>$PROJ_DIR$\..</state>
+ <state>$PROJ_DIR$\..\..\..\..</state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>grlib_demo.bin</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>5</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>grlib_demo.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$\grlib_demo.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>IlinkNXPLPCChecksum</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlgo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ </configuration>
+ <group>
+ <name>Libraries</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\driverlib\ewarm\Exe\driverlib.a</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\grlib\ewarm\Exe\grlib.a</name>
+ </file>
+ </group>
+ <group>
+ <name>Source</name>
+ <file>
+ <name>$PROJ_DIR$\..\drivers\frame.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\grlib_demo.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\images.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\drivers\kentec320x240x16_ssd2119.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\drivers\pinout.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\utils\sine.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\drivers\sound.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\startup_ewarm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\drivers\touch.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\utils\ustdlib.c</name>
+ </file>
+ </group>
+</project>
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.icf b/boards/dk-tm4c129x/grlib_demo/grlib_demo.icf
new file mode 100644
index 0000000..bbee1cb
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.icf
@@ -0,0 +1,78 @@
+//*****************************************************************************
+//
+// grlib_demo.icf - Linker configuration file for grlib_demo.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+//
+// Define a memory region that covers the entire 4 GB addressible space of the
+// processor.
+//
+define memory mem with size = 4G;
+
+//
+// Define a region for the on-chip flash.
+//
+define region FLASH = mem:[from 0x00000000 to 0x000fffff];
+
+//
+// Define a region for the on-chip SRAM.
+//
+define region SRAM = mem:[from 0x20000000 to 0x2003ffff];
+
+//
+// Define a block for the heap. The size should be set to something other
+// than zero if things in the C library that require the heap are used.
+//
+define block HEAP with alignment = 8, size = 0x00000000 { };
+
+//
+// Indicate that the read/write values should be initialized by copying from
+// flash.
+//
+initialize by copy { readwrite };
+
+//
+// Indicate that the noinit values should be left alone. This includes the
+// stack, which if initialized will destroy the return address from the
+// initialization code, causing the processor to branch to zero and fault.
+//
+do not initialize { section .noinit };
+
+//
+// Place the interrupt vectors at the start of flash.
+//
+place at start of FLASH { readonly section .intvec };
+
+//
+// Place the remainder of the read-only items into flash.
+//
+place in FLASH { readonly };
+
+//
+// Place the RAM vector table at the start of SRAM.
+//
+place at start of SRAM { section VTABLE };
+
+//
+// Place all read/write items into SRAM.
+//
+place in SRAM { readwrite, block HEAP };
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.ld b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ld
new file mode 100644
index 0000000..33033f0
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.ld
@@ -0,0 +1,57 @@
+/******************************************************************************
+ *
+ * grlib_demo.ld - Linker configuration file for grlib_demo.
+ *
+ * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+ * Software License Agreement
+ *
+ * Texas Instruments (TI) is supplying this software for use solely and
+ * exclusively on TI's microcontroller products. The software is owned by
+ * TI and/or its suppliers, and is protected under applicable copyright
+ * laws. You may not combine this software with "viral" open-source
+ * software in order to form a larger program.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+ * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+ * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+ * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ * This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+ *
+ *****************************************************************************/
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000
+ SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000
+}
+
+SECTIONS
+{
+ .text :
+ {
+ _text = .;
+ KEEP(*(.isr_vector))
+ *(.text*)
+ *(.rodata*)
+ _etext = .;
+ } > FLASH
+
+ .data : AT(ADDR(.text) + SIZEOF(.text))
+ {
+ _data = .;
+ *(vtable)
+ *(.data*)
+ _edata = .;
+ } > SRAM
+
+ .bss :
+ {
+ _bss = .;
+ *(.bss*)
+ *(COMMON)
+ _ebss = .;
+ } > SRAM
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.sct b/boards/dk-tm4c129x/grlib_demo/grlib_demo.sct
new file mode 100644
index 0000000..7cd69f3
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.sct
@@ -0,0 +1,47 @@
+;******************************************************************************
+;
+; grlib_demo.sct - Linker configuration file for grlib_demo.
+;
+; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+; Software License Agreement
+;
+; Texas Instruments (TI) is supplying this software for use solely and
+; exclusively on TI's microcontroller products. The software is owned by
+; TI and/or its suppliers, and is protected under applicable copyright
+; laws. You may not combine this software with "viral" open-source
+; software in order to form a larger program.
+;
+; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+; DAMAGES, FOR ANY REASON WHATSOEVER.
+;
+; This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+;
+;******************************************************************************
+
+LR_IROM 0x00000000 0x00100000
+{
+ ;
+ ; Specify the Execution Address of the code and the size.
+ ;
+ ER_IROM 0x00000000 0x00100000
+ {
+ *.o (RESET, +First)
+ * (InRoot$$Sections, +RO)
+ }
+
+ ;
+ ; Specify the Execution Address of the data area.
+ ;
+ RW_IRAM 0x20000000 0x00040000
+ {
+ ;
+ ; Uncomment the following line in order to use IntRegister().
+ ;
+ ;* (vtable, +First)
+ * (+RW, +ZI)
+ }
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvopt b/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvopt
new file mode 100644
index 0000000..42fd806
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvopt
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
+
+ <SchemaVersion>1.0</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Extensions>
+ <cExt>*.c</cExt>
+ <aExt>*.s*; *.src; *.a*</aExt>
+ <oExt>*.obj</oExt>
+ <lExt>*.lib</lExt>
+ <tExt>*.txt; *.h; *.inc</tExt>
+ <pExt>*.plm</pExt>
+ <CppX>*.cpp</CppX>
+ </Extensions>
+
+ <DaveTm>
+ <dwLowDateTime>0</dwLowDateTime>
+ <dwHighDateTime>0</dwHighDateTime>
+ </DaveTm>
+
+ <Target>
+ <TargetName>grlib_demo</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>25000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>1</RunSim>
+ <RunTarget>0</RunTarget>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath>.\rvmdk\</ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>1</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>255</CpuCode>
+ <Books>
+ <Book>
+ <Number>0</Number>
+ <Title>Data Sheet</Title>
+ <Path>DATASHTS\Luminary\TM4C129XNCZAD.PDF</Path>
+ </Book>
+ </Books>
+ <DllOpt>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments>-MPU</SimDllArguments>
+ <SimDlgDllName>DCM.DLL</SimDlgDllName>
+ <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments>-MPU</TargetDllArguments>
+ <TargetDlgDllName>TCM.DLL</TargetDlgDllName>
+ <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+ </DllOpt>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>0</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>0</tRfunc>
+ <tRbox>1</tRbox>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <nTsel>4</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>BIN\lmidk-agdi.dll</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>lmidk-agdi</Key>
+ <Name>-O4614 -S1 -FO29</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>DLGTARM</Key>
+ <Name></Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ARMDBGFLAGS</Key>
+ <Name></Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>0</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>1</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>0</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ </TargetOption>
+ </Target>
+
+ <Group>
+ <GroupName>Source</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>1</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\drivers\frame.c</PathWithFileName>
+ <FilenameWithoutPath>frame.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>2</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>.\grlib_demo.c</PathWithFileName>
+ <FilenameWithoutPath>grlib_demo.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>3</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>.\images.c</PathWithFileName>
+ <FilenameWithoutPath>images.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>4</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\drivers\kentec320x240x16_ssd2119.c</PathWithFileName>
+ <FilenameWithoutPath>kentec320x240x16_ssd2119.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>5</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\drivers\pinout.c</PathWithFileName>
+ <FilenameWithoutPath>pinout.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>6</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\utils\sine.c</PathWithFileName>
+ <FilenameWithoutPath>sine.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>7</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\drivers\sound.c</PathWithFileName>
+ <FilenameWithoutPath>sound.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>8</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>.\startup_rvmdk.S</PathWithFileName>
+ <FilenameWithoutPath>startup_rvmdk.S</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>9</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\drivers\touch.c</PathWithFileName>
+ <FilenameWithoutPath>touch.c</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>10</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\utils\ustdlib.c</PathWithFileName>
+ <FilenameWithoutPath>ustdlib.c</FilenameWithoutPath>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Libraries</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>11</FileNumber>
+ <FileType>4</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\driverlib\rvmdk\driverlib.lib</PathWithFileName>
+ <FilenameWithoutPath>driverlib.lib</FilenameWithoutPath>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>12</FileNumber>
+ <FileType>4</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\grlib\rvmdk\grlib.lib</PathWithFileName>
+ <FilenameWithoutPath>grlib.lib</FilenameWithoutPath>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Documentation</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>13</FileNumber>
+ <FileType>5</FileType>
+ <tvExp>0</tvExp>
+ <Focus>1</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>1</TopLine>
+ <CurrentLine>1</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>.\readme.txt</PathWithFileName>
+ <FilenameWithoutPath>readme.txt</FilenameWithoutPath>
+ <WindowPosition>
+ <length>44</length>
+ <flags>0</flags>
+ <showCmd>1</showCmd>
+ <MinPosition>
+ <xPos>-1</xPos>
+ <yPos>-1</yPos>
+ </MinPosition>
+ <MaxPosition>
+ <xPos>-1</xPos>
+ <yPos>-1</yPos>
+ </MaxPosition>
+ <NormalPosition>
+ <Top>0</Top>
+ <Left>0</Left>
+ <Right>729</Right>
+ <Bottom>300</Bottom>
+ </NormalPosition>
+ </WindowPosition>
+ </File>
+ </Group>
+
+ <MDIGroups>
+ <Orientation>1</Orientation>
+ <ActiveMDIGroup>0</ActiveMDIGroup>
+ <MDIGroup>
+ <Size>100</Size>
+ <ActiveTab>0</ActiveTab>
+ <Documents>
+ <Doc>
+ <Name>.\readme.txt</Name>
+ <ColumnNumber>0</ColumnNumber>
+ <TopLine>1</TopLine>
+ <CurrentLine>1</CurrentLine>
+ </Doc>
+ </Documents>
+ </MDIGroup>
+ </MDIGroups>
+
+</ProjectOpt>
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvproj b/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvproj
new file mode 100644
index 0000000..c3a49a7
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo.uvproj
@@ -0,0 +1,469 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
+
+ <SchemaVersion>1.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName>grlib_demo</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>TM4C129XNCZAD</Device>
+ <Vendor>Texas Instruments</Vendor>
+ <Cpu>IRAM(0x20000000-0x2003FFFF) IROM(0-0xFFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile>"STARTUP\Luminary\Startup.s" ("Luminary Startup Code")</StartupFile>
+ <FlashDriverDll>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0LM4F_1024 -FS00 -FL0100000)</FlashDriverDll>
+ <DeviceId>5919</DeviceId>
+ <RegisterFile>LM4Fxxxx.H</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath>Luminary\</RegisterFilePath>
+ <DBRegisterFilePath>Luminary\</DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\rvmdk\</OutputDirectory>
+ <OutputName>grlib_demo</OutputName>
+ <CreateExecutable>1</CreateExecutable>
+ <CreateLib>0</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\rvmdk\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>1</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name>fromelf --bin --output .\rvmdk\grlib_demo.bin .\rvmdk\grlib_demo.axf</UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments>-MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments>-MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ <Simulator>
+ <UseSimulator>0</UseSimulator>
+ <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
+ <RunToMain>1</RunToMain>
+ <RestoreBreakpoints>1</RestoreBreakpoints>
+ <RestoreWatchpoints>1</RestoreWatchpoints>
+ <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
+ <RestoreFunctions>1</RestoreFunctions>
+ <RestoreToolbox>1</RestoreToolbox>
+ <LimitSpeedToRealTime>0</LimitSpeedToRealTime>
+ </Simulator>
+ <Target>
+ <UseTarget>1</UseTarget>
+ <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
+ <RunToMain>0</RunToMain>
+ <RestoreBreakpoints>1</RestoreBreakpoints>
+ <RestoreWatchpoints>1</RestoreWatchpoints>
+ <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
+ <RestoreFunctions>0</RestoreFunctions>
+ <RestoreToolbox>1</RestoreToolbox>
+ </Target>
+ <RunDebugAfterBuild>0</RunDebugAfterBuild>
+ <TargetSelection>4</TargetSelection>
+ <SimDlls>
+ <CpuDll></CpuDll>
+ <CpuDllArguments></CpuDllArguments>
+ <PeripheralDll></PeripheralDll>
+ <PeripheralDllArguments></PeripheralDllArguments>
+ <InitializationFile></InitializationFile>
+ </SimDlls>
+ <TargetDlls>
+ <CpuDll></CpuDll>
+ <CpuDllArguments></CpuDllArguments>
+ <PeripheralDll></PeripheralDll>
+ <PeripheralDllArguments></PeripheralDllArguments>
+ <InitializationFile></InitializationFile>
+ <Driver>BIN\lmidk-agdi.dll</Driver>
+ </TargetDlls>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4099</DriverSelection>
+ </Flash1>
+ <Flash2>BIN\lmidk-agdi.dll</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>0</AdsALst>
+ <AdsACrf>0</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M4"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <hadIRAM2>0</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>1</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <RoSelD>3</RoSelD>
+ <RwSelD>3</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x40000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x100000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x100000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>0</interw>
+ <Optim>3</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <VariousControls>
+ <MiscControls>--c99</MiscControls>
+ <Define>rvmdk PART_TM4C129XNCZAD TARGET_IS_TM4C129_RA0</Define>
+ <Undefine></Undefine>
+ <IncludePath>..;..\..\..\..;</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange>0x00000000</TextAddressRange>
+ <DataAddressRange>0x20000000</DataAddressRange>
+ <ScatterFile>grlib_demo.sct</ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc>--entry Reset_Handler</Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Source</GroupName>
+ <Files>
+ <File>
+ <FileName>frame.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\drivers\frame.c</FilePath>
+ </File>
+ <File>
+ <FileName>grlib_demo.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\grlib_demo.c</FilePath>
+ </File>
+ <File>
+ <FileName>images.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\images.c</FilePath>
+ </File>
+ <File>
+ <FileName>kentec320x240x16_ssd2119.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\drivers\kentec320x240x16_ssd2119.c</FilePath>
+ </File>
+ <File>
+ <FileName>pinout.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\drivers\pinout.c</FilePath>
+ </File>
+ <File>
+ <FileName>sine.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\utils\sine.c</FilePath>
+ </File>
+ <File>
+ <FileName>sound.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\drivers\sound.c</FilePath>
+ </File>
+ <File>
+ <FileName>startup_rvmdk.S</FileName>
+ <FileType>2</FileType>
+ <FilePath>.\startup_rvmdk.S</FilePath>
+ </File>
+ <File>
+ <FileName>touch.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\drivers\touch.c</FilePath>
+ </File>
+ <File>
+ <FileName>ustdlib.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\..\..\utils\ustdlib.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Libraries</GroupName>
+ <Files>
+ <File>
+ <FileName>driverlib.lib</FileName>
+ <FileType>4</FileType>
+ <FilePath>..\..\..\..\driverlib\rvmdk\driverlib.lib</FilePath>
+ </File>
+ <File>
+ <FileName>grlib.lib</FileName>
+ <FileType>4</FileType>
+ <FilePath>..\..\..\..\grlib\rvmdk\grlib.lib</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Documentation</GroupName>
+ <Files>
+ <File>
+ <FileName>readme.txt</FileName>
+ <FileType>5</FileType>
+ <FilePath>.\readme.txt</FilePath>
+ </File>
+ </Files>
+ </Group>
+ </Groups>
+ </Target>
+ </Targets>
+
+</Project>
diff --git a/boards/dk-tm4c129x/grlib_demo/grlib_demo_ccs.cmd b/boards/dk-tm4c129x/grlib_demo/grlib_demo_ccs.cmd
new file mode 100644
index 0000000..137604d
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/grlib_demo_ccs.cmd
@@ -0,0 +1,70 @@
+/******************************************************************************
+ *
+ * grlib_demo_ccs.cmd - CCS linker configuration file for grlib_demo.
+ *
+ * Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+ * Software License Agreement
+ *
+ * Texas Instruments (TI) is supplying this software for use solely and
+ * exclusively on TI's microcontroller products. The software is owned by
+ * TI and/or its suppliers, and is protected under applicable copyright
+ * laws. You may not combine this software with "viral" open-source
+ * software in order to form a larger program.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+ * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+ * NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+ * CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, FOR ANY REASON WHATSOEVER.
+ *
+ * This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+ *
+ *****************************************************************************/
+
+--retain=g_pfnVectors
+
+/* The following command line options are set as part of the CCS project. */
+/* If you are building using the command line, or for some reason want to */
+/* define them here, you can uncomment and modify these lines as needed. */
+/* If you are using CCS for building, it is probably better to make any such */
+/* modifications in your CCS project and leave this file alone. */
+/* */
+/* --heap_size=0 */
+/* --stack_size=256 */
+/* --library=rtsv7M3_T_le_eabi.lib */
+
+/* The starting address of the application. Normally the interrupt vectors */
+/* must be located at the beginning of the application. */
+#define APP_BASE 0x00000000
+#define RAM_BASE 0x20000000
+
+/* System memory map */
+
+MEMORY
+{
+ /* Application stored in and executes from internal flash */
+ FLASH (RX) : origin = APP_BASE, length = 0x00100000
+ /* Application uses internal RAM for data */
+ SRAM (RWX) : origin = 0x20000000, length = 0x00040000
+}
+
+/* Section allocation in memory */
+
+SECTIONS
+{
+ .intvecs: > APP_BASE
+ .text : > FLASH
+ .const : > FLASH
+ .cinit : > FLASH
+ .pinit : > FLASH
+ .init_array : > FLASH
+
+ .vtable : > RAM_BASE
+ .data : > SRAM
+ .bss : > SRAM
+ .sysmem : > SRAM
+ .stack : > SRAM
+}
+
+__STACK_TOP = __stack + 1024;
diff --git a/boards/dk-tm4c129x/grlib_demo/images.c b/boards/dk-tm4c129x/grlib_demo/images.c
new file mode 100644
index 0000000..b291f67
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/images.c
@@ -0,0 +1,1131 @@
+//*****************************************************************************
+//
+// images.c - Data for the images used by the application.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "grlib/grlib.h"
+
+//*****************************************************************************
+//
+// The image of the TI symbol.
+//
+//*****************************************************************************
+const uint8_t g_ui8Logo[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 50, 0,
+ 50, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x13,
+ 0x07, 0x05, 0x2a,
+ 0x0a, 0x08, 0x41,
+ 0x0d, 0x0a, 0x55,
+ 0x10, 0x0c, 0x68,
+ 0x12, 0x0e, 0x74,
+ 0x15, 0x10, 0x88,
+ 0x17, 0x12, 0x97,
+ 0x19, 0x14, 0xa7,
+ 0x1c, 0x16, 0xb8,
+ 0x1e, 0x18, 0xc8,
+ 0x20, 0x19, 0xd6,
+ 0x22, 0x1b, 0xe1,
+ 0x24, 0x1c, 0xe9,
+ 0x24, 0x1c, 0xed,
+
+ 0xf0, 0x07, 0x07, 0x07, 0x02, 0x04, 0xba, 0xaa, 0xaa, 0x18, 0xaa, 0xac,
+ 0x30, 0x07, 0x07, 0x05, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x40, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0xc7, 0x3f, 0x3d, 0x48, 0x78, 0x50, 0x3f, 0x3f, 0x3a,
+ 0x1c, 0xbf, 0xff, 0x70, 0x3f, 0x3f, 0x39, 0x01, 0xdf, 0xe0, 0x12, 0x3f,
+ 0x3f, 0x00, 0x04, 0xff, 0xff, 0x20, 0xe1, 0x3f, 0x3f, 0x39, 0x03, 0x97,
+ 0x87, 0x10, 0x3f, 0xf8, 0x3f, 0x39, 0x5f, 0x3f, 0x3b, 0x96, 0x82, 0x06,
+ 0x00, 0x87, 0x84, 0x04, 0x87, 0x77, 0x77, 0x78, 0x30, 0xc0, 0x3f, 0x3b,
+ 0xff, 0xd1, 0x0d, 0xff, 0xf5, 0x09, 0xb0, 0xaa, 0x60, 0x3f, 0x3c, 0xa0,
+ 0x2f, 0xff, 0xf2, 0x60, 0x0c, 0x3f, 0x3f, 0xff, 0xff, 0x80, 0x4f, 0xff,
+ 0x30, 0xc0, 0x1e, 0x3f, 0x3f, 0xff, 0xff, 0x50, 0x7f, 0x18, 0xff, 0x90,
+ 0x4f, 0x3f, 0x3f, 0xfd, 0xef, 0x20, 0x06, 0xaf, 0xff, 0x70, 0x7f, 0xdd,
+ 0x3f, 0x3e, 0xb2, 0x01, 0x12, 0x01, 0xcf, 0xff, 0x50, 0x12, 0x07, 0x3f,
+ 0x80, 0x3e, 0x80, 0x00, 0x03, 0xff, 0xff, 0x30, 0x00, 0x5a, 0x08, 0x39,
+ 0x70, 0x3f, 0x3a, 0x60, 0x01, 0xfc, 0x10, 0x10, 0x00, 0x1b, 0x39, 0xb0,
+ 0x00, 0x00, 0x8c, 0x02, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0x3a, 0x40,
+ 0x01, 0x00, 0x07, 0xff, 0xfa, 0x00, 0x00, 0x2f, 0x39, 0x0c, 0xf6, 0x00,
+ 0x00, 0x7f, 0x6a, 0x4a, 0xff, 0xfd, 0x00, 0x20, 0x00, 0x0a, 0xff, 0xf7,
+ 0x00, 0x00, 0x4f, 0x84, 0x39, 0xfe, 0x40, 0x00, 0x29, 0x3f, 0xfe, 0xab,
+ 0x01, 0xa0, 0x1c, 0xff, 0xf4, 0x08, 0xca, 0xcf, 0x72, 0x08, 0xf7, 0x00,
+ 0x02, 0xdf, 0x37, 0xff, 0xb0, 0x2f, 0x10, 0xff, 0xf2, 0x0c, 0x8c, 0xf7,
+ 0x00, 0x00, 0x3f, 0x81, 0x3f, 0xff, 0x80, 0x4f, 0xff, 0xc0, 0x2e, 0x3f,
+ 0x20, 0x02, 0xcf, 0x37, 0x50, 0x8f, 0xff, 0xa0, 0x4f, 0x90, 0x3f, 0x00,
+ 0x2c, 0x3f, 0x30, 0xaf, 0xff, 0x70, 0x48, 0x7f, 0x3f, 0x00, 0x02, 0x3e,
+ 0xfd, 0x10, 0xcf, 0x11, 0xff, 0x40, 0x9f, 0x3f, 0x00, 0x00, 0x8f, 0x35,
+ 0x02, 0xfa, 0x02, 0xff, 0xfe, 0x20, 0xcf, 0x3f, 0x00, 0x20, 0x00, 0x2f,
+ 0x3d, 0xf8, 0x05, 0xff, 0xfd, 0x00, 0xd0, 0x3f, 0x31, 0x09, 0x3d, 0xf5,
+ 0x03, 0x54, 0x53, 0x12, 0x00, 0x34, 0x6e, 0x3f, 0x00, 0x04, 0x39, 0xfa,
+ 0x09, 0x9c, 0xff, 0xff, 0xf3, 0x9a, 0x00, 0x3f, 0x3a, 0x20, 0xa6, 0x31,
+ 0xa3, 0xaf, 0xff, 0xfe, 0x30, 0x01, 0x10, 0xbf, 0xff, 0xd1, 0x3b, 0x7f,
+ 0xff, 0xff, 0xfd, 0x40, 0x72, 0x4b, 0x00, 0x00, 0x2c, 0xff, 0xe3, 0x00,
+ 0x08, 0x00, 0x2d, 0xff, 0xe1, 0x3b, 0x9f, 0xff, 0xfe, 0x40, 0x71, 0x45,
+ 0x00, 0x01, 0x68, 0x20, 0x00, 0x00, 0x11, 0x06, 0xff, 0xf6, 0xa3, 0xbf,
+ 0xff, 0xb2, 0x46, 0x80, 0x15, 0xbf, 0xff, 0x94, 0x33, 0x22, 0x22, 0x23,
+ 0x30, 0xef, 0xf8, 0x47, 0x05, 0x6f, 0xff, 0xff, 0xfe, 0x06, 0xee, 0xee,
+ 0xee, 0xff, 0x70, 0x3f, 0x05, 0x1c, 0x16, 0xff, 0xff, 0xff, 0xe9, 0xf9,
+ 0x47, 0x06, 0x07, 0xb2, 0x3c, 0xc1, 0x3f, 0x06, 0x02, 0xdf, 0x33, 0x50,
+ 0xd3, 0x3f, 0x07, 0x7f, 0x3a, 0xfc, 0x10, 0x3f, 0x07, 0x59, 0x2d, 0x3a,
+ 0xf9, 0x47, 0x07, 0x00, 0x05, 0x3a, 0x62, 0xf7, 0x3f, 0x07, 0x00, 0x00,
+ 0x9f, 0x31, 0xf8, 0xc5, 0x3f, 0x07, 0x00, 0x00, 0x0a, 0x39, 0xf9, 0x3f,
+ 0xc1, 0x07, 0x01, 0x9f, 0xff, 0xff, 0xfc, 0x10, 0x37, 0x80, 0x07, 0x00,
+ 0x00, 0x06, 0xdf, 0xff, 0xff, 0x50, 0xe1, 0x3f, 0x07, 0x01, 0x15, 0x78,
+ 0x86, 0x20, 0x3f, 0xff, 0x07, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x00, 0x00,
+};
+
+//*****************************************************************************
+//
+// This is the image of a red LED that is turned off.
+//
+//*****************************************************************************
+const uint8_t g_pui8LightOff[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 20, 0,
+ 20, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x09,
+ 0x00, 0x00, 0x19,
+ 0x00, 0x00, 0x2a,
+ 0x00, 0x00, 0x30,
+ 0x00, 0x00, 0x34,
+ 0x00, 0x00, 0x37,
+ 0x00, 0x00, 0x3a,
+ 0x00, 0x00, 0x3d,
+ 0x00, 0x00, 0x3f,
+ 0x00, 0x00, 0x40,
+ 0x00, 0x00, 0x42,
+ 0x00, 0x00, 0x45,
+ 0x00, 0x00, 0x4a,
+ 0x00, 0x00, 0x50,
+ 0x00, 0x00, 0x56,
+
+ 0x84, 0x01, 0x13, 0xaf, 0xe8, 0x31, 0x03, 0x1b, 0xff, 0x08, 0xff, 0xee,
+ 0xed, 0x71, 0x01, 0x02, 0xff, 0xff, 0x00, 0xfe, 0xed, 0xdd, 0xcc, 0x20,
+ 0x00, 0x00, 0x2f, 0x00, 0xff, 0xfe, 0xee, 0xdd, 0xcc, 0xcb, 0xa2, 0x00,
+ 0x40, 0x01, 0x21, 0xdd, 0xdc, 0xcc, 0xbb, 0xa8, 0x10, 0x00, 0x09, 0xff,
+ 0xfe, 0xdd, 0xdc, 0xcb, 0xbb, 0xba, 0x00, 0x98, 0x30, 0x1e, 0xfe, 0xed,
+ 0xdc, 0xcb, 0xaa, 0x00, 0xaa, 0xaa, 0x98, 0x61, 0x3e, 0xfe, 0xdd, 0xcc,
+ 0x00, 0xba, 0x99, 0x9a, 0xaa, 0x98, 0x62, 0x7d, 0xee, 0x00, 0xdc, 0xcb,
+ 0xa9, 0x99, 0x99, 0x99, 0x88, 0x73, 0x08, 0xcd, 0xed, 0xdc, 0xba, 0xb9,
+ 0x99, 0x88, 0x64, 0x20, 0xcc, 0xdd, 0x6b, 0x99, 0x87, 0x63, 0x6c, 0xcc,
+ 0x40, 0xba, 0x1a, 0x98, 0x76, 0x42, 0x2b, 0xba, 0xaa, 0x88, 0x1b, 0x65,
+ 0x42, 0x1a, 0x2a, 0x99, 0x98, 0x87, 0x00, 0x64, 0x30, 0x04, 0x78, 0x88,
+ 0x88, 0x89, 0x99, 0x00, 0x88, 0x76, 0x54, 0x20, 0x01, 0x67, 0x77, 0x88,
+ 0x00, 0x88, 0x88, 0x87, 0x65, 0x43, 0x00, 0x00, 0x25, 0x00, 0x67, 0x77,
+ 0x77, 0x77, 0x65, 0x44, 0x31, 0x00, 0x00, 0x00, 0x01, 0x45, 0x66, 0x66,
+ 0x65, 0x54, 0x43, 0x00, 0x10, 0x00, 0x00, 0x00, 0x13, 0x44, 0x45, 0x44,
+ 0x20, 0x33, 0x20, 0xb9, 0x00, 0x00, 0x12, 0x23, 0x32, 0x80, 0x72,
+};
+
+//*****************************************************************************
+//
+// This is the image of a red LED that is turned on.
+//
+//*****************************************************************************
+const uint8_t g_pui8LightOn[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 20, 0,
+ 20, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x16,
+ 0x00, 0x00, 0x40,
+ 0x00, 0x00, 0x76,
+ 0x00, 0x00, 0x9b,
+ 0x00, 0x00, 0xac,
+ 0x00, 0x00, 0xb6,
+ 0x00, 0x00, 0xbc,
+ 0x00, 0x00, 0xbe,
+ 0x00, 0x00, 0xbf,
+ 0x00, 0x00, 0xc1,
+ 0x00, 0x00, 0xc5,
+ 0x00, 0x00, 0xcd,
+ 0x00, 0x00, 0xdb,
+ 0x00, 0x00, 0xef,
+ 0x00, 0x00, 0xfc,
+
+ 0x84, 0x01, 0x13, 0xaf, 0xe7, 0x31, 0x03, 0x1b, 0xff, 0x09, 0xff, 0xee,
+ 0xee, 0x51, 0x01, 0x02, 0xff, 0xb1, 0x02, 0xdd, 0xcc, 0x20, 0x00, 0x00,
+ 0x2f, 0xbb, 0xcc, 0x10, 0x92, 0x00, 0x01, 0x72, 0xdc, 0xcc, 0xcb, 0x96,
+ 0x00, 0x10, 0x07, 0xff, 0xfe, 0xed, 0xdc, 0xcc, 0xbb, 0x08, 0xba, 0x96,
+ 0x30, 0x1e, 0x22, 0xba, 0xaa, 0xaa, 0x10, 0x86, 0x51, 0x3e, 0x69, 0xba,
+ 0x99, 0x99, 0x99, 0x01, 0x76, 0x52, 0x5d, 0xee, 0xdd, 0xcb, 0xa9, 0xb2,
+ 0x20, 0x53, 0xcd, 0x6c, 0x98, 0x76, 0x54, 0xcc, 0xdd, 0x40, 0xcc, 0x6a,
+ 0x97, 0x66, 0x43, 0x5c, 0xcc, 0xba, 0x40, 0x98, 0x19, 0x87, 0x65, 0x43,
+ 0x3c, 0xcb, 0xa9, 0x20, 0x98, 0x89, 0x1a, 0x42, 0x1a, 0x88, 0x98, 0x77,
+ 0x40, 0x88, 0x69, 0x44, 0x31, 0x04, 0x67, 0x77, 0x77, 0x00, 0x78, 0x88,
+ 0x76, 0x55, 0x44, 0x20, 0x01, 0x55, 0x00, 0x66, 0x66, 0x77, 0x77, 0x65,
+ 0x54, 0x43, 0x10, 0x00, 0x00, 0x24, 0x55, 0x55, 0x66, 0x65, 0x54, 0x44,
+ 0x00, 0x31, 0x00, 0x00, 0x02, 0x44, 0x45, 0x55, 0x54, 0x00, 0x44, 0x33,
+ 0x10, 0x00, 0x00, 0x00, 0x13, 0x44, 0x08, 0x44, 0x44, 0x33, 0x21, 0xb9,
+ 0x00, 0x00, 0x12, 0x10, 0x33, 0x32, 0x20, 0xba,
+};
+
+//*****************************************************************************
+//
+// This is the image of the blue push button background.
+//
+//*****************************************************************************
+const uint8_t g_pui8Blue50x50[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 50, 0,
+ 50, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x23, 0x00, 0x00,
+ 0x52, 0x00, 0x00,
+ 0x63, 0x00, 0x00,
+ 0x6f, 0x00, 0x00,
+ 0x78, 0x00, 0x00,
+ 0x7c, 0x00, 0x00,
+ 0x7d, 0x00, 0x00,
+ 0x7f, 0x00, 0x00,
+ 0x81, 0x00, 0x00,
+ 0x85, 0x00, 0x00,
+ 0x89, 0x00, 0x00,
+ 0x8d, 0x00, 0x00,
+ 0x93, 0x00, 0x00,
+ 0x9b, 0x00, 0x00,
+ 0xa9, 0x00, 0x00,
+
+ 0x81, 0x03, 0x13, 0x9e, 0xfe, 0xff, 0xff, 0xff, 0xe9, 0x8a, 0xd1, 0xfe,
+ 0xd7, 0x31, 0x07, 0x2e, 0x51, 0xee, 0x35, 0xee, 0xee, 0xe9, 0xd4, 0xa2,
+ 0x35, 0x1e, 0x41, 0x41, 0xfe, 0x3f, 0xee, 0xee, 0xdd, 0xcc, 0x91, 0x33,
+ 0x40, 0x03, 0x41, 0xee, 0xee, 0xed, 0xdd, 0xdd, 0xdd, 0xc1, 0xe9, 0xd1,
+ 0xdc, 0xcd, 0xcc, 0xaa, 0x20, 0x32, 0x41, 0x3f, 0x41, 0xed, 0xdc, 0xcc,
+ 0xcc, 0xcc, 0xe9, 0x81, 0xd1, 0xbb, 0xbb, 0xcc, 0xcb, 0xba, 0x52, 0x39,
+ 0x40, 0x03, 0x42, 0xcc, 0xba, 0xaa, 0x99, 0x99, 0x99, 0xc0, 0xe9, 0xd1,
+ 0xaa, 0xaa, 0xab, 0xa9, 0x95, 0x20, 0x04, 0x00, 0x00, 0x1f, 0xff, 0xfe,
+ 0x41, 0x99, 0x98, 0x1c, 0x88, 0x88, 0x88, 0xe9, 0xd1, 0x29, 0x99, 0x98,
+ 0x00, 0x41, 0x00, 0x00, 0xef, 0xff, 0xee, 0xdc, 0xba, 0x60, 0x99, 0x4f,
+ 0x01, 0x89, 0x99, 0x99, 0x98, 0x53, 0x01, 0x00, 0x02, 0xff, 0xfe, 0xed,
+ 0xcb, 0xa9, 0x47, 0x80, 0x35, 0x98, 0x64, 0x10, 0x0d, 0xef, 0xee, 0xdc,
+ 0x30, 0xba, 0x98, 0x3f, 0x04, 0x99, 0x88, 0x54, 0x30, 0x06, 0x1e, 0xfe,
+ 0xed, 0xcb, 0xa9, 0x47, 0x06, 0x86, 0x01, 0x55, 0x41, 0x3e, 0xfe, 0xed,
+ 0xba, 0x98, 0x3f, 0x81, 0x3f, 0x65, 0x41, 0x5e, 0xee, 0xdc, 0xb9, 0x47,
+ 0x80, 0x07, 0x88, 0x65, 0x42, 0xbd, 0xee, 0xdb, 0xa9, 0xe1, 0x3f, 0x3f,
+ 0x39, 0xcc, 0xed, 0xcb, 0x98, 0x3f, 0x81, 0x3f, 0x88, 0x65, 0x43, 0xcc,
+ 0xdd, 0xca, 0x3f, 0xc3, 0x3f, 0x39, 0x42, 0xcb, 0xdc, 0xba, 0x3f, 0x3f,
+ 0xb0, 0x3c, 0xb9, 0x47, 0x07, 0x88, 0x88, 0x75, 0x32, 0x18, 0xcb, 0xdc,
+ 0xa9, 0x3f, 0x07, 0x88, 0x88, 0x65, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x3f, 0x3f, 0x07, 0x01, 0x64, 0x32, 0xcb,
+ 0x73, 0xcc, 0x3f, 0x3f, 0x3b, 0x9b, 0xcb, 0x3f, 0x07, 0x00, 0x88, 0x88,
+ 0x87, 0x54, 0x32, 0x4a, 0xba, 0x99, 0x60, 0x98, 0x37, 0x07, 0x86, 0x54,
+ 0x32, 0x2a, 0xaa, 0x60, 0xa9, 0x47, 0x07, 0x88, 0x75, 0x43, 0x21, 0x19,
+ 0x30, 0x8a, 0x99, 0x3f, 0x07, 0x88, 0x65, 0x43, 0x21, 0x0c, 0x04, 0x49,
+ 0x98, 0x98, 0x37, 0x06, 0x86, 0x54, 0x06, 0x33, 0x20, 0x02, 0x46, 0x68,
+ 0x47, 0x07, 0x76, 0x01, 0x54, 0x32, 0x10, 0x00, 0x44, 0x66, 0x66, 0x2f,
+ 0x80, 0x05, 0x87, 0x65, 0x43, 0x32, 0x00, 0x00, 0x13, 0x18, 0x45, 0x55,
+ 0x66, 0x3f, 0x04, 0x66, 0x54, 0x33, 0x00, 0x21, 0x00, 0x00, 0x01, 0x34,
+ 0x45, 0x56, 0x66, 0x60, 0x78, 0x2f, 0x01, 0x76, 0x54, 0x43, 0x32, 0x10,
+ 0x01, 0x00, 0x00, 0x00, 0x12, 0x44, 0x45, 0x55, 0x37, 0x82, 0x01, 0x66,
+ 0x55, 0x44, 0x33, 0x21, 0x41, 0x00, 0x00, 0x01, 0x23, 0x44, 0x44, 0x55,
+ 0x56, 0x66, 0x66, 0x60, 0x66, 0xe9, 0xd1, 0x65, 0x54, 0x44, 0x33, 0x22,
+ 0x40, 0x10, 0x3a, 0x00, 0x12, 0x33, 0x34, 0x44, 0x44, 0x61, 0x44, 0xe9,
+ 0xd4, 0x43, 0x33, 0x22, 0x21, 0x43, 0x86, 0x31, 0x23, 0x33, 0x33, 0x33,
+ 0xe9, 0xd4, 0x32, 0x80, 0x47, 0x00, 0x00, 0x01, 0x12, 0x22, 0x22, 0x22,
+ 0xc8, 0xe9, 0xd3, 0x21, 0x10, 0x43,
+};
+
+//*****************************************************************************
+//
+// This is the image of the blue push button background, used when the buttons
+// are pressed.
+//
+//*****************************************************************************
+const uint8_t g_pui8Blue50x50Press[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 50, 0,
+ 50, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x23, 0x00, 0x00,
+ 0x52, 0x00, 0x00,
+ 0x63, 0x00, 0x00,
+ 0x6f, 0x00, 0x00,
+ 0x78, 0x00, 0x00,
+ 0x7c, 0x00, 0x00,
+ 0x7d, 0x00, 0x00,
+ 0x7f, 0x00, 0x00,
+ 0x81, 0x00, 0x00,
+ 0x85, 0x00, 0x00,
+ 0x89, 0x00, 0x00,
+ 0x8d, 0x00, 0x00,
+ 0x93, 0x00, 0x00,
+ 0x9b, 0x00, 0x00,
+ 0xa9, 0x00, 0x00,
+
+ 0x83, 0x03, 0x01, 0x12, 0x22, 0x22, 0x22, 0xe9, 0xd3, 0x20, 0x21, 0x10,
+ 0x07, 0x12, 0x22, 0x23, 0x33, 0x33, 0x64, 0x33, 0xe9, 0xd4, 0x32, 0x21,
+ 0x47, 0x33, 0x34, 0x19, 0x44, 0x44, 0x44, 0xe9, 0xd4, 0x43, 0x33, 0x34,
+ 0x00, 0x01, 0x22, 0x33, 0x44, 0x45, 0x56, 0x66, 0x66, 0x60, 0x66, 0xe9,
+ 0xd1, 0x65, 0x55, 0x44, 0x44, 0x32, 0x40, 0x10, 0x32, 0x12, 0x33, 0x44,
+ 0x55, 0x66, 0x88, 0x30, 0x88, 0x88, 0xe9, 0xd2, 0x87, 0x66, 0x55, 0x54,
+ 0x20, 0x44, 0x21, 0x39, 0x01, 0x23, 0x34, 0x45, 0x67, 0xc0, 0x47, 0x33,
+ 0x65, 0x54, 0x43, 0x10, 0x00, 0x00, 0x0c, 0x12, 0x33, 0x45, 0x66, 0x47,
+ 0x04, 0x66, 0x55, 0x00, 0x54, 0x31, 0x00, 0x00, 0x23, 0x34, 0x56, 0x78,
+ 0xc0, 0x3f, 0x04, 0x86, 0x66, 0x66, 0x44, 0x00, 0x01, 0x18, 0x23, 0x45,
+ 0x67, 0x47, 0x2f, 0x86, 0x64, 0x20, 0x0c, 0x02, 0x33, 0x45, 0x68, 0x3f,
+ 0x06, 0x89, 0x89, 0x06, 0x94, 0x40, 0x12, 0x34, 0x56, 0x47, 0x07, 0x88,
+ 0x03, 0x99, 0xa8, 0x91, 0x12, 0x34, 0x57, 0x3f, 0x07, 0x01, 0x88, 0x9a,
+ 0xaa, 0xa2, 0x23, 0x45, 0x68, 0x3f, 0x80, 0x07, 0x89, 0x99, 0xab, 0xa4,
+ 0x23, 0x45, 0x78, 0xc0, 0x3f, 0x07, 0x88, 0x9a, 0xbc, 0xb9, 0x23, 0x46,
+ 0xe7, 0x47, 0x3f, 0x39, 0xcc, 0xbc, 0x3f, 0x3f, 0x3b, 0x0f, 0xcd, 0xbc,
+ 0x23, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x3f, 0xb0, 0x39, 0x57, 0x3f, 0x07, 0x88, 0x88, 0x9b, 0xcd,
+ 0x18, 0xbc, 0x24, 0x56, 0x3f, 0x07, 0x88, 0x89, 0xab, 0xe1, 0x3f, 0x3f,
+ 0x3c, 0xac, 0xdd, 0xcc, 0x34, 0x3f, 0xc3, 0x3f, 0x39, 0xbc, 0xde, 0xcc,
+ 0x24, 0x3f, 0x07, 0x03, 0x88, 0x88, 0x9a, 0xbd, 0xee, 0xdb, 0x3f, 0x07,
+ 0x80, 0x01, 0x9b, 0xcd, 0xee, 0xe5, 0x14, 0x56, 0x68, 0xc0, 0x37, 0x06,
+ 0x89, 0xab, 0xde, 0xef, 0xe3, 0x14, 0x60, 0x55, 0x3f, 0x07, 0x9a, 0xbc,
+ 0xde, 0xef, 0xe1, 0x0c, 0x03, 0x45, 0x88, 0x99, 0x37, 0x04, 0x89, 0xab,
+ 0x00, 0xcd, 0xee, 0xfe, 0xd0, 0x01, 0x46, 0x89, 0x99, 0x60, 0x98, 0x37,
+ 0x03, 0x9a, 0xbc, 0xde, 0xef, 0xff, 0x06, 0x20, 0x00, 0x35, 0x89, 0x99,
+ 0x37, 0x03, 0x99, 0x00, 0xab, 0xcd, 0xee, 0xff, 0xfe, 0x00, 0x00, 0x14,
+ 0x04, 0x89, 0x99, 0xaa, 0x99, 0x99, 0x37, 0x89, 0x99, 0x00, 0xab, 0xcc,
+ 0xde, 0xef, 0xff, 0xf1, 0x00, 0x00, 0x05, 0x02, 0x59, 0x9a, 0xba, 0xaa,
+ 0x29, 0x99, 0xe9, 0xa0, 0xd1, 0xaa, 0x41, 0xee, 0xff, 0xff, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x25, 0xab, 0xbc, 0xcc, 0xbb, 0xbb, 0x1a, 0xcc, 0xcc,
+ 0xcc, 0xe9, 0xd1, 0xcd, 0x42, 0xf3, 0x80, 0x41, 0x00, 0x02, 0xaa, 0xcc,
+ 0xdc, 0xcd, 0xdd, 0x32, 0xdd, 0xdd, 0xe9, 0xd1, 0xde, 0xee, 0x41, 0xff,
+ 0x40, 0x30, 0x3a, 0x00, 0x19, 0xcc, 0xdd, 0xee, 0xee, 0x6a, 0xee, 0xe9,
+ 0xd3, 0xef, 0x41, 0xe1, 0x43, 0x00, 0x3a, 0x00, 0x2a, 0x47, 0x01, 0x41,
+ 0xe2, 0x45, 0x00, 0x0e, 0x00, 0x13, 0x7d, 0xef, 0x81, 0x69, 0x51, 0xef,
+ 0x20, 0xe9, 0x31, 0x43,
+};
+
+//*****************************************************************************
+//
+// Vertical "Temperature" image used in the slider widget example.
+//
+//*****************************************************************************
+const uint8_t g_pui8GettingHotter28x148[] =
+{
+ IMAGE_FMT_8BPP_COMP,
+ 28, 0,
+ 148, 0,
+
+ 63,
+ 0x00, 0x10, 0x42,
+ 0x00, 0x29, 0x46,
+ 0x00, 0x13, 0x72,
+ 0x00, 0x3c, 0x3c,
+ 0x00, 0x38, 0x6c,
+ 0x00, 0x0d, 0xc7,
+ 0x00, 0x22, 0x9e,
+ 0x00, 0x06, 0xe5,
+ 0x00, 0x03, 0xfe,
+ 0x00, 0x10, 0xf0,
+ 0x00, 0x45, 0x8a,
+ 0x00, 0x0b, 0xfe,
+ 0x00, 0x57, 0x69,
+ 0x00, 0x1e, 0xe2,
+ 0x00, 0x2e, 0xc7,
+ 0x00, 0x13, 0xfd,
+ 0x00, 0x1c, 0xf6,
+ 0x00, 0x1d, 0xfc,
+ 0x00, 0x34, 0xd7,
+ 0x00, 0x2c, 0xed,
+ 0x00, 0x44, 0xc3,
+ 0x00, 0x29, 0xfb,
+ 0x00, 0x65, 0x8d,
+ 0x00, 0x3f, 0xe3,
+ 0x00, 0x58, 0xb4,
+ 0x00, 0x37, 0xf9,
+ 0x00, 0x80, 0x7e,
+ 0x00, 0x46, 0xf8,
+ 0x00, 0x56, 0xe0,
+ 0x00, 0x6b, 0xc3,
+ 0x00, 0x54, 0xf6,
+ 0x00, 0x7d, 0xb6,
+ 0x00, 0x68, 0xe1,
+ 0x00, 0x61, 0xf5,
+ 0x00, 0x77, 0xd8,
+ 0x00, 0x6b, 0xf4,
+ 0x00, 0x9a, 0x9d,
+ 0x00, 0x74, 0xf3,
+ 0x00, 0xa7, 0x97,
+ 0x00, 0x94, 0xbd,
+ 0x00, 0x7b, 0xf2,
+ 0x00, 0x88, 0xdf,
+ 0x00, 0x90, 0xd6,
+ 0x00, 0x83, 0xf1,
+ 0x00, 0x8b, 0xf0,
+ 0x00, 0xab, 0xb9,
+ 0x00, 0x91, 0xf0,
+ 0x00, 0x9a, 0xee,
+ 0x00, 0xa8, 0xdc,
+ 0x00, 0xa5, 0xed,
+ 0x00, 0xc4, 0xc6,
+ 0x00, 0xb2, 0xec,
+ 0x00, 0xbc, 0xeb,
+ 0x00, 0xc3, 0xea,
+ 0x00, 0xd2, 0xda,
+ 0x00, 0xcc, 0xe9,
+ 0x00, 0xd4, 0xe9,
+ 0x00, 0xe1, 0xd8,
+ 0x00, 0xdb, 0xe8,
+ 0x00, 0xe0, 0xe7,
+ 0x00, 0xe6, 0xe7,
+ 0x00, 0xec, 0xe6,
+ 0x00, 0xf3, 0xe5,
+ 0x00, 0xfa, 0xe4,
+
+ 0x1f, 0x08, 0x08, 0x08, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0xfc, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x08, 0x19, 0x03, 0x28, 0x34, 0x34, 0x19, 0x15,
+ 0x15, 0x07, 0x07, 0x00, 0x08, 0x0f, 0x34, 0x3f, 0x3f, 0x3f, 0x3f, 0x0a,
+ 0x1c, 0x20, 0x3d, 0x20, 0x1f, 0x07, 0x2b, 0x3f, 0x04, 0x0d, 0x22, 0x3f,
+ 0x3f, 0x18, 0x1f, 0x05, 0x1e, 0x2b, 0x01, 0x3f, 0x04, 0x2a, 0x3f, 0x3f,
+ 0x39, 0x05, 0x1f, 0xa8, 0x04, 0x2c, 0x61, 0x16, 0x21, 0x29, 0x3f, 0x3f,
+ 0x30, 0x3f, 0x02, 0x27, 0x04, 0x34, 0x3f, 0x3f, 0x16, 0x4a, 0x00, 0x21,
+ 0x05, 0x36, 0xd9, 0x07, 0x1d, 0x0b, 0x29, 0x0b, 0x0b, 0xe9, 0x0b, 0x21,
+ 0x04, 0x05, 0x22, 0xe1, 0xbb, 0x5d, 0x25, 0x31, 0x3f, 0x3f, 0x2d, 0x22,
+ 0x30, 0x12, 0x3f, 0x27, 0x07, 0x28, 0x3e, 0x3e, 0x3e, 0x09, 0x36, 0x3e,
+ 0x3e, 0x32, 0xc9, 0x3e, 0x00, 0x27, 0x98, 0x04, 0x11, 0x3c, 0x52, 0x32,
+ 0x3e, 0x24, 0x00, 0xd1, 0x2f, 0x05, 0x1e, 0x26, 0x32, 0x00, 0x02, 0x27,
+ 0x90, 0x06, 0x0e, 0x2d, 0x12, 0x39, 0x16, 0x00, 0x02, 0x44, 0x09, 0x26,
+ 0x0f, 0x0f, 0x0f, 0xe9, 0x0f, 0x15, 0x00, 0x1b, 0x0f, 0x05, 0x02, 0x04,
+ 0x04, 0x04, 0x00, 0x18, 0x00, 0x05, 0x09, 0x6d, 0x35, 0x0f, 0x0f, 0x2f,
+ 0x00, 0x3d, 0x36, 0x28, 0x0f, 0x09, 0x05, 0x05, 0x05, 0xc0, 0x3f, 0x07,
+ 0x0f, 0x33, 0x3d, 0x3d, 0x32, 0x06, 0xe0, 0x47, 0x07, 0x03, 0x28, 0x3d,
+ 0x3d, 0x36, 0x02, 0xe8, 0x27, 0x07, 0x04, 0x1d, 0x19, 0x28, 0x1e, 0x1e,
+ 0x70, 0x1e, 0xe9, 0x07, 0x05, 0x28, 0x3d, 0x3d, 0x3d, 0xd1, 0xe9, 0xd3,
+ 0x05, 0x1e, 0x11, 0x11, 0x11, 0xe9, 0x06, 0x11, 0x28, 0x3c, 0x3c, 0x3c,
+ 0xe9, 0xd3, 0x00, 0xf8, 0x65, 0x2d, 0x27, 0x27, 0x07, 0x11, 0x11, 0x23,
+ 0x0f, 0x30, 0x2d, 0x2d, 0x2d, 0xe9, 0xd2, 0x27, 0x06, 0x0f, 0x05, 0x02,
+ 0x02, 0x02, 0xe9, 0xd3, 0x27, 0x07, 0xe1, 0x77, 0x2f, 0x05, 0x19, 0x1e,
+ 0x1e, 0x1e, 0xe9, 0xe1, 0xd3, 0x07, 0x05, 0x28, 0x3b, 0x3b, 0x3b, 0xe9,
+ 0xa2, 0xd3, 0x05, 0x1e, 0x15, 0x15, 0x15, 0xe9, 0x15, 0x0d, 0x28, 0x3a,
+ 0x3a, 0x3a, 0xe9, 0xd3, 0x00, 0x65, 0xf0, 0x2d, 0x27, 0x27, 0x07, 0x15,
+ 0x15, 0x23, 0x30, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x36, 0x3a, 0x3a,
+ 0x30, 0x27, 0x16, 0x27, 0x06, 0x06, 0x02, 0x02, 0x02, 0x83, 0xe9, 0x1f,
+ 0x3a, 0x3a, 0x0a, 0x06, 0x27, 0x07, 0x83, 0x73, 0x1e, 0x38, 0x38, 0x32,
+ 0x0e, 0x27, 0x04, 0x08, 0x1b, 0x1e, 0x1e, 0x1e, 0xe9, 0x21, 0x33, 0x38,
+ 0x1b, 0x38, 0x38, 0x0a, 0x27, 0x04, 0x28, 0x61, 0x49, 0x9d, 0xd3, 0x04,
+ 0x0e, 0x27, 0x27, 0x0e, 0x00, 0x26, 0x10, 0x19, 0x19, 0x19, 0xe9, 0x19,
+ 0x28, 0x37, 0x37, 0x63, 0x37, 0xe9, 0xd2, 0x16, 0x00, 0x13, 0x5d, 0x25,
+ 0x04, 0x25, 0x30, 0x27, 0x27, 0x27, 0xe9, 0x27, 0x16, 0x18, 0x04, 0x00,
+ 0x06, 0x2f, 0x05, 0x06, 0x02, 0x02, 0x43, 0x02, 0xe9, 0x02, 0x02, 0x06,
+ 0x0e, 0x2f, 0x05, 0x0e, 0x1b, 0x21, 0x21, 0x1e, 0xb6, 0x27, 0x05, 0x28,
+ 0x08, 0x35, 0x35, 0x2f, 0x12, 0x1a, 0x33, 0x35, 0x35, 0x64, 0x0e, 0x27,
+ 0x27, 0x27, 0x02, 0x22, 0x31, 0x35, 0x37, 0x35, 0x04, 0x47, 0x43, 0x35,
+ 0xe9, 0xd4, 0xa1, 0x23, 0x04, 0x0e, 0x1f, 0x19, 0x1b, 0x30, 0x27, 0x27,
+ 0x80, 0x3c, 0x1b, 0x1b, 0x1b, 0x25, 0x34, 0x34, 0x34, 0xc3, 0xe9, 0xd4,
+ 0x34, 0x30, 0x00, 0x12, 0x5a, 0x3a, 0xa0, 0x1a, 0x30, 0x1f, 0x34, 0x33,
+ 0x1f, 0x01, 0x00, 0xc0, 0x2f, 0x03, 0x02, 0x16, 0x34, 0x34, 0x27, 0x00,
+ 0x23, 0x00, 0x00, 0xe9, 0x00, 0x02, 0x17, 0x27, 0x04, 0x07, 0x21, 0x1d,
+ 0x16, 0x0a, 0x02, 0x67, 0x1f, 0x04, 0x01, 0x14, 0x06, 0x14, 0x18, 0x23,
+ 0x23, 0x23, 0xe9, 0x60, 0x2b, 0x07, 0x06, 0x21, 0x31, 0x33, 0x33, 0x33,
+ 0xda, 0xe9, 0xd1, 0x06, 0x1f, 0x04, 0x1e, 0x37, 0x33, 0x24, 0x33, 0x00,
+ 0x5f, 0x1e, 0x1e, 0xe9, 0x1e, 0x28, 0xf0, 0x27, 0x21, 0x65, 0x2d, 0x1e,
+ 0x2e, 0x33, 0x33, 0x00, 0x30, 0x2a, 0x33, 0x30, 0x1f, 0x30, 0x33, 0x30,
+ 0x60, 0x0a, 0x27, 0x27, 0x33, 0x0a, 0x04, 0x33, 0x33, 0x03, 0x00, 0x04,
+ 0x1f, 0x33, 0x16, 0x14, 0x27, 0x25, 0x00, 0x31, 0x31, 0x04, 0x14, 0x2f,
+ 0x31, 0x0a, 0x1e, 0x0c, 0x23, 0x31, 0x30, 0x0a, 0x27, 0x27, 0x1f, 0x14,
+ 0x43, 0x2b, 0xe1, 0x25, 0x31, 0x31, 0x04, 0x27, 0x04, 0x00, 0x2b, 0x31,
+ 0x31, 0x31, 0x18, 0x28, 0x31, 0x31, 0x4d, 0x2a, 0xc1, 0x04, 0x14, 0x1f,
+ 0x03, 0x25, 0x62, 0x71, 0x18, 0x39, 0x27, 0x01, 0x21, 0x21, 0x21, 0xe9,
+ 0x14, 0x21, 0x21, 0x29, 0x62, 0x2f, 0x1a, 0x2a, 0x00, 0x68, 0x14, 0x5e,
+ 0x1e, 0x18, 0x61, 0x23, 0x2a, 0x2f, 0x0c, 0x2f, 0x2a, 0x04, 0x01, 0x2f,
+ 0x06, 0x1c, 0x0a, 0x81, 0x61, 0x1c, 0x0a, 0x04, 0x00, 0x01, 0x1c, 0x27,
+ 0x93, 0x04, 0x23, 0x25, 0x7d, 0x14, 0x14, 0x37, 0x06, 0x0c, 0x2b, 0x2f,
+ 0x2e, 0x28, 0x5f, 0x16, 0x23, 0x23, 0x40, 0x23, 0xe9, 0x23, 0x2c, 0x2f,
+ 0x2f, 0x22, 0x0a, 0xe0, 0xa5, 0x6d, 0x97, 0x28, 0x2e, 0x2e, 0x29, 0x04,
+ 0xe8, 0x27, 0x07, 0x04, 0x1d, 0x19, 0x28, 0x25, 0x25, 0x70, 0x25, 0xe9,
+ 0x07, 0x05, 0x28, 0x2e, 0x2e, 0x2e, 0xd8, 0xe9, 0xd3, 0x18, 0x27, 0x25,
+ 0x2c, 0x2c, 0x2c, 0xd1, 0xe9, 0xd3, 0x00, 0x26, 0x25, 0x25, 0x25, 0xe9,
+ 0x78, 0x25, 0x27, 0x22, 0x65, 0x2d, 0x25, 0x28, 0x22, 0x1e, 0x1d, 0x1d,
+ 0x1d, 0xe9, 0xd2, 0x27, 0x06, 0x18, 0x1c, 0x04, 0x04, 0x04, 0xe9, 0xd3,
+ 0x26, 0x28, 0x28, 0x67, 0x28, 0xe9, 0xd4, 0x2b, 0x2b, 0x97, 0x4f, 0x3d,
+ 0x01, 0x2b, 0x2b, 0x2b, 0x0a, 0x22, 0x2b, 0x22, 0x2f, 0xc0, 0x2f, 0x2b,
+ 0x2b, 0x04, 0x22, 0x2b, 0x2b, 0x1d, 0xe0, 0x1f, 0x07, 0x73, 0x04, 0x22,
+ 0x28, 0x28, 0x22, 0x45, 0x18, 0x1e, 0x2b, 0x2b, 0x2b, 0xe9, 0x2b, 0x01,
+ 0x27, 0x25, 0x0a, 0x24, 0x28, 0x04, 0x65, 0x2d, 0x22, 0x25, 0x0a, 0x01,
+ 0x21, 0x1d, 0x25, 0x21, 0x22, 0x27, 0x85, 0x24, 0x25, 0x25, 0x04, 0x18,
+ 0xe1, 0x1d, 0xba, 0x65, 0x1d, 0x27, 0x26, 0x18, 0x1d, 0x22, 0x25, 0x27,
+ 0x04, 0x2b, 0x2b, 0x2c, 0x2c, 0x2c, 0xe9, 0x2c, 0x2b, 0x88, 0x61, 0x20,
+ 0x25, 0x25, 0x2a, 0x25, 0x01, 0x1d, 0xcc, 0x5d, 0x25, 0x2c, 0x23, 0x52,
+ 0x32, 0x25, 0x18, 0x61, 0x01, 0x2f, 0x05, 0x2b, 0x23, 0x23, 0x23, 0xe9,
+ 0x04, 0x23, 0x23, 0x1d, 0x01, 0x0a, 0x26, 0x2e, 0x2e, 0x64, 0x2e, 0xe9,
+ 0xd1, 0x1d, 0x18, 0x12, 0x20, 0x0a, 0x18, 0x01, 0x04, 0x29, 0x67, 0x1f,
+ 0x22, 0x0a, 0x04, 0x07, 0x04, 0x04, 0x01, 0x01, 0x16, 0x2f, 0x07, 0x02,
+ 0x0c, 0x29, 0x1f, 0x1f, 0x22, 0x3f, 0x01, 0x2f, 0x2f, 0x60, 0x2f, 0xe9,
+ 0xd2, 0x2b, 0x28, 0x25, 0x25, 0x25, 0x30, 0x2b, 0x2c, 0x7f, 0x37, 0x2f,
+ 0x2c, 0x23, 0x21, 0x23, 0x21, 0x21, 0xe9, 0x21, 0x20, 0x2e, 0x17, 0x05,
+ 0x6d, 0x2e, 0x35, 0x01, 0x18, 0x1f, 0x05, 0x28, 0x27, 0x18, 0x21, 0x21,
+ 0x16, 0x27, 0x04, 0x23, 0x21, 0x21, 0x02, 0x1c, 0x0a, 0x04, 0x04, 0x04,
+ 0x14, 0x01, 0x04, 0x88, 0x26, 0x31, 0x31, 0x31, 0xe9, 0x31, 0x25, 0x1e,
+ 0x00, 0x1e, 0x0a, 0x01, 0x16, 0x1f, 0x1f, 0x1f, 0x1c, 0x0d, 0x1e, 0x1e,
+ 0x04, 0x1f, 0x5d, 0x25, 0x2c, 0x21, 0x83, 0x6b, 0x21, 0x1e, 0x1c, 0x01,
+ 0x2a, 0x27, 0x04, 0x00, 0x20, 0x1e, 0x1c, 0x1d, 0x2e, 0x2e, 0x2c, 0x23,
+ 0x01, 0x1e, 0x1e, 0x0a, 0x0a, 0x2e, 0x2e, 0x2e, 0x17, 0x87, 0x01, 0x2b,
+ 0x1e, 0x1e, 0x1e, 0xe9, 0xd4, 0xa1, 0x39, 0x22, 0x2f, 0x27, 0x27, 0x06,
+ 0x04, 0x1f, 0x27, 0xd1, 0x27, 0x27, 0x27, 0x21, 0x33, 0x33, 0x33, 0xe9,
+ 0x03, 0x33, 0x2b, 0x1c, 0x14, 0x14, 0x14, 0xe9, 0xd4, 0x0c, 0x14, 0x14,
+ 0x04, 0x27, 0x3d, 0x02, 0x1f, 0x0c, 0x3e, 0x0c, 0x0c, 0xe9, 0xd4, 0xa1,
+ 0x27, 0x03, 0x2f, 0x3c, 0x2f, 0x2f, 0xe9, 0xd1, 0x57, 0x0e, 0x2c, 0x1e,
+ 0x1b, 0x1b, 0x1b, 0x1b, 0xe9, 0xd1, 0x27, 0x1f, 0x04, 0x44, 0x2f, 0x37,
+ 0x1b, 0x1b, 0x01, 0x26, 0x34, 0x34, 0x4f, 0x34, 0xe9, 0x34, 0x23, 0x27,
+ 0x21, 0x65, 0x2d, 0x21, 0x34, 0x21, 0x21, 0x17, 0x14, 0x14, 0x14, 0xe9,
+ 0x68, 0x14, 0x27, 0x05, 0x25, 0x29, 0x01, 0x03, 0x0c, 0x2c, 0x0c, 0x0c,
+ 0xe9, 0x0c, 0x27, 0x04, 0x2f, 0x19, 0x0e, 0x19, 0x12, 0x03, 0x33, 0x5f,
+ 0x17, 0x03, 0x22, 0x02, 0x19, 0x19, 0x14, 0x2f, 0x2f, 0x2f, 0xe9, 0x2f,
+ 0x88, 0x07, 0x35, 0x35, 0x35, 0xe9, 0x35, 0x35, 0x2b, 0x1b, 0x19, 0x19,
+ 0x19, 0xe9, 0xd2, 0x27, 0x66, 0x25, 0x46, 0x2e, 0x2f, 0x19, 0x19, 0x03,
+ 0x27, 0x04, 0x21, 0xe8, 0x27, 0x27, 0x07, 0x1e, 0x21, 0x12, 0x0e, 0x0e,
+ 0x51, 0x0e, 0xe9, 0x0e, 0x27, 0x37, 0x37, 0x37, 0xe9, 0x20, 0x37, 0x23,
+ 0x29, 0x01, 0x03, 0x0c, 0x0c, 0x0c, 0xb0, 0xe9, 0x0c, 0x65, 0x2d, 0x37,
+ 0x31, 0x15, 0x15, 0x1c, 0x12, 0x03, 0x35, 0x5f, 0x17, 0x03, 0x22, 0x15,
+ 0x05, 0x15, 0x14, 0x31, 0x31, 0x31, 0xe9, 0x31, 0x07, 0x86, 0x05, 0x2b,
+ 0x15, 0x15, 0x15, 0xe9, 0xd3, 0x2d, 0x8b, 0x1e, 0x38, 0x38, 0x38, 0xe9,
+ 0x38, 0x27, 0x01, 0x7c, 0x03, 0x65, 0x2d, 0x27, 0x27, 0x07, 0x38, 0x38,
+ 0x07, 0x2c, 0x17, 0x0e, 0x0e, 0x0e, 0xe9, 0xd2, 0x27, 0x87, 0x06, 0x24,
+ 0x0c, 0x0c, 0x0c, 0xe9, 0xd3, 0x27, 0xe3, 0x07, 0x77, 0x2f, 0x3a, 0x3a,
+ 0x3a, 0xe9, 0xd2, 0x01, 0x33, 0x2b, 0x1e, 0x1e, 0x33, 0x35, 0x35, 0x7f,
+ 0x80, 0x37, 0x3a, 0x37, 0x1e, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x0a, 0x22,
+ 0x15, 0x29, 0x1f, 0x07, 0x2b, 0x11, 0x04, 0x04, 0x20, 0x11, 0x11, 0x1d,
+ 0x1f, 0x3b, 0x3b, 0x48, 0x3b, 0xe9, 0x3b, 0x2f, 0x2b, 0x11, 0x04, 0x1c,
+ 0x0c, 0x11, 0x11, 0x0d, 0x2d, 0x65, 0x2d, 0x3b, 0x25, 0x09, 0x11, 0x11,
+ 0x10, 0x06, 0x21, 0x20, 0x11, 0xd9, 0xc1, 0x27, 0x04, 0x1e, 0x11, 0x11,
+ 0x06, 0x03, 0x21, 0x28, 0x2d, 0x13, 0x21, 0x32, 0x1d, 0x3c, 0x3c, 0x3c,
+ 0x81, 0xe9, 0x3c, 0x1e, 0x0f, 0x0f, 0x04, 0x24, 0xe1, 0x58, 0x2d, 0xba,
+ 0x2d, 0x5d, 0x25, 0x21, 0x0f, 0x0f, 0x26, 0x0e, 0x2d, 0x01, 0x27, 0x0f,
+ 0x27, 0x07, 0x2b, 0xb3, 0x61, 0x0d, 0xe9, 0x29, 0x0f, 0x03, 0x27, 0x04,
+ 0x31, 0x3a, 0x10, 0x52, 0x32, 0x0f, 0x06, 0x03, 0x2e, 0x11, 0x3d, 0x3d,
+ 0x3d, 0xe9, 0x3d, 0x3d, 0x2f, 0x26, 0x18, 0x0d, 0x03, 0x1a, 0x66, 0x26,
+ 0x3d, 0x27, 0x0e, 0x82, 0x12, 0x09, 0x06, 0x03, 0x0c, 0x39, 0x27, 0x3d,
+ 0x30, 0x3d, 0x1b, 0x59, 0x01, 0x32, 0x16, 0x04, 0x04, 0x0c, 0x04, 0x03,
+ 0x03, 0x24, 0x2f, 0x23, 0x0b, 0x0b, 0x21, 0x0b, 0x03, 0x7a, 0x39, 0x32,
+ 0x32, 0x32, 0x3f, 0xf1, 0x27, 0x24, 0x47, 0x05, 0x3e, 0x3e, 0x3e, 0x23,
+ 0xf8, 0xc1, 0xa9, 0xd4, 0xa7, 0x24, 0x06, 0x2b, 0x2b, 0x7f, 0x2b, 0xe9,
+ 0xd3, 0x27, 0x25, 0x09, 0xd4, 0xa1, 0x63, 0x24, 0x27, 0x21, 0x08, 0x08,
+ 0x08, 0xe9, 0xd4, 0xbf, 0xa1, 0x03, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
+ 0x84, 0x27, 0x3e, 0x3f, 0x3f, 0x3f, 0x22, 0x03, 0x03, 0x6f, 0x03, 0xe9,
+ 0xd4, 0x03, 0x61, 0x49, 0xd3, 0x23, 0xff, 0x87, 0x3f, 0x27, 0x27, 0x27,
+ 0x27, 0x27, 0x07, 0x87, 0x05, 0x2f, 0x14, 0x06, 0x06, 0x27, 0x07, 0x05,
+ 0x0f, 0x26, 0x26, 0x26, 0x26, 0x27, 0x07, 0x77, 0x2f, 0xf8, 0x07, 0x07,
+ 0x07, 0x07, 0x02,
+};
+
+//*****************************************************************************
+//
+// Background version of vertical "Temperature" image.
+//
+//*****************************************************************************
+const uint8_t g_pui8GettingHotter28x148Mono[] =
+{
+ IMAGE_FMT_4BPP_COMP,
+ 28, 0,
+ 148, 0,
+
+ 15,
+ 0x00, 0x00, 0x00,
+ 0x0e, 0x0d, 0x00,
+ 0x1c, 0x1a, 0x01,
+ 0x2a, 0x28, 0x01,
+ 0x38, 0x35, 0x01,
+ 0x46, 0x42, 0x01,
+ 0x54, 0x4f, 0x02,
+ 0x62, 0x5c, 0x02,
+ 0x70, 0x6a, 0x02,
+ 0x7e, 0x77, 0x02,
+ 0x8c, 0x84, 0x03,
+ 0x9a, 0x91, 0x03,
+ 0xa8, 0x9e, 0x03,
+ 0xb6, 0xac, 0x03,
+ 0xc4, 0xb9, 0x04,
+ 0xd2, 0xc6, 0x04,
+
+ 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x37, 0x10, 0xbb, 0x32,
+ 0x20, 0x07, 0x1b, 0xff, 0xff, 0x46, 0x40, 0xe6, 0x07, 0xbf, 0xff, 0xff,
+ 0x47, 0xff, 0x50, 0x80, 0x1d, 0x05, 0xff, 0xff, 0xff, 0x49, 0xff, 0xd0,
+ 0x80, 0x1d, 0x08, 0xff, 0xe6, 0xff, 0x48, 0xff, 0xf2, 0x80, 0x25, 0x0b,
+ 0xff, 0x60, 0xff, 0x40, 0xdf, 0xf4, 0x84, 0x97, 0x40, 0xff, 0x40, 0xbf,
+ 0x96, 0x0a, 0xff, 0x08, 0xa0, 0xff, 0x43, 0xff, 0x26, 0x07, 0xff, 0xfd,
+ 0x08, 0xff, 0xcf, 0xff, 0xf0, 0x25, 0x01, 0xef, 0xff, 0x09, 0xff, 0xff,
+ 0xff, 0x90, 0x25, 0x00, 0x5f, 0x91, 0x20, 0xfc, 0x10, 0x96, 0x03, 0xaf,
+ 0xff, 0xfe, 0x71, 0x82, 0x2e, 0x02, 0x40, 0x01, 0x44, 0x30, 0x36, 0x00,
+ 0x10, 0x09, 0xfd, 0x70, 0xa7, 0x00, 0x00, 0x0b, 0xff, 0x41, 0xc0, 0x97,
+ 0x00, 0x00, 0x07, 0xff, 0xd1, 0x27, 0x81, 0x01, 0x7f, 0xfd, 0x74, 0x44,
+ 0x44, 0x40, 0x27, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x97, 0x97, 0x27,
+ 0x80, 0x26, 0x06, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0xf8, 0x25, 0x5d,
+ 0x97, 0x4f, 0x01, 0x02, 0x44, 0x44, 0x08, 0x44, 0x44, 0x44, 0x40, 0x05,
+ 0x07, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xf0, 0x97, 0x97, 0x27, 0x26,
+ 0x01, 0x06, 0xbb, 0xbb, 0xbb, 0xef, 0xfa, 0x70, 0x25, 0x88, 0x02, 0x09,
+ 0xff, 0x40, 0x97, 0x00, 0x00, 0x04, 0x20, 0xff, 0xd0, 0x25, 0x02, 0x44,
+ 0x44, 0x44, 0x5c, 0x20, 0xff, 0xf4, 0x25, 0x07, 0xff, 0xff, 0xff, 0xff,
+ 0xda, 0x97, 0x94, 0xf1, 0x27, 0x1a, 0x60, 0x25, 0x06, 0x07, 0xbb, 0xbb,
+ 0xbb, 0xbb, 0x84, 0x2d, 0x65, 0x96, 0x14, 0x02, 0x44, 0x30, 0xd9, 0x40,
+ 0x1d, 0x07, 0xff, 0x06, 0xb0, 0x00, 0x00, 0xdf, 0xf0, 0x97, 0x91, 0xcf,
+ 0x4a, 0xf4, 0x35, 0xff, 0xff, 0xe9, 0xff, 0x94, 0x01, 0x52, 0xdf, 0x8c,
+ 0xf3, 0x23, 0x00, 0x6f, 0x1c, 0xd0, 0xa4, 0x94, 0x0c, 0x23, 0xea, 0x20,
+ 0x24, 0x00, 0x07, 0x31, 0xff, 0xb0, 0xb5, 0x0a, 0x04, 0x77, 0x60, 0x97,
+ 0x82, 0x02, 0x24, 0x44, 0x44, 0x44, 0x80, 0x06, 0x3d, 0x04, 0xff, 0xff,
+ 0xff, 0xff, 0xf0, 0x05, 0x02, 0xef, 0xd8, 0x97, 0x01, 0x07, 0x2a, 0x27,
+ 0x0a, 0xff, 0xed, 0x08, 0xfe, 0xbe, 0xfe, 0x50, 0x25, 0x0b, 0xff, 0x53,
+ 0x08, 0xff, 0x01, 0xbf, 0x70, 0x97, 0x40, 0xdf, 0x50, 0x20, 0x5f, 0xe0,
+ 0x27, 0xa1, 0x9f, 0xa0, 0x5f, 0xf3, 0x80, 0x25, 0x08, 0xff, 0xf7, 0x7f,
+ 0xfc, 0xef, 0xf4, 0x81, 0x25, 0x05, 0xff, 0xf4, 0x3f, 0xff, 0xff, 0x26,
+ 0x01, 0x00, 0xcf, 0xf4, 0x0d, 0xff, 0xff, 0xd0, 0x96, 0x03, 0x17, 0xd0,
+ 0x03, 0xdf, 0xfd, 0x30, 0x26, 0x01, 0x2c, 0x04, 0x40, 0x2e, 0x02, 0xb7,
+ 0x0a, 0x09, 0xfd, 0x41, 0x70, 0x8f, 0x00, 0x00, 0x0b, 0xff, 0xc0, 0x1f,
+ 0x06, 0x00, 0x00, 0x07, 0xff, 0xd1, 0x27, 0x01, 0x7f, 0x04, 0xfd, 0x74,
+ 0x44, 0x44, 0x40, 0x27, 0xff, 0xff, 0x1e, 0xff, 0xff, 0xf0, 0x97, 0x97,
+ 0x27, 0x26, 0x06, 0x03, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xb0, 0x25, 0x5d,
+ 0x84, 0x97, 0x37, 0xbb, 0x32, 0x20, 0x2f, 0x1b, 0xff, 0x10, 0xff, 0x46,
+ 0xe6, 0x07, 0xbf, 0xff, 0xff, 0x47, 0x20, 0xff, 0x50, 0x1d, 0x05, 0xff,
+ 0xff, 0xff, 0x49, 0x20, 0xff, 0xd0, 0x1d, 0x08, 0xff, 0xe6, 0xff, 0x48,
+ 0x20, 0xff, 0xf2, 0x25, 0x0b, 0xff, 0x60, 0xff, 0x40, 0x21, 0xdf, 0xf4,
+ 0x97, 0x40, 0xff, 0x40, 0xbf, 0x96, 0x02, 0x0a, 0xff, 0xa0, 0xff, 0x43,
+ 0xff, 0x26, 0x07, 0x02, 0xff, 0xfd, 0xff, 0xcf, 0xff, 0xf0, 0x25, 0x01,
+ 0x02, 0xef, 0xff, 0xff, 0xff, 0xff, 0x90, 0x25, 0x00, 0x48, 0x5f, 0x91,
+ 0xfc, 0x10, 0x96, 0x03, 0xaf, 0xff, 0x20, 0xfe, 0x71, 0x2e, 0x00, 0x00,
+ 0x01, 0x44, 0x30, 0xe2, 0x9f, 0x57, 0x0d, 0x58, 0xbb, 0xb7, 0x1f, 0x00,
+ 0x02, 0x3d, 0xff, 0xff, 0xff, 0xfa, 0x10, 0x05, 0x02, 0x4a, 0xef, 0x91,
+ 0xff, 0x80, 0x1d, 0x09, 0x9a, 0xff, 0x40, 0xf1, 0x25, 0x0b, 0xff, 0xe8,
+ 0x44, 0x5a, 0xff, 0x40, 0xf4, 0x25, 0x0a, 0xff, 0x60, 0x00, 0x00, 0xcf,
+ 0x52, 0xf3, 0x25, 0x05, 0x92, 0xdf, 0xd0, 0x25, 0x00, 0x00, 0x9f, 0xe7,
+ 0x44, 0x5b, 0xff, 0x74, 0x44, 0x41, 0x84, 0x13, 0x07, 0xff, 0xff, 0xff,
+ 0xe9, 0xff, 0xf4, 0xf0, 0x97, 0x97, 0x27, 0x24, 0x06, 0xbb, 0xbb, 0xbb,
+ 0x9c, 0xe9, 0xbb, 0xb3, 0x23, 0x6b, 0xb7, 0x00, 0x00, 0x04, 0x34, 0x44,
+ 0x44, 0x44, 0x40, 0x36, 0x6e, 0xff, 0x0b, 0xff, 0xff, 0xff, 0xf0, 0x05,
+ 0x04, 0x9a, 0x97, 0x60, 0x0a, 0x97, 0x0a, 0x0b, 0xff, 0xfe, 0xbb, 0xbb,
+ 0x23, 0xbb, 0xb0, 0x25, 0x09, 0xff, 0xd1, 0x45, 0x0a, 0x18, 0x04, 0xff,
+ 0xc0, 0x97, 0x01, 0x6f, 0xfa, 0x44, 0x10, 0x44, 0x44, 0x40, 0x06, 0x7e,
+ 0xff, 0xff, 0xff, 0x2d, 0xff, 0xf0, 0x05, 0x05, 0x9a, 0x97, 0x0a, 0x97,
+ 0x80, 0x0a, 0x0b, 0xff, 0xfd, 0xbb, 0xbb, 0xbb, 0xb0, 0x8c, 0x25, 0x09,
+ 0xff, 0xd1, 0x45, 0x0a, 0x04, 0xff, 0x60, 0xc0, 0x97, 0x01, 0x6f, 0xfa,
+ 0x44, 0x44, 0x44, 0x40, 0x40, 0x05, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x78, 0xf0, 0x97, 0x97, 0x27, 0x26, 0x06, 0xbb, 0xbb, 0x0f, 0xbb, 0xbb,
+ 0xbb, 0xb0, 0x25, 0x5d, 0x97, 0x4f, 0x84, 0x03, 0x37, 0xbb, 0x32, 0x20,
+ 0x07, 0x1b, 0xff, 0x10, 0xff, 0x46, 0xe6, 0x07, 0xbf, 0xff, 0xff, 0x47,
+ 0x20, 0xff, 0x50, 0x1d, 0x05, 0xff, 0xff, 0xff, 0x49, 0x20, 0xff, 0xd0,
+ 0x1d, 0x08, 0xff, 0xe6, 0xff, 0x48, 0x20, 0xff, 0xf2, 0x25, 0x0b, 0xff,
+ 0x60, 0xff, 0x40, 0x21, 0xdf, 0xf4, 0x97, 0x40, 0xff, 0x40, 0xbf, 0x96,
+ 0x02, 0x0a, 0xff, 0xa0, 0xff, 0x43, 0xff, 0x26, 0x07, 0x02, 0xff, 0xfd,
+ 0xff, 0xcf, 0xff, 0xf0, 0x25, 0x01, 0x02, 0xef, 0xff, 0xff, 0xff, 0xff,
+ 0x90, 0x25, 0x00, 0x48, 0x5f, 0x91, 0xfc, 0x10, 0x96, 0x03, 0xaf, 0xff,
+ 0x20, 0xfe, 0x71, 0x2c, 0x0b, 0xff, 0xf0, 0x00, 0x01, 0x3f, 0x44, 0x30,
+ 0x35, 0x92, 0xad, 0x97, 0x97, 0x27, 0x80, 0x24, 0xf7, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x70, 0x93, 0x25, 0xff, 0xff, 0xe9, 0xff, 0xf0, 0x97, 0x97,
+ 0xff, 0x27, 0x27, 0x27, 0x22, 0x54, 0x2b, 0x97, 0x97, 0xe3, 0x27, 0x27,
+ 0x05, 0x06, 0x77, 0x70, 0x27, 0x4f, 0xf0, 0x77, 0x2f, 0x07, 0x07,
+};
+
+//*****************************************************************************
+//
+// Green horizontal slider image.
+//
+//*****************************************************************************
+const uint8_t g_pui8GreenSlider195x37[] =
+{
+ IMAGE_FMT_8BPP_COMP,
+ 195, 0,
+ 37, 0,
+
+ 63,
+ 0x04, 0x04, 0x04,
+ 0x16, 0x16, 0x16,
+ 0x01, 0x29, 0x01,
+ 0x20, 0x21, 0x20,
+ 0x01, 0x3a, 0x01,
+ 0x17, 0x35, 0x17,
+ 0x2d, 0x2e, 0x2d,
+ 0x01, 0x50, 0x01,
+ 0x23, 0x43, 0x23,
+ 0x3a, 0x3a, 0x3a,
+ 0x01, 0x67, 0x01,
+ 0x2e, 0x4c, 0x2e,
+ 0x1a, 0x63, 0x1a,
+ 0x4b, 0x4b, 0x4b,
+ 0x02, 0x7e, 0x02,
+ 0x2f, 0x65, 0x2f,
+ 0x19, 0x76, 0x19,
+ 0x46, 0x59, 0x46,
+ 0x02, 0x8b, 0x02,
+ 0x02, 0x97, 0x02,
+ 0x5a, 0x5a, 0x5a,
+ 0x17, 0x90, 0x17,
+ 0x50, 0x6c, 0x50,
+ 0x02, 0xa3, 0x02,
+ 0x05, 0xa4, 0x05,
+ 0x0a, 0xa6, 0x0a,
+ 0x68, 0x68, 0x68,
+ 0x0f, 0xa8, 0x0f,
+ 0x13, 0xa9, 0x13,
+ 0x1f, 0xad, 0x1f,
+ 0x38, 0x9c, 0x38,
+ 0x73, 0x73, 0x73,
+ 0x6b, 0x7c, 0x6b,
+ 0x2a, 0xb1, 0x2a,
+ 0x7c, 0x7e, 0x7c,
+ 0x33, 0xb5, 0x33,
+ 0x4d, 0xa5, 0x4d,
+ 0x6d, 0x93, 0x6d,
+ 0x56, 0xa4, 0x56,
+ 0x63, 0xa0, 0x63,
+ 0x42, 0xba, 0x42,
+ 0x89, 0x89, 0x89,
+ 0x56, 0xb7, 0x56,
+ 0x4e, 0xbf, 0x4e,
+ 0x91, 0x91, 0x91,
+ 0x8f, 0x95, 0x8f,
+ 0x59, 0xc3, 0x59,
+ 0x71, 0xb9, 0x71,
+ 0x9e, 0x9e, 0x9e,
+ 0x64, 0xc7, 0x64,
+ 0x87, 0xb4, 0x87,
+ 0x6c, 0xca, 0x6c,
+ 0xa8, 0xa8, 0xa8,
+ 0x75, 0xcd, 0x75,
+ 0x7b, 0xcf, 0x7b,
+ 0x82, 0xd2, 0x82,
+ 0x8d, 0xcf, 0x8d,
+ 0x8b, 0xd5, 0x8b,
+ 0x98, 0xce, 0x98,
+ 0x92, 0xd7, 0x92,
+ 0x95, 0xd8, 0x95,
+ 0x9c, 0xdb, 0x9c,
+ 0xa3, 0xdc, 0xa3,
+ 0xa9, 0xe0, 0xa9,
+
+ 0x80, 0x07, 0x06, 0x20, 0x32, 0x3a, 0x3d, 0x3d, 0x3c, 0x0f, 0x3c, 0x3b,
+ 0x3b, 0x3b, 0xe9, 0xd4, 0xa7, 0x5f, 0xff, 0x17, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xfc, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x39, 0x39,
+ 0x00, 0x39, 0x37, 0x2f, 0x27, 0x16, 0x0b, 0x03, 0x00, 0x38, 0x00, 0x00,
+ 0xe9, 0xd4, 0xa7, 0x0b, 0x32, 0x3e, 0x00, 0x3f, 0x3e, 0x3d, 0x3d, 0x3c,
+ 0x3b, 0x3b, 0x39, 0x3f, 0x39, 0x39, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07,
+ 0x07, 0x07, 0x37, 0x37, 0x37, 0x36, 0x00, 0x35, 0x33, 0x31, 0x24, 0x0f,
+ 0x05, 0x01, 0x00, 0x38, 0x00, 0x00, 0xe9, 0xd4, 0xa3, 0x25, 0x3e, 0x3f,
+ 0x00, 0x3f, 0x3e, 0x3d, 0x3c, 0x3b, 0x39, 0x39, 0x37, 0x3f, 0x37, 0x37,
+ 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07, 0x07, 0x07, 0x37, 0x36, 0x36, 0x35,
+ 0x00, 0x35, 0x33, 0x31, 0x2e, 0x2b, 0x28, 0x1e, 0x0f, 0x06, 0x01, 0x01,
+ 0x00, 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x00, 0x03, 0x32, 0x3f, 0x3f, 0x3f,
+ 0x3e, 0x3d, 0x3b, 0x00, 0x39, 0x37, 0x37, 0x36, 0x36, 0x35, 0x35, 0x35,
+ 0xff, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07, 0x35, 0x33, 0x33,
+ 0x33, 0x31, 0x2e, 0x00, 0x2e, 0x2b, 0x28, 0x23, 0x21, 0x10, 0x05, 0x01,
+ 0x0c, 0x01, 0x00, 0x00, 0x00, 0xe9, 0xd2, 0x03, 0x32, 0x00, 0x3f, 0x3f,
+ 0x3e, 0x3d, 0x3c, 0x39, 0x37, 0x36, 0x03, 0x35, 0x33, 0x33, 0x31, 0x31,
+ 0x31, 0xe9, 0xd4, 0xff, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x80, 0x02, 0x2e,
+ 0x2e, 0x2e, 0x2b, 0x28, 0x23, 0x21, 0x00, 0x1d, 0x1c, 0x10, 0x06, 0x03,
+ 0x01, 0x00, 0x00, 0x60, 0x00, 0xe9, 0xd1, 0x32, 0x3e, 0x3e, 0x3e, 0x3d,
+ 0x08, 0x3b, 0x37, 0x36, 0x33, 0x01, 0x2b, 0x2b, 0x2b, 0xff, 0xe9, 0xd4,
+ 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07, 0x05, 0x28, 0x28, 0x28, 0x23, 0x21,
+ 0x00, 0x1c, 0x19, 0x17, 0x10, 0x06, 0x03, 0x01, 0x00, 0x20, 0x00, 0x00,
+ 0xe9, 0x00, 0x25, 0x3d, 0x3d, 0x3d, 0x04, 0x3c, 0x39, 0x37, 0x33, 0x31,
+ 0x12, 0x23, 0x23, 0x7f, 0x23, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07,
+ 0x07, 0x07, 0x23, 0x21, 0x1d, 0x1b, 0x00, 0x17, 0x13, 0x13, 0x0f, 0x06,
+ 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x38, 0x3c, 0x3b,
+ 0x02, 0x3b, 0x37, 0x36, 0x31, 0x2b, 0x28, 0x31, 0x1d, 0x1f, 0x1c, 0x1c,
+ 0x1c, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xfc, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x1d, 0x1d,
+ 0x40, 0x1d, 0xe9, 0x1c, 0x18, 0x17, 0x13, 0x12, 0x10, 0x00, 0x0b, 0x06,
+ 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x39, 0x39, 0x39, 0x37,
+ 0x35, 0x31, 0x2b, 0x00, 0x23, 0x21, 0x1c, 0x1b, 0x19, 0x18, 0x18, 0x17,
+ 0x3f, 0x17, 0x17, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07, 0x07, 0x07, 0x17,
+ 0x17, 0x18, 0x18, 0x00, 0x19, 0x19, 0x1b, 0x1c, 0x1c, 0x1c, 0x19, 0x17,
+ 0x00, 0x13, 0x12, 0x12, 0x0e, 0x0f, 0x09, 0x06, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x36, 0x37, 0x36, 0x36, 0x00, 0x33, 0x31, 0x2b, 0x23, 0x1d,
+ 0x1c, 0x19, 0x18, 0x0f, 0x18, 0x17, 0x17, 0x17, 0xe9, 0xd4, 0xa7, 0x5f,
+ 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x05, 0x18, 0x00, 0x18, 0x19, 0x19, 0x19, 0x17,
+ 0x13, 0x13, 0x12, 0x00, 0x0e, 0x0e, 0x10, 0x11, 0x09, 0x03, 0x01, 0x00,
+ 0x00, 0x00, 0x16, 0x35, 0x35, 0x35, 0x33, 0x31, 0x2b, 0x00, 0x23, 0x1d,
+ 0x1c, 0x19, 0x18, 0x17, 0x17, 0x17, 0xff, 0xe9, 0xd4, 0xa7, 0x5f, 0x17,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xe0, 0x07, 0x07, 0x07, 0x17, 0x17, 0x18, 0x18, 0x18, 0x00, 0x17, 0x13,
+ 0x12, 0x0e, 0x0e, 0x0a, 0x0a, 0x16, 0x00, 0x0d, 0x06, 0x01, 0x00, 0x00,
+ 0x26, 0x33, 0x31, 0x00, 0x31, 0x2e, 0x2b, 0x28, 0x21, 0x1c, 0x19, 0x18,
+ 0xff, 0x03, 0xdb, 0xb7, 0x6f, 0x27, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07, 0x07, 0x07, 0x13,
+ 0x12, 0x0e, 0x0a, 0x00, 0x0a, 0x0a, 0x0f, 0x14, 0x09, 0x03, 0x01, 0x00,
+ 0x00, 0x2a, 0x2e, 0x2e, 0x2e, 0x2b, 0x28, 0x23, 0x1d, 0x3f, 0x1b, 0x18,
+ 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x17, 0x13, 0x12,
+ 0x00, 0x0e, 0x0e, 0x0a, 0x0a, 0x07, 0x0c, 0x1a, 0x0d, 0x00, 0x06, 0x01,
+ 0x00, 0x2b, 0x2b, 0x2b, 0x2b, 0x28, 0x07, 0x23, 0x21, 0x1c, 0x19, 0x18,
+ 0x07, 0xbf, 0x77, 0xff, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x17, 0x13,
+ 0x12, 0x0e, 0x0a, 0x0a, 0x07, 0x07, 0x00, 0x07, 0x1f, 0x14, 0x09, 0x03,
+ 0x00, 0x28, 0x28, 0x01, 0x28, 0x28, 0x28, 0x23, 0x1d, 0x1c, 0x18, 0x07,
+ 0xff, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07, 0x17, 0x17, 0x13,
+ 0x12, 0x0e, 0x0a, 0x00, 0x0a, 0x07, 0x07, 0x04, 0x22, 0x14, 0x09, 0x03,
+ 0x00, 0x01, 0x23, 0x23, 0x23, 0x23, 0x23, 0x21, 0x1d, 0x3f, 0x1b, 0x18,
+ 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x17, 0x17, 0x13,
+ 0x00, 0x12, 0x0e, 0x0a, 0x07, 0x07, 0x04, 0x04, 0x29, 0x00, 0x1a, 0x09,
+ 0x03, 0x01, 0x21, 0x21, 0x21, 0x21, 0x0f, 0x21, 0x1d, 0x1c, 0x19, 0x07,
+ 0xbf, 0x77, 0x2f, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x01, 0x00, 0x13, 0x0e,
+ 0x0a, 0x0a, 0x07, 0x04, 0x04, 0x05, 0x00, 0x29, 0x1a, 0x0d, 0x06, 0x01,
+ 0x1d, 0x1d, 0x1d, 0x07, 0x1d, 0x1d, 0x1c, 0x1c, 0x19, 0x07, 0xbf, 0x77,
+ 0xff, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x17, 0x17, 0x13, 0x12, 0x0e,
+ 0x0a, 0x07, 0x04, 0x00, 0x04, 0x02, 0x0b, 0x29, 0x1a, 0x0d, 0x06, 0x01,
+ 0x00, 0x15, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x19, 0x18, 0xff, 0x07, 0xbf,
+ 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07, 0x07, 0x17, 0x13, 0x13, 0x0e, 0x0a,
+ 0x00, 0x07, 0x07, 0x04, 0x02, 0x02, 0x11, 0x29, 0x1a, 0x0f, 0x0d, 0x06,
+ 0x01, 0x10, 0x07, 0xbf, 0x77, 0x2f, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05,
+ 0x00, 0x13, 0x13, 0x12, 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x00, 0x02, 0x02,
+ 0x20, 0x29, 0x1a, 0x0d, 0x06, 0x01, 0x09, 0x08, 0x13, 0x13, 0x13, 0xe9,
+ 0x13, 0x13, 0x05, 0xff, 0xcd, 0x97, 0x4f, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07,
+ 0x17, 0x17, 0x13, 0x13, 0x12, 0x0e, 0x00, 0x0a, 0x07, 0x04, 0x02, 0x02,
+ 0x02, 0x08, 0x2d, 0x00, 0x29, 0x1a, 0x09, 0x03, 0x01, 0x03, 0x10, 0x12,
+ 0x23, 0x12, 0x12, 0xe9, 0x13, 0x13, 0x13, 0x02, 0xe2, 0xff, 0xc6, 0x87,
+ 0x3f, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xc0, 0x07, 0x03, 0x13, 0x13, 0x12, 0x12, 0x0e, 0x0a,
+ 0x00, 0x07, 0x04, 0x02, 0x02, 0x02, 0x02, 0x16, 0x30, 0x00, 0x22, 0x14,
+ 0x09, 0x03, 0x01, 0x03, 0x0b, 0x0e, 0x20, 0x0e, 0x0e, 0xe9, 0x0e, 0x12,
+ 0x12, 0x12, 0x13, 0x3f, 0x13, 0x13, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07,
+ 0x07, 0x07, 0x05, 0x12, 0x12, 0x0e, 0x00, 0x0e, 0x0a, 0x0a, 0x07, 0x04,
+ 0x02, 0x02, 0x02, 0x00, 0x02, 0x08, 0x2d, 0x2c, 0x1f, 0x14, 0x09, 0x03,
+ 0x0a, 0x00, 0x01, 0x06, 0x0c, 0x61, 0x0a, 0xe9, 0x0e, 0x3f, 0x0e, 0x0e,
+ 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x0a, 0x0a,
+ 0x00, 0x0a, 0x07, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x20,
+ 0x30, 0x29, 0x1a, 0x0d, 0x06, 0x01, 0x07, 0x00, 0x01, 0x06, 0x0d, 0x0c,
+ 0x49, 0x31, 0xd4, 0xff, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x05,
+ 0x07, 0x07, 0x07, 0x04, 0x02, 0x02, 0x40, 0x02, 0xe9, 0x16, 0x34, 0x2c,
+ 0x22, 0x14, 0x09, 0x00, 0x03, 0x01, 0x00, 0x01, 0x03, 0x09, 0x11, 0x0c,
+ 0xff, 0x41, 0x29, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x03,
+ 0x04, 0x04, 0x04, 0x10, 0x02, 0x02, 0x02, 0xe9, 0x02, 0x16, 0x30, 0x30,
+ 0x00, 0x29, 0x1a, 0x0d, 0x06, 0x01, 0x00, 0x00, 0x00, 0x07, 0x01, 0x06,
+ 0x09, 0x11, 0x0c, 0x23, 0x09, 0xd4, 0xff, 0xa7, 0x5f, 0x17, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x83, 0x07, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe9, 0xd1, 0x00, 0x16, 0x30,
+ 0x30, 0x29, 0x1f, 0x14, 0x09, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x06, 0x0d, 0x3f, 0x1a, 0x0f, 0x17, 0xd4, 0xa7, 0x5f, 0x17, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfc, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x05, 0x08, 0x20, 0x00, 0x34, 0x30, 0x2c, 0x1f, 0x14,
+ 0x09, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x09,
+ 0x0f, 0x0d, 0x1a, 0x16, 0x08, 0x07, 0xbf, 0x77, 0x2f, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x08, 0x00, 0x16, 0x2d, 0x34, 0x30, 0x29, 0x1f, 0x14, 0x0d,
+ 0x02, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0xe9, 0x01, 0x00, 0x03, 0x09,
+ 0x0d, 0x1a, 0x22, 0x20, 0x11, 0x08, 0x7f, 0x05, 0x02, 0xe2, 0xc6, 0x87,
+ 0x3f, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xf8, 0x07, 0x07, 0x07, 0x07, 0x01, 0x05, 0x0b, 0x16, 0x00, 0x22, 0x30,
+ 0x34, 0x30, 0x2c, 0x29, 0x1f, 0x14, 0x01, 0x0d, 0x06, 0x03, 0x01, 0x00,
+ 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x01, 0x03, 0x09, 0x0d, 0x14, 0x1f,
+ 0x01, 0x22, 0x2c, 0x30, 0x30, 0x34, 0x34, 0x34, 0xe9, 0xff, 0xd4, 0xa7,
+ 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07, 0x30, 0x30, 0x2c, 0x29, 0x22, 0x1a,
+ 0x00, 0x14, 0x09, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xe9, 0xd2,
+ 0x01, 0x03, 0x06, 0x09, 0x0d, 0x1a, 0x01, 0x1f, 0x22, 0x29, 0x29, 0x2c,
+ 0x2c, 0x2c, 0xe9, 0xff, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x05,
+ 0x29, 0x29, 0x22, 0x1f, 0x1a, 0x14, 0x00, 0x0d, 0x09, 0x06, 0x03, 0x01,
+ 0x00, 0x00, 0x00, 0xc0, 0xe9, 0xd4, 0x01, 0x01, 0x06, 0x09, 0x0d, 0x0d,
+ 0x03, 0x14, 0x1a, 0x1a, 0x1f, 0x1f, 0x1f, 0xe9, 0xd4, 0xff, 0xa7, 0x5f,
+ 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x80, 0x05, 0x1a, 0x1a, 0x14, 0x14, 0x0d, 0x09, 0x06,
+ 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x03, 0x06, 0x06, 0x09, 0x0f, 0x09, 0x0d, 0x0d, 0x0d, 0xe9,
+ 0xd4, 0xa7, 0x5f, 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xfe, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x09, 0x00, 0x09, 0x09,
+ 0x06, 0x03, 0x01, 0x01, 0x00, 0x00, 0x70, 0x00, 0xe9, 0xd4, 0xa4, 0x01,
+ 0x01, 0x01, 0x03, 0x0f, 0x03, 0x06, 0x06, 0x06, 0xe9, 0xd4, 0xa7, 0x5f,
+ 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x03, 0x03, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0xe9, 0xc1, 0xd4, 0xa7, 0x00, 0x00, 0x01, 0x01, 0x01, 0xe9,
+ 0xff, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xe3, 0x07, 0x07, 0x02, 0x00, 0x00,
+ 0x00, 0xe9, 0xd4, 0xff, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfc, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x06,
+};
+
+//*****************************************************************************
+//
+// Red horizontal slider image.
+//
+//*****************************************************************************
+const uint8_t g_pui8RedSlider195x37[] =
+{
+ IMAGE_FMT_8BPP_COMP,
+ 195, 0,
+ 37, 0,
+
+ 63,
+ 0x04, 0x04, 0x04,
+ 0x00, 0x00, 0x40,
+ 0x16, 0x16, 0x16,
+ 0x00, 0x00, 0x5b,
+ 0x0c, 0x0c, 0x48,
+ 0x23, 0x23, 0x23,
+ 0x00, 0x00, 0x7c,
+ 0x20, 0x20, 0x35,
+ 0x15, 0x15, 0x52,
+ 0x00, 0x00, 0x93,
+ 0x2e, 0x2e, 0x2e,
+ 0x00, 0x00, 0xa1,
+ 0x00, 0x00, 0xb4,
+ 0x27, 0x27, 0x59,
+ 0x00, 0x00, 0xc7,
+ 0x14, 0x14, 0x9d,
+ 0x3d, 0x3d, 0x3e,
+ 0x25, 0x25, 0x79,
+ 0x00, 0x00, 0xd9,
+ 0x1f, 0x1f, 0xa3,
+ 0x00, 0x00, 0xec,
+ 0x13, 0x13, 0xc3,
+ 0x00, 0x00, 0xf3,
+ 0x00, 0x00, 0xfa,
+ 0x30, 0x30, 0x8a,
+ 0x4c, 0x4c, 0x4c,
+ 0x00, 0x00, 0xff,
+ 0x46, 0x46, 0x65,
+ 0x05, 0x05, 0xff,
+ 0x0b, 0x0b, 0xff,
+ 0x11, 0x11, 0xff,
+ 0x5a, 0x5a, 0x5a,
+ 0x50, 0x50, 0x7e,
+ 0x21, 0x21, 0xff,
+ 0x36, 0x36, 0xd5,
+ 0x68, 0x68, 0x68,
+ 0x32, 0x32, 0xff,
+ 0x73, 0x73, 0x73,
+ 0x6b, 0x6b, 0x88,
+ 0x51, 0x51, 0xd4,
+ 0x67, 0x67, 0xb6,
+ 0x4c, 0x4c, 0xff,
+ 0x55, 0x55, 0xef,
+ 0x85, 0x85, 0x85,
+ 0x5a, 0x5a, 0xff,
+ 0x8e, 0x8e, 0x96,
+ 0x91, 0x91, 0x91,
+ 0x63, 0x63, 0xff,
+ 0x70, 0x70, 0xe3,
+ 0x93, 0x93, 0x9e,
+ 0x6b, 0x6b, 0xff,
+ 0x9b, 0x9b, 0x9b,
+ 0x86, 0x86, 0xcd,
+ 0x74, 0x74, 0xff,
+ 0xa0, 0xa0, 0xa2,
+ 0x7a, 0x7a, 0xfe,
+ 0x81, 0x81, 0xff,
+ 0xa8, 0xa8, 0xa8,
+ 0x8c, 0x8c, 0xf6,
+ 0x8a, 0x8a, 0xff,
+ 0x97, 0x97, 0xee,
+ 0x91, 0x91, 0xff,
+ 0x9a, 0x9a, 0xff,
+ 0xa5, 0xa5, 0xfe,
+
+ 0x80, 0x07, 0x07, 0x26, 0x34, 0x3c, 0x3e, 0x3e, 0x3e, 0x1f, 0x3d, 0x3d,
+ 0x3d, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x3b, 0x3b, 0x3b,
+ 0x00, 0x38, 0x30, 0x28, 0x20, 0x0d, 0x02, 0x00, 0x00, 0x70, 0x00, 0xe9,
+ 0xd4, 0xa7, 0x10, 0x34, 0x3f, 0x3f, 0x00, 0x3f, 0x3e, 0x3e, 0x3d, 0x3d,
+ 0x3d, 0x3b, 0x3b, 0x7f, 0x3b, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07,
+ 0x07, 0x38, 0x38, 0x38, 0x37, 0x35, 0x00, 0x32, 0x2f, 0x27, 0x18, 0x07,
+ 0x02, 0x00, 0x00, 0x70, 0x00, 0xe9, 0xd4, 0xa3, 0x28, 0x3f, 0x3f, 0x3f,
+ 0x00, 0x3f, 0x3e, 0x3e, 0x3d, 0x3b, 0x3b, 0x38, 0x38, 0x7f, 0x38, 0xe9,
+ 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07, 0x07, 0x38, 0x37, 0x37, 0x35, 0x35,
+ 0x00, 0x32, 0x2f, 0x2c, 0x29, 0x29, 0x22, 0x11, 0x02, 0x0c, 0x02, 0x00,
+ 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x07, 0x00, 0x34, 0x3f, 0x3f, 0x3f, 0x3f,
+ 0x3e, 0x3d, 0x3b, 0x01, 0x38, 0x38, 0x37, 0x37, 0x35, 0x35, 0x35, 0xe9,
+ 0xff, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x80, 0x07, 0x35, 0x32, 0x32, 0x32,
+ 0x2f, 0x2c, 0x2c, 0x00, 0x29, 0x24, 0x24, 0x21, 0x13, 0x07, 0x02, 0x02,
+ 0x18, 0x00, 0x00, 0x00, 0xe9, 0xd2, 0x07, 0x34, 0x3f, 0x00, 0x3f, 0x3f,
+ 0x3e, 0x3e, 0x3b, 0x38, 0x37, 0x35, 0x07, 0x32, 0x32, 0x2f, 0x2f, 0x2f,
+ 0xe9, 0xd4, 0xa7, 0xff, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x01, 0x00, 0x2c, 0x2c,
+ 0x2c, 0x2c, 0x29, 0x29, 0x24, 0x24, 0x00, 0x21, 0x1e, 0x13, 0x07, 0x02,
+ 0x02, 0x00, 0x00, 0x60, 0x00, 0xe9, 0xd1, 0x34, 0x3f, 0x3f, 0x3e, 0x3e,
+ 0x05, 0x3d, 0x38, 0x37, 0x32, 0x2f, 0x0a, 0x29, 0xe9, 0xff, 0xd4, 0xa7,
+ 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07, 0x24, 0x24, 0x21, 0x1e, 0x1d, 0x1a,
+ 0x01, 0x13, 0x0a, 0x05, 0x02, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x28,
+ 0x3e, 0x3e, 0x3e, 0x3d, 0x3b, 0x38, 0x2f, 0x32, 0x2f, 0x1b, 0x24, 0xe9,
+ 0xd4, 0xa7, 0x5f, 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xfe, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x24, 0x00, 0x24, 0x21,
+ 0x21, 0x1e, 0x1a, 0x16, 0x14, 0x18, 0x00, 0x0a, 0x05, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0d, 0x3a, 0x3d, 0x3d, 0x3d, 0x38, 0x37, 0x2f,
+ 0x27, 0x29, 0x29, 0x32, 0x1e, 0x1e, 0xe9, 0xd4, 0xa7, 0xff, 0x5f, 0x17,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x05, 0x00, 0x21, 0x21, 0x21, 0x21, 0x21, 0x1e, 0x1c, 0x16,
+ 0x00, 0x14, 0x12, 0x15, 0x1b, 0x0a, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x28, 0x3b, 0x3b, 0x3b, 0x38, 0x00, 0x35, 0x2f, 0x29, 0x24, 0x21,
+ 0x1e, 0x1e, 0x1d, 0x0f, 0x1c, 0x1a, 0x1a, 0x1a, 0xe9, 0xd4, 0xa7, 0x5f,
+ 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x02, 0x1c, 0x00, 0x1c, 0x1d, 0x1d, 0x1e, 0x1e,
+ 0x1e, 0x1c, 0x17, 0x00, 0x14, 0x12, 0x12, 0x0e, 0x18, 0x10, 0x0a, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x37, 0x38, 0x37, 0x37, 0x00, 0x32, 0x2f,
+ 0x29, 0x24, 0x21, 0x1e, 0x1d, 0x1c, 0x1f, 0x1a, 0x1a, 0x1a, 0xe9, 0xd4,
+ 0xa7, 0x5f, 0x17, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xfc, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x1c, 0x1c, 0x00, 0x1c, 0x1d,
+ 0x1c, 0x1a, 0x16, 0x14, 0x12, 0x0e, 0x00, 0x0c, 0x0f, 0x1b, 0x10, 0x05,
+ 0x02, 0x00, 0x00, 0x00, 0x20, 0x35, 0x35, 0x35, 0x32, 0x2c, 0x29, 0x24,
+ 0x27, 0x21, 0x1e, 0x39, 0x1a, 0x1a, 0xe9, 0xd4, 0xa7, 0xff, 0x5f, 0x17,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x00, 0x1a, 0x1a, 0x1c, 0x1c, 0x1a, 0x17, 0x14, 0x12,
+ 0x00, 0x0e, 0x0c, 0x0c, 0x0b, 0x20, 0x19, 0x0a, 0x02, 0x00, 0x00, 0x00,
+ 0x27, 0x32, 0x2f, 0x2f, 0x2c, 0x29, 0x07, 0x24, 0x21, 0x1e, 0x1d, 0x1c,
+ 0x03, 0xdb, 0xb7, 0xff, 0x6f, 0x27, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x80, 0x06, 0x16,
+ 0x14, 0x12, 0x0e, 0x0c, 0x0b, 0x09, 0x00, 0x18, 0x1f, 0x10, 0x05, 0x02,
+ 0x00, 0x2a, 0x2c, 0x00, 0x2c, 0x2c, 0x29, 0x29, 0x24, 0x21, 0x1d, 0x1c,
+ 0xff, 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07, 0x07, 0x1a, 0x16,
+ 0x12, 0x0e, 0x0c, 0x00, 0x0b, 0x09, 0x09, 0x11, 0x23, 0x19, 0x0a, 0x02,
+ 0x00, 0x00, 0x29, 0x29, 0x29, 0x29, 0x29, 0x24, 0x21, 0x3f, 0x1e, 0x1c,
+ 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x1a, 0x1a, 0x16,
+ 0x00, 0x12, 0x0e, 0x0c, 0x0b, 0x09, 0x06, 0x06, 0x25, 0x00, 0x1f, 0x0a,
+ 0x02, 0x00, 0x29, 0x29, 0x29, 0x29, 0x07, 0x24, 0x24, 0x21, 0x1e, 0x1c,
+ 0x07, 0xbf, 0x77, 0xff, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x1a, 0x17,
+ 0x14, 0x12, 0x0e, 0x0b, 0x09, 0x06, 0x00, 0x06, 0x03, 0x2b, 0x1f, 0x10,
+ 0x05, 0x02, 0x24, 0x01, 0x24, 0x24, 0x24, 0x24, 0x21, 0x21, 0x1d, 0x07,
+ 0xff, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xc0, 0x07, 0x07, 0x1a, 0x1a, 0x17,
+ 0x14, 0x0e, 0x0c, 0x00, 0x0b, 0x06, 0x06, 0x03, 0x03, 0x2b, 0x23, 0x10,
+ 0x00, 0x05, 0x02, 0x24, 0x24, 0x21, 0x21, 0x21, 0x21, 0x3f, 0x1e, 0x1d,
+ 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x1a, 0x17, 0x16,
+ 0x00, 0x14, 0x0e, 0x0c, 0x09, 0x06, 0x03, 0x03, 0x08, 0x00, 0x2b, 0x23,
+ 0x19, 0x05, 0x02, 0x21, 0x21, 0x21, 0x07, 0x21, 0x21, 0x1e, 0x1e, 0x1c,
+ 0x07, 0xbf, 0x77, 0xff, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x1a, 0x17,
+ 0x14, 0x12, 0x0c, 0x0b, 0x06, 0x03, 0x00, 0x03, 0x01, 0x0d, 0x2e, 0x23,
+ 0x19, 0x0a, 0x02, 0x0b, 0x15, 0x1d, 0x1d, 0x1d, 0xe9, 0x1c, 0x07, 0xbf,
+ 0xff, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x80, 0x07, 0x17, 0x16, 0x14, 0x0e,
+ 0x0b, 0x09, 0x06, 0x00, 0x03, 0x01, 0x01, 0x1b, 0x2e, 0x23, 0x19, 0x0a,
+ 0x03, 0x02, 0x0f, 0x17, 0x17, 0x17, 0x17, 0x49, 0xda, 0xff, 0x02, 0xd4,
+ 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07, 0x07, 0x01, 0x17, 0x16, 0x14, 0x12,
+ 0x00, 0x0c, 0x09, 0x06, 0x03, 0x01, 0x01, 0x01, 0x26, 0x00, 0x2b, 0x23,
+ 0x19, 0x05, 0x02, 0x0d, 0x14, 0x14, 0x41, 0x14, 0xe9, 0x16, 0x16, 0x16,
+ 0x17, 0x17, 0x01, 0xff, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07,
+ 0x06, 0x17, 0x17, 0x16, 0x14, 0x12, 0x00, 0x0e, 0x0b, 0x06, 0x03, 0x01,
+ 0x01, 0x01, 0x0d, 0x00, 0x2d, 0x2b, 0x23, 0x10, 0x05, 0x02, 0x05, 0x15,
+ 0x10, 0x12, 0x12, 0x12, 0xe9, 0x14, 0x14, 0x16, 0x16, 0x07, 0x17, 0x17,
+ 0x1a, 0x1a, 0x1a, 0xe9, 0xd4, 0xa7, 0xff, 0x5f, 0x17, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02,
+ 0x00, 0x17, 0x17, 0x16, 0x14, 0x12, 0x12, 0x0c, 0x0b, 0x00, 0x06, 0x03,
+ 0x01, 0x01, 0x01, 0x01, 0x20, 0x33, 0x00, 0x2b, 0x1f, 0x10, 0x05, 0x02,
+ 0x05, 0x0d, 0x0e, 0x20, 0x0e, 0x0e, 0xe9, 0x0e, 0x12, 0x12, 0x12, 0x14,
+ 0x3f, 0x14, 0x14, 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x05,
+ 0x12, 0x12, 0x0e, 0x00, 0x0e, 0x0c, 0x09, 0x06, 0x03, 0x01, 0x01, 0x01,
+ 0x00, 0x01, 0x0d, 0x2d, 0x2e, 0x25, 0x1f, 0x0a, 0x02, 0x01, 0x00, 0x02,
+ 0x0a, 0x13, 0x0c, 0x0c, 0x0c, 0xe9, 0x8f, 0xd1, 0x0e, 0x0e, 0x0e, 0xe9,
+ 0xd4, 0xa7, 0x5f, 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xfe, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x0c, 0x00, 0x0c, 0x0b,
+ 0x09, 0x06, 0x03, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x26, 0x36,
+ 0x2b, 0x23, 0x19, 0x00, 0x0a, 0x02, 0x00, 0x02, 0x05, 0x10, 0x0f, 0x0b,
+ 0x00, 0x0b, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0b, 0x0b, 0x7f, 0x0b, 0xe9,
+ 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf0, 0x07, 0x07, 0x07, 0x05, 0x09, 0x09, 0x06, 0x06,
+ 0x04, 0x06, 0x03, 0x01, 0x01, 0x01, 0xe9, 0x20, 0x39, 0x00, 0x2e, 0x25,
+ 0x1f, 0x10, 0x05, 0x02, 0x00, 0x02, 0x0f, 0x05, 0x0a, 0x1b, 0x0f, 0x3a,
+ 0x21, 0xd4, 0xa7, 0xff, 0x5f, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x81, 0x02, 0x03,
+ 0x03, 0x03, 0x01, 0x01, 0x01, 0xe9, 0x00, 0x01, 0x1b, 0x36, 0x33, 0x2b,
+ 0x23, 0x19, 0x0a, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x05, 0x10, 0x1b,
+ 0x7f, 0x11, 0x23, 0x09, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x03, 0x03, 0x01, 0x30, 0x01, 0x01, 0xe9, 0xd1, 0x20, 0x36, 0x36, 0x2e,
+ 0x00, 0x25, 0x1f, 0x10, 0x05, 0x02, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02,
+ 0x0a, 0x19, 0x23, 0x11, 0x17, 0xd4, 0xff, 0xa7, 0x5f, 0x17, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xc0, 0x07, 0x05, 0x0d, 0x26, 0x39, 0x36, 0x2e, 0x25, 0x00, 0x1f, 0x10,
+ 0x0a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0x0a, 0x19,
+ 0x23, 0x20, 0x0d, 0xff, 0x07, 0xbf, 0x77, 0x2f, 0x07, 0x07, 0x07, 0x07,
+ 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xe0, 0x07, 0x07,
+ 0x07, 0x0d, 0x20, 0x31, 0x39, 0x33, 0x00, 0x2e, 0x25, 0x1f, 0x19, 0x0a,
+ 0x02, 0x02, 0x00, 0x20, 0x00, 0x00, 0xe9, 0x02, 0x05, 0x10, 0x19, 0x23,
+ 0x07, 0x25, 0x25, 0x1b, 0x0d, 0x04, 0x02, 0xe2, 0xc6, 0xff, 0x87, 0x3f,
+ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x80, 0x01, 0x08, 0x0d, 0x20, 0x26, 0x36, 0x39, 0x36,
+ 0x00, 0x2e, 0x2b, 0x25, 0x1f, 0x19, 0x0a, 0x05, 0x02, 0x10, 0x00, 0x00,
+ 0x00, 0xe9, 0x00, 0x00, 0x02, 0x05, 0x00, 0x0a, 0x19, 0x1f, 0x25, 0x2b,
+ 0x2e, 0x33, 0x36, 0x0f, 0x36, 0x39, 0x39, 0x39, 0xe9, 0xd4, 0xa7, 0x5f,
+ 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x05, 0x36, 0x00, 0x36, 0x33, 0x2e, 0x2b, 0x25,
+ 0x23, 0x1f, 0x10, 0x03, 0x0a, 0x05, 0x02, 0x00, 0x00, 0x00, 0xe9, 0xd2,
+ 0x00, 0x02, 0x05, 0x0a, 0x10, 0x19, 0x23, 0x25, 0x25, 0x07, 0x2b, 0x2b,
+ 0x2e, 0x2e, 0x2e, 0xe9, 0xd4, 0xa7, 0xff, 0x5f, 0x17, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05,
+ 0x00, 0x2b, 0x2b, 0x2b, 0x25, 0x23, 0x1f, 0x19, 0x10, 0x03, 0x0a, 0x02,
+ 0x02, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x02, 0x02, 0x05, 0x0a, 0x10,
+ 0x19, 0x1f, 0x23, 0x0f, 0x23, 0x25, 0x25, 0x25, 0xe9, 0xd4, 0xa7, 0x5f,
+ 0xff, 0x17, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xfe, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0x07, 0x05, 0x23, 0x00, 0x23, 0x1f, 0x1f, 0x19, 0x10,
+ 0x0a, 0x05, 0x02, 0x0c, 0x02, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x00,
+ 0x00, 0x02, 0x02, 0x05, 0x05, 0x0a, 0x10, 0x10, 0x19, 0x3f, 0x19, 0x19,
+ 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x10, 0x10, 0x0a,
+ 0x01, 0x0a, 0x05, 0x02, 0x02, 0x00, 0x00, 0x00, 0xe9, 0xc0, 0xd4, 0xa4,
+ 0x02, 0x02, 0x02, 0x05, 0x05, 0x0a, 0x3f, 0x0a, 0x0a, 0xe9, 0xd4, 0xa7,
+ 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xf8, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x05, 0x02, 0x07, 0x02, 0x02,
+ 0x00, 0x00, 0x00, 0xe9, 0xd4, 0xa7, 0x3f, 0x00, 0x00, 0x31, 0x19, 0xd4,
+ 0xa7, 0x5f, 0x17, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xfe, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x00, 0x3f, 0x00, 0x00,
+ 0xe9, 0xd4, 0xa7, 0x5f, 0x17, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+ 0xc0, 0x07, 0x06,
+};
diff --git a/boards/dk-tm4c129x/grlib_demo/images.h b/boards/dk-tm4c129x/grlib_demo/images.h
new file mode 100644
index 0000000..9a3ed1d
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/images.h
@@ -0,0 +1,43 @@
+//*****************************************************************************
+//
+// images.h - Prototypes for the images used by the application.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#ifndef __IMAGES_H__
+#define __IMAGES_H__
+
+//*****************************************************************************
+//
+// Prototypes for the image arrays.
+//
+//*****************************************************************************
+extern const uint8_t g_ui8Logo[];
+extern const uint8_t g_pui8LightOff[];
+extern const uint8_t g_pui8LightOn[];
+extern const uint8_t g_pui8Blue50x50[];
+extern const uint8_t g_pui8Blue50x50Press[];
+extern const uint8_t g_pui8RedSlider195x37[];
+extern const uint8_t g_pui8GreenSlider195x37[];
+extern const uint8_t g_pui8GettingHotter28x148[];
+extern const uint8_t g_pui8GettingHotter28x148Mono[];
+
+#endif // __IMAGES_H__
diff --git a/boards/dk-tm4c129x/grlib_demo/readme.txt b/boards/dk-tm4c129x/grlib_demo/readme.txt
new file mode 100644
index 0000000..fba020b
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/readme.txt
@@ -0,0 +1,70 @@
+Graphics Library Demonstration
+
+This application provides a demonstration of the capabilities of the
+TivaWare Graphics Library. A series of panels show different features of
+the library. For each panel, the bottom provides a forward and back button
+(when appropriate), along with a brief description of the contents of the
+panel.
+
+The first panel provides some introductory text and basic instructions for
+operation of the application.
+
+The second panel shows the available drawing primitives: lines, circles,
+rectangles, strings, and images.
+
+The third panel shows the canvas widget, which provides a general drawing
+surface within the widget hierarchy. A text, image, and application-drawn
+canvas are displayed.
+
+The fourth panel shows the check box widget, which provides a means of
+toggling the state of an item. Three check boxes are provided, with each
+having a red ``LED'' to the right. The state of the LED tracks the state
+of the check box via an application callback.
+
+The fifth panel shows the container widget, which provides a grouping
+construct typically used for radio buttons. Containers with a title, a
+centered title, and no title are displayed.
+
+The sixth panel shows the push button widget. Two rows of push buttons
+are provided; the appearance of each row is the same but the top row
+does not utilize auto-repeat while the bottom row does. Each push button
+has a red ``LED'' beneath it, which is toggled via an application callback
+each time the push button is pressed. While holding down any of
+auto-repeat buttons, the ``LED'' for that button should be toggled as long
+as the button is being held down.
+
+The seventh panel shows the radio button widget. Two groups of radio
+buttons are displayed, the first using text and the second using images for
+the selection value. Each radio button has a red ``LED'' to its right,
+which tracks the selection state of the radio buttons via an application
+callback. Only one radio button from each group can be selected at a time,
+though the radio buttons in each group operate independently.
+
+The eighth and final panel shows the slider widget. Six sliders
+constructed using the various supported style options are shown. The
+slider value callback is used to update two widgets to reflect the values
+reported by sliders. A canvas widget near the top right of the display
+tracks the value of the red and green image-based slider to its left and
+the text of the grey slider on the left side of the panel is update to show
+its own value. The slider on the right is configured as an indicator
+which tracks the state of the upper slider and ignores user input.
+
+-------------------------------------------------------------------------------
+
+Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+Software License Agreement
+
+Texas Instruments (TI) is supplying this software for use solely and
+exclusively on TI's microcontroller products. The software is owned by
+TI and/or its suppliers, and is protected under applicable copyright
+laws. You may not combine this software with "viral" open-source
+software in order to form a larger program.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, FOR ANY REASON WHATSOEVER.
+
+This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
diff --git a/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.axf b/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.axf
new file mode 100644
index 0000000..ffcbdc0
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.axf
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.bin b/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.bin
new file mode 100644
index 0000000..9a5a6dd
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/rvmdk/grlib_demo.bin
Binary files differ
diff --git a/boards/dk-tm4c129x/grlib_demo/startup_ccs.c b/boards/dk-tm4c129x/grlib_demo/startup_ccs.c
new file mode 100644
index 0000000..30b1a9a
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/startup_ccs.c
@@ -0,0 +1,276 @@
+//*****************************************************************************
+//
+// startup_ccs.c - Startup code for use with TI's Code Composer Studio.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#include <stdint.h>
+#include "inc/hw_nvic.h"
+#include "inc/hw_types.h"
+
+//*****************************************************************************
+//
+// Forward declaration of the default fault handlers.
+//
+//*****************************************************************************
+void ResetISR(void);
+static void NmiSR(void);
+static void FaultISR(void);
+static void IntDefaultHandler(void);
+
+//*****************************************************************************
+//
+// External declaration for the reset handler that is to be called when the
+// processor is started
+//
+//*****************************************************************************
+extern void _c_int00(void);
+
+//*****************************************************************************
+//
+// Linker variable that marks the top of the stack.
+//
+//*****************************************************************************
+extern uint32_t __STACK_TOP;
+
+//*****************************************************************************
+//
+// External declarations for the interrupt handlers used by the application.
+//
+//*****************************************************************************
+extern void TouchScreenIntHandler(void);
+extern void SoundIntHandler(void);
+
+//*****************************************************************************
+//
+// The vector table. Note that the proper constructs must be placed on this to
+// ensure that it ends up at physical address 0x0000.0000 or at the start of
+// the program if located at a start address other than 0.
+//
+//*****************************************************************************
+#pragma DATA_SECTION(g_pfnVectors, ".intvecs")
+void (* const g_pfnVectors[])(void) =
+{
+ (void (*)(void))((uint32_t)&__STACK_TOP),
+ // The initial stack pointer
+ ResetISR, // The reset handler
+ NmiSR, // The NMI handler
+ FaultISR, // The hard fault handler
+ IntDefaultHandler, // The MPU fault handler
+ IntDefaultHandler, // The bus fault handler
+ IntDefaultHandler, // The usage fault handler
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // SVCall handler
+ IntDefaultHandler, // Debug monitor handler
+ 0, // Reserved
+ IntDefaultHandler, // The PendSV handler
+ IntDefaultHandler, // The SysTick handler
+ IntDefaultHandler, // GPIO Port A
+ IntDefaultHandler, // GPIO Port B
+ IntDefaultHandler, // GPIO Port C
+ IntDefaultHandler, // GPIO Port D
+ IntDefaultHandler, // GPIO Port E
+ IntDefaultHandler, // UART0 Rx and Tx
+ IntDefaultHandler, // UART1 Rx and Tx
+ IntDefaultHandler, // SSI0 Rx and Tx
+ IntDefaultHandler, // I2C0 Master and Slave
+ IntDefaultHandler, // PWM Fault
+ IntDefaultHandler, // PWM Generator 0
+ IntDefaultHandler, // PWM Generator 1
+ IntDefaultHandler, // PWM Generator 2
+ IntDefaultHandler, // Quadrature Encoder 0
+ IntDefaultHandler, // ADC Sequence 0
+ IntDefaultHandler, // ADC Sequence 1
+ IntDefaultHandler, // ADC Sequence 2
+ TouchScreenIntHandler, // ADC Sequence 3
+ IntDefaultHandler, // Watchdog timer
+ IntDefaultHandler, // Timer 0 subtimer A
+ IntDefaultHandler, // Timer 0 subtimer B
+ IntDefaultHandler, // Timer 1 subtimer A
+ IntDefaultHandler, // Timer 1 subtimer B
+ IntDefaultHandler, // Timer 2 subtimer A
+ IntDefaultHandler, // Timer 2 subtimer B
+ IntDefaultHandler, // Analog Comparator 0
+ IntDefaultHandler, // Analog Comparator 1
+ IntDefaultHandler, // Analog Comparator 2
+ IntDefaultHandler, // System Control (PLL, OSC, BO)
+ IntDefaultHandler, // FLASH Control
+ IntDefaultHandler, // GPIO Port F
+ IntDefaultHandler, // GPIO Port G
+ IntDefaultHandler, // GPIO Port H
+ IntDefaultHandler, // UART2 Rx and Tx
+ IntDefaultHandler, // SSI1 Rx and Tx
+ IntDefaultHandler, // Timer 3 subtimer A
+ IntDefaultHandler, // Timer 3 subtimer B
+ IntDefaultHandler, // I2C1 Master and Slave
+ IntDefaultHandler, // CAN0
+ IntDefaultHandler, // CAN1
+ IntDefaultHandler, // Ethernet
+ IntDefaultHandler, // Hibernate
+ IntDefaultHandler, // USB0
+ IntDefaultHandler, // PWM Generator 3
+ IntDefaultHandler, // uDMA Software Transfer
+ IntDefaultHandler, // uDMA Error
+ IntDefaultHandler, // ADC1 Sequence 0
+ IntDefaultHandler, // ADC1 Sequence 1
+ IntDefaultHandler, // ADC1 Sequence 2
+ IntDefaultHandler, // ADC1 Sequence 3
+ IntDefaultHandler, // External Bus Interface 0
+ IntDefaultHandler, // GPIO Port J
+ IntDefaultHandler, // GPIO Port K
+ IntDefaultHandler, // GPIO Port L
+ IntDefaultHandler, // SSI2 Rx and Tx
+ IntDefaultHandler, // SSI3 Rx and Tx
+ IntDefaultHandler, // UART3 Rx and Tx
+ IntDefaultHandler, // UART4 Rx and Tx
+ IntDefaultHandler, // UART5 Rx and Tx
+ IntDefaultHandler, // UART6 Rx and Tx
+ IntDefaultHandler, // UART7 Rx and Tx
+ IntDefaultHandler, // I2C2 Master and Slave
+ IntDefaultHandler, // I2C3 Master and Slave
+ IntDefaultHandler, // Timer 4 subtimer A
+ IntDefaultHandler, // Timer 4 subtimer B
+ SoundIntHandler, // Timer 5 subtimer A
+ IntDefaultHandler, // Timer 5 subtimer B
+ IntDefaultHandler, // FPU
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // I2C4 Master and Slave
+ IntDefaultHandler, // I2C5 Master and Slave
+ IntDefaultHandler, // GPIO Port M
+ IntDefaultHandler, // GPIO Port N
+ 0, // Reserved
+ IntDefaultHandler, // Tamper
+ IntDefaultHandler, // GPIO Port P (Summary or P0)
+ IntDefaultHandler, // GPIO Port P1
+ IntDefaultHandler, // GPIO Port P2
+ IntDefaultHandler, // GPIO Port P3
+ IntDefaultHandler, // GPIO Port P4
+ IntDefaultHandler, // GPIO Port P5
+ IntDefaultHandler, // GPIO Port P6
+ IntDefaultHandler, // GPIO Port P7
+ IntDefaultHandler, // GPIO Port Q (Summary or Q0)
+ IntDefaultHandler, // GPIO Port Q1
+ IntDefaultHandler, // GPIO Port Q2
+ IntDefaultHandler, // GPIO Port Q3
+ IntDefaultHandler, // GPIO Port Q4
+ IntDefaultHandler, // GPIO Port Q5
+ IntDefaultHandler, // GPIO Port Q6
+ IntDefaultHandler, // GPIO Port Q7
+ IntDefaultHandler, // GPIO Port R
+ IntDefaultHandler, // GPIO Port S
+ IntDefaultHandler, // SHA/MD5 0
+ IntDefaultHandler, // AES 0
+ IntDefaultHandler, // DES3DES 0
+ IntDefaultHandler, // LCD Controller 0
+ IntDefaultHandler, // Timer 6 subtimer A
+ IntDefaultHandler, // Timer 6 subtimer B
+ IntDefaultHandler, // Timer 7 subtimer A
+ IntDefaultHandler, // Timer 7 subtimer B
+ IntDefaultHandler, // I2C6 Master and Slave
+ IntDefaultHandler, // I2C7 Master and Slave
+ IntDefaultHandler, // HIM Scan Matrix Keyboard 0
+ IntDefaultHandler, // One Wire 0
+ IntDefaultHandler, // HIM PS/2 0
+ IntDefaultHandler, // HIM LED Sequencer 0
+ IntDefaultHandler, // HIM Consumer IR 0
+ IntDefaultHandler, // I2C8 Master and Slave
+ IntDefaultHandler, // I2C9 Master and Slave
+ IntDefaultHandler // GPIO Port T
+};
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor first starts execution
+// following a reset event. Only the absolutely necessary set is performed,
+// after which the application supplied entry() routine is called. Any fancy
+// actions (such as making decisions based on the reset cause register, and
+// resetting the bits in that register) are left solely in the hands of the
+// application.
+//
+//*****************************************************************************
+void
+ResetISR(void)
+{
+ //
+ // Jump to the CCS C initialization routine. This will enable the
+ // floating-point unit as well, so that does not need to be done here.
+ //
+ __asm(" .global _c_int00\n"
+ " b.w _c_int00");
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a NMI. This
+// simply enters an infinite loop, preserving the system state for examination
+// by a debugger.
+//
+//*****************************************************************************
+static void
+NmiSR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a fault
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+FaultISR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives an unexpected
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+IntDefaultHandler(void)
+{
+ //
+ // Go into an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/startup_ewarm.c b/boards/dk-tm4c129x/grlib_demo/startup_ewarm.c
new file mode 100644
index 0000000..5694146
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/startup_ewarm.c
@@ -0,0 +1,307 @@
+//*****************************************************************************
+//
+// startup_ewarm.c - Startup code for use with IAR's Embedded Workbench,
+// version 5.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#include <stdint.h>
+#include "inc/hw_nvic.h"
+#include "inc/hw_types.h"
+
+//*****************************************************************************
+//
+// Enable the IAR extensions for this source file.
+//
+//*****************************************************************************
+#pragma language=extended
+
+//*****************************************************************************
+//
+// Forward declaration of the default fault handlers.
+//
+//*****************************************************************************
+void ResetISR(void);
+static void NmiSR(void);
+static void FaultISR(void);
+static void IntDefaultHandler(void);
+
+//*****************************************************************************
+//
+// External declarations for the interrupt handlers used by the application.
+//
+//*****************************************************************************
+extern void TouchScreenIntHandler(void);
+extern void SoundIntHandler(void);
+
+//*****************************************************************************
+//
+// The entry point for the application startup code.
+//
+//*****************************************************************************
+extern void __iar_program_start(void);
+
+//*****************************************************************************
+//
+// Reserve space for the system stack.
+//
+//*****************************************************************************
+static uint32_t pui32Stack[256] @ ".noinit";
+
+//*****************************************************************************
+//
+// A union that describes the entries of the vector table. The union is needed
+// since the first entry is the stack pointer and the remainder are function
+// pointers.
+//
+//*****************************************************************************
+typedef union
+{
+ void (*pfnHandler)(void);
+ uint32_t ui32Ptr;
+}
+uVectorEntry;
+
+//*****************************************************************************
+//
+// The vector table. Note that the proper constructs must be placed on this to
+// ensure that it ends up at physical address 0x0000.0000.
+//
+//*****************************************************************************
+__root const uVectorEntry __vector_table[] @ ".intvec" =
+{
+ { .ui32Ptr = (uint32_t)pui32Stack + sizeof(pui32Stack) },
+ // The initial stack pointer
+ ResetISR, // The reset handler
+ NmiSR, // The NMI handler
+ FaultISR, // The hard fault handler
+ IntDefaultHandler, // The MPU fault handler
+ IntDefaultHandler, // The bus fault handler
+ IntDefaultHandler, // The usage fault handler
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // SVCall handler
+ IntDefaultHandler, // Debug monitor handler
+ 0, // Reserved
+ IntDefaultHandler, // The PendSV handler
+ IntDefaultHandler, // The SysTick handler
+ IntDefaultHandler, // GPIO Port A
+ IntDefaultHandler, // GPIO Port B
+ IntDefaultHandler, // GPIO Port C
+ IntDefaultHandler, // GPIO Port D
+ IntDefaultHandler, // GPIO Port E
+ IntDefaultHandler, // UART0 Rx and Tx
+ IntDefaultHandler, // UART1 Rx and Tx
+ IntDefaultHandler, // SSI0 Rx and Tx
+ IntDefaultHandler, // I2C0 Master and Slave
+ IntDefaultHandler, // PWM Fault
+ IntDefaultHandler, // PWM Generator 0
+ IntDefaultHandler, // PWM Generator 1
+ IntDefaultHandler, // PWM Generator 2
+ IntDefaultHandler, // Quadrature Encoder 0
+ IntDefaultHandler, // ADC Sequence 0
+ IntDefaultHandler, // ADC Sequence 1
+ IntDefaultHandler, // ADC Sequence 2
+ TouchScreenIntHandler, // ADC Sequence 3
+ IntDefaultHandler, // Watchdog timer
+ IntDefaultHandler, // Timer 0 subtimer A
+ IntDefaultHandler, // Timer 0 subtimer B
+ IntDefaultHandler, // Timer 1 subtimer A
+ IntDefaultHandler, // Timer 1 subtimer B
+ IntDefaultHandler, // Timer 2 subtimer A
+ IntDefaultHandler, // Timer 2 subtimer B
+ IntDefaultHandler, // Analog Comparator 0
+ IntDefaultHandler, // Analog Comparator 1
+ IntDefaultHandler, // Analog Comparator 2
+ IntDefaultHandler, // System Control (PLL, OSC, BO)
+ IntDefaultHandler, // FLASH Control
+ IntDefaultHandler, // GPIO Port F
+ IntDefaultHandler, // GPIO Port G
+ IntDefaultHandler, // GPIO Port H
+ IntDefaultHandler, // UART2 Rx and Tx
+ IntDefaultHandler, // SSI1 Rx and Tx
+ IntDefaultHandler, // Timer 3 subtimer A
+ IntDefaultHandler, // Timer 3 subtimer B
+ IntDefaultHandler, // I2C1 Master and Slave
+ IntDefaultHandler, // CAN0
+ IntDefaultHandler, // CAN1
+ IntDefaultHandler, // Ethernet
+ IntDefaultHandler, // Hibernate
+ IntDefaultHandler, // USB0
+ IntDefaultHandler, // PWM Generator 3
+ IntDefaultHandler, // uDMA Software Transfer
+ IntDefaultHandler, // uDMA Error
+ IntDefaultHandler, // ADC1 Sequence 0
+ IntDefaultHandler, // ADC1 Sequence 1
+ IntDefaultHandler, // ADC1 Sequence 2
+ IntDefaultHandler, // ADC1 Sequence 3
+ IntDefaultHandler, // External Bus Interface 0
+ IntDefaultHandler, // GPIO Port J
+ IntDefaultHandler, // GPIO Port K
+ IntDefaultHandler, // GPIO Port L
+ IntDefaultHandler, // SSI2 Rx and Tx
+ IntDefaultHandler, // SSI3 Rx and Tx
+ IntDefaultHandler, // UART3 Rx and Tx
+ IntDefaultHandler, // UART4 Rx and Tx
+ IntDefaultHandler, // UART5 Rx and Tx
+ IntDefaultHandler, // UART6 Rx and Tx
+ IntDefaultHandler, // UART7 Rx and Tx
+ IntDefaultHandler, // I2C2 Master and Slave
+ IntDefaultHandler, // I2C3 Master and Slave
+ IntDefaultHandler, // Timer 4 subtimer A
+ IntDefaultHandler, // Timer 4 subtimer B
+ SoundIntHandler, // Timer 5 subtimer A
+ IntDefaultHandler, // Timer 5 subtimer B
+ IntDefaultHandler, // FPU
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // I2C4 Master and Slave
+ IntDefaultHandler, // I2C5 Master and Slave
+ IntDefaultHandler, // GPIO Port M
+ IntDefaultHandler, // GPIO Port N
+ 0, // Reserved
+ IntDefaultHandler, // Tamper
+ IntDefaultHandler, // GPIO Port P (Summary or P0)
+ IntDefaultHandler, // GPIO Port P1
+ IntDefaultHandler, // GPIO Port P2
+ IntDefaultHandler, // GPIO Port P3
+ IntDefaultHandler, // GPIO Port P4
+ IntDefaultHandler, // GPIO Port P5
+ IntDefaultHandler, // GPIO Port P6
+ IntDefaultHandler, // GPIO Port P7
+ IntDefaultHandler, // GPIO Port Q (Summary or Q0)
+ IntDefaultHandler, // GPIO Port Q1
+ IntDefaultHandler, // GPIO Port Q2
+ IntDefaultHandler, // GPIO Port Q3
+ IntDefaultHandler, // GPIO Port Q4
+ IntDefaultHandler, // GPIO Port Q5
+ IntDefaultHandler, // GPIO Port Q6
+ IntDefaultHandler, // GPIO Port Q7
+ IntDefaultHandler, // GPIO Port R
+ IntDefaultHandler, // GPIO Port S
+ IntDefaultHandler, // SHA/MD5 0
+ IntDefaultHandler, // AES 0
+ IntDefaultHandler, // DES3DES 0
+ IntDefaultHandler, // LCD Controller 0
+ IntDefaultHandler, // Timer 6 subtimer A
+ IntDefaultHandler, // Timer 6 subtimer B
+ IntDefaultHandler, // Timer 7 subtimer A
+ IntDefaultHandler, // Timer 7 subtimer B
+ IntDefaultHandler, // I2C6 Master and Slave
+ IntDefaultHandler, // I2C7 Master and Slave
+ IntDefaultHandler, // HIM Scan Matrix Keyboard 0
+ IntDefaultHandler, // One Wire 0
+ IntDefaultHandler, // HIM PS/2 0
+ IntDefaultHandler, // HIM LED Sequencer 0
+ IntDefaultHandler, // HIM Consumer IR 0
+ IntDefaultHandler, // I2C8 Master and Slave
+ IntDefaultHandler, // I2C9 Master and Slave
+ IntDefaultHandler // GPIO Port T
+};
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor first starts execution
+// following a reset event. Only the absolutely necessary set is performed,
+// after which the application supplied entry() routine is called. Any fancy
+// actions (such as making decisions based on the reset cause register, and
+// resetting the bits in that register) are left solely in the hands of the
+// application.
+//
+//*****************************************************************************
+void
+ResetISR(void)
+{
+ //
+ // Enable the floating-point unit. This must be done here to handle the
+ // case where main() uses floating-point and the function prologue saves
+ // floating-point registers (which will fault if floating-point is not
+ // enabled). Any configuration of the floating-point unit using DriverLib
+ // APIs must be done here prior to the floating-point unit being enabled.
+ //
+ // Note that this does not use DriverLib since it might not be included in
+ // this project.
+ //
+ HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) &
+ ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) |
+ NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL);
+
+ //
+ // Call the application's entry point.
+ //
+ __iar_program_start();
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a NMI. This
+// simply enters an infinite loop, preserving the system state for examination
+// by a debugger.
+//
+//*****************************************************************************
+static void
+NmiSR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a fault
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+FaultISR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives an unexpected
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+IntDefaultHandler(void)
+{
+ //
+ // Go into an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/startup_gcc.c b/boards/dk-tm4c129x/grlib_demo/startup_gcc.c
new file mode 100644
index 0000000..12e19b0
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/startup_gcc.c
@@ -0,0 +1,323 @@
+//*****************************************************************************
+//
+// startup_gcc.c - Startup code for use with GNU tools.
+//
+// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+//
+//*****************************************************************************
+
+#include <stdint.h>
+#include "inc/hw_nvic.h"
+#include "inc/hw_types.h"
+
+//*****************************************************************************
+//
+// Forward declaration of the default fault handlers.
+//
+//*****************************************************************************
+void ResetISR(void);
+static void NmiSR(void);
+static void FaultISR(void);
+static void IntDefaultHandler(void);
+
+//*****************************************************************************
+//
+// External declarations for the interrupt handlers used by the application.
+//
+//*****************************************************************************
+extern void TouchScreenIntHandler(void);
+extern void SoundIntHandler(void);
+
+//*****************************************************************************
+//
+// The entry point for the application.
+//
+//*****************************************************************************
+extern int main(void);
+
+//*****************************************************************************
+//
+// Reserve space for the system stack.
+//
+//*****************************************************************************
+static uint32_t pui32Stack[256];
+
+//*****************************************************************************
+//
+// The vector table. Note that the proper constructs must be placed on this to
+// ensure that it ends up at physical address 0x0000.0000.
+//
+//*****************************************************************************
+__attribute__ ((section(".isr_vector")))
+void (* const g_pfnVectors[])(void) =
+{
+ (void (*)(void))((uint32_t)pui32Stack + sizeof(pui32Stack)),
+ // The initial stack pointer
+ ResetISR, // The reset handler
+ NmiSR, // The NMI handler
+ FaultISR, // The hard fault handler
+ IntDefaultHandler, // The MPU fault handler
+ IntDefaultHandler, // The bus fault handler
+ IntDefaultHandler, // The usage fault handler
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // SVCall handler
+ IntDefaultHandler, // Debug monitor handler
+ 0, // Reserved
+ IntDefaultHandler, // The PendSV handler
+ IntDefaultHandler, // The SysTick handler
+ IntDefaultHandler, // GPIO Port A
+ IntDefaultHandler, // GPIO Port B
+ IntDefaultHandler, // GPIO Port C
+ IntDefaultHandler, // GPIO Port D
+ IntDefaultHandler, // GPIO Port E
+ IntDefaultHandler, // UART0 Rx and Tx
+ IntDefaultHandler, // UART1 Rx and Tx
+ IntDefaultHandler, // SSI0 Rx and Tx
+ IntDefaultHandler, // I2C0 Master and Slave
+ IntDefaultHandler, // PWM Fault
+ IntDefaultHandler, // PWM Generator 0
+ IntDefaultHandler, // PWM Generator 1
+ IntDefaultHandler, // PWM Generator 2
+ IntDefaultHandler, // Quadrature Encoder 0
+ IntDefaultHandler, // ADC Sequence 0
+ IntDefaultHandler, // ADC Sequence 1
+ IntDefaultHandler, // ADC Sequence 2
+ TouchScreenIntHandler, // ADC Sequence 3
+ IntDefaultHandler, // Watchdog timer
+ IntDefaultHandler, // Timer 0 subtimer A
+ IntDefaultHandler, // Timer 0 subtimer B
+ IntDefaultHandler, // Timer 1 subtimer A
+ IntDefaultHandler, // Timer 1 subtimer B
+ IntDefaultHandler, // Timer 2 subtimer A
+ IntDefaultHandler, // Timer 2 subtimer B
+ IntDefaultHandler, // Analog Comparator 0
+ IntDefaultHandler, // Analog Comparator 1
+ IntDefaultHandler, // Analog Comparator 2
+ IntDefaultHandler, // System Control (PLL, OSC, BO)
+ IntDefaultHandler, // FLASH Control
+ IntDefaultHandler, // GPIO Port F
+ IntDefaultHandler, // GPIO Port G
+ IntDefaultHandler, // GPIO Port H
+ IntDefaultHandler, // UART2 Rx and Tx
+ IntDefaultHandler, // SSI1 Rx and Tx
+ IntDefaultHandler, // Timer 3 subtimer A
+ IntDefaultHandler, // Timer 3 subtimer B
+ IntDefaultHandler, // I2C1 Master and Slave
+ IntDefaultHandler, // CAN0
+ IntDefaultHandler, // CAN1
+ IntDefaultHandler, // Ethernet
+ IntDefaultHandler, // Hibernate
+ IntDefaultHandler, // USB0
+ IntDefaultHandler, // PWM Generator 3
+ IntDefaultHandler, // uDMA Software Transfer
+ IntDefaultHandler, // uDMA Error
+ IntDefaultHandler, // ADC1 Sequence 0
+ IntDefaultHandler, // ADC1 Sequence 1
+ IntDefaultHandler, // ADC1 Sequence 2
+ IntDefaultHandler, // ADC1 Sequence 3
+ IntDefaultHandler, // External Bus Interface 0
+ IntDefaultHandler, // GPIO Port J
+ IntDefaultHandler, // GPIO Port K
+ IntDefaultHandler, // GPIO Port L
+ IntDefaultHandler, // SSI2 Rx and Tx
+ IntDefaultHandler, // SSI3 Rx and Tx
+ IntDefaultHandler, // UART3 Rx and Tx
+ IntDefaultHandler, // UART4 Rx and Tx
+ IntDefaultHandler, // UART5 Rx and Tx
+ IntDefaultHandler, // UART6 Rx and Tx
+ IntDefaultHandler, // UART7 Rx and Tx
+ IntDefaultHandler, // I2C2 Master and Slave
+ IntDefaultHandler, // I2C3 Master and Slave
+ IntDefaultHandler, // Timer 4 subtimer A
+ IntDefaultHandler, // Timer 4 subtimer B
+ SoundIntHandler, // Timer 5 subtimer A
+ IntDefaultHandler, // Timer 5 subtimer B
+ IntDefaultHandler, // FPU
+ 0, // Reserved
+ 0, // Reserved
+ IntDefaultHandler, // I2C4 Master and Slave
+ IntDefaultHandler, // I2C5 Master and Slave
+ IntDefaultHandler, // GPIO Port M
+ IntDefaultHandler, // GPIO Port N
+ 0, // Reserved
+ IntDefaultHandler, // Tamper
+ IntDefaultHandler, // GPIO Port P (Summary or P0)
+ IntDefaultHandler, // GPIO Port P1
+ IntDefaultHandler, // GPIO Port P2
+ IntDefaultHandler, // GPIO Port P3
+ IntDefaultHandler, // GPIO Port P4
+ IntDefaultHandler, // GPIO Port P5
+ IntDefaultHandler, // GPIO Port P6
+ IntDefaultHandler, // GPIO Port P7
+ IntDefaultHandler, // GPIO Port Q (Summary or Q0)
+ IntDefaultHandler, // GPIO Port Q1
+ IntDefaultHandler, // GPIO Port Q2
+ IntDefaultHandler, // GPIO Port Q3
+ IntDefaultHandler, // GPIO Port Q4
+ IntDefaultHandler, // GPIO Port Q5
+ IntDefaultHandler, // GPIO Port Q6
+ IntDefaultHandler, // GPIO Port Q7
+ IntDefaultHandler, // GPIO Port R
+ IntDefaultHandler, // GPIO Port S
+ IntDefaultHandler, // SHA/MD5 0
+ IntDefaultHandler, // AES 0
+ IntDefaultHandler, // DES3DES 0
+ IntDefaultHandler, // LCD Controller 0
+ IntDefaultHandler, // Timer 6 subtimer A
+ IntDefaultHandler, // Timer 6 subtimer B
+ IntDefaultHandler, // Timer 7 subtimer A
+ IntDefaultHandler, // Timer 7 subtimer B
+ IntDefaultHandler, // I2C6 Master and Slave
+ IntDefaultHandler, // I2C7 Master and Slave
+ IntDefaultHandler, // HIM Scan Matrix Keyboard 0
+ IntDefaultHandler, // One Wire 0
+ IntDefaultHandler, // HIM PS/2 0
+ IntDefaultHandler, // HIM LED Sequencer 0
+ IntDefaultHandler, // HIM Consumer IR 0
+ IntDefaultHandler, // I2C8 Master and Slave
+ IntDefaultHandler, // I2C9 Master and Slave
+ IntDefaultHandler // GPIO Port T
+};
+
+//*****************************************************************************
+//
+// The following are constructs created by the linker, indicating where the
+// the "data" and "bss" segments reside in memory. The initializers for the
+// for the "data" segment resides immediately following the "text" segment.
+//
+//*****************************************************************************
+extern uint32_t _etext;
+extern uint32_t _data;
+extern uint32_t _edata;
+extern uint32_t _bss;
+extern uint32_t _ebss;
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor first starts execution
+// following a reset event. Only the absolutely necessary set is performed,
+// after which the application supplied entry() routine is called. Any fancy
+// actions (such as making decisions based on the reset cause register, and
+// resetting the bits in that register) are left solely in the hands of the
+// application.
+//
+//*****************************************************************************
+void
+ResetISR(void)
+{
+ uint32_t *pui32Src, *pui32Dest;
+
+ //
+ // Copy the data segment initializers from flash to SRAM.
+ //
+ pui32Src = &_etext;
+ for(pui32Dest = &_data; pui32Dest < &_edata; )
+ {
+ *pui32Dest++ = *pui32Src++;
+ }
+
+ //
+ // Zero fill the bss segment.
+ //
+ __asm(" ldr r0, =_bss\n"
+ " ldr r1, =_ebss\n"
+ " mov r2, #0\n"
+ " .thumb_func\n"
+ "zero_loop:\n"
+ " cmp r0, r1\n"
+ " it lt\n"
+ " strlt r2, [r0], #4\n"
+ " blt zero_loop");
+
+ //
+ // Enable the floating-point unit. This must be done here to handle the
+ // case where main() uses floating-point and the function prologue saves
+ // floating-point registers (which will fault if floating-point is not
+ // enabled). Any configuration of the floating-point unit using DriverLib
+ // APIs must be done here prior to the floating-point unit being enabled.
+ //
+ // Note that this does not use DriverLib since it might not be included in
+ // this project.
+ //
+ HWREG(NVIC_CPAC) = ((HWREG(NVIC_CPAC) &
+ ~(NVIC_CPAC_CP10_M | NVIC_CPAC_CP11_M)) |
+ NVIC_CPAC_CP10_FULL | NVIC_CPAC_CP11_FULL);
+
+ //
+ // Call the application's entry point.
+ //
+ main();
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a NMI. This
+// simply enters an infinite loop, preserving the system state for examination
+// by a debugger.
+//
+//*****************************************************************************
+static void
+NmiSR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives a fault
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+FaultISR(void)
+{
+ //
+ // Enter an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
+
+//*****************************************************************************
+//
+// This is the code that gets called when the processor receives an unexpected
+// interrupt. This simply enters an infinite loop, preserving the system state
+// for examination by a debugger.
+//
+//*****************************************************************************
+static void
+IntDefaultHandler(void)
+{
+ //
+ // Go into an infinite loop.
+ //
+ while(1)
+ {
+ }
+}
diff --git a/boards/dk-tm4c129x/grlib_demo/startup_rvmdk.S b/boards/dk-tm4c129x/grlib_demo/startup_rvmdk.S
new file mode 100644
index 0000000..78d5a58
--- /dev/null
+++ b/boards/dk-tm4c129x/grlib_demo/startup_rvmdk.S
@@ -0,0 +1,332 @@
+; <<< Use Configuration Wizard in Context Menu >>>
+;******************************************************************************
+;
+; startup_rvmdk.S - Startup code for use with Keil's uVision.
+;
+; Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
+; Software License Agreement
+;
+; Texas Instruments (TI) is supplying this software for use solely and
+; exclusively on TI's microcontroller products. The software is owned by
+; TI and/or its suppliers, and is protected under applicable copyright
+; laws. You may not combine this software with "viral" open-source
+; software in order to form a larger program.
+;
+; THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+; NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+; NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+; A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+; CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+; DAMAGES, FOR ANY REASON WHATSOEVER.
+;
+; This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package.
+;
+;******************************************************************************
+
+;******************************************************************************
+;
+; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+;******************************************************************************
+Stack EQU 0x00000400
+
+;******************************************************************************
+;
+; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+;******************************************************************************
+Heap EQU 0x00000000
+
+;******************************************************************************
+;
+; Allocate space for the stack.
+;
+;******************************************************************************
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+StackMem
+ SPACE Stack
+__initial_sp
+
+;******************************************************************************
+;
+; Allocate space for the heap.
+;
+;******************************************************************************
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+HeapMem
+ SPACE Heap
+__heap_limit
+
+;******************************************************************************
+;
+; Indicate that the code in this file preserves 8-byte alignment of the stack.
+;
+;******************************************************************************
+ PRESERVE8
+
+;******************************************************************************
+;
+; Place code into the reset code section.
+;
+;******************************************************************************
+ AREA RESET, CODE, READONLY
+ THUMB
+
+;******************************************************************************
+;
+; External declarations for the interrupt handlers used by the application.
+;
+;******************************************************************************
+ EXTERN TouchScreenIntHandler
+ EXTERN SoundIntHandler
+
+;******************************************************************************
+;
+; The vector table.
+;
+;******************************************************************************
+ EXPORT __Vectors
+__Vectors
+ DCD StackMem + Stack ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NmiSR ; NMI Handler
+ DCD FaultISR ; Hard Fault Handler
+ DCD IntDefaultHandler ; The MPU fault handler
+ DCD IntDefaultHandler ; The bus fault handler
+ DCD IntDefaultHandler ; The usage fault handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD IntDefaultHandler ; SVCall handler
+ DCD IntDefaultHandler ; Debug monitor handler
+ DCD 0 ; Reserved
+ DCD IntDefaultHandler ; The PendSV handler
+ DCD IntDefaultHandler ; The SysTick handler
+ DCD IntDefaultHandler ; GPIO Port A
+ DCD IntDefaultHandler ; GPIO Port B
+ DCD IntDefaultHandler ; GPIO Port C
+ DCD IntDefaultHandler ; GPIO Port D
+ DCD IntDefaultHandler ; GPIO Port E
+ DCD IntDefaultHandler ; UART0 Rx and Tx
+ DCD IntDefaultHandler ; UART1 Rx and Tx
+ DCD IntDefaultHandler ; SSI0 Rx and Tx
+ DCD IntDefaultHandler ; I2C0 Master and Slave
+ DCD IntDefaultHandler ; PWM Fault
+ DCD IntDefaultHandler ; PWM Generator 0
+ DCD IntDefaultHandler ; PWM Generator 1
+ DCD IntDefaultHandler ; PWM Generator 2
+ DCD IntDefaultHandler ; Quadrature Encoder 0
+ DCD IntDefaultHandler ; ADC Sequence 0
+ DCD IntDefaultHandler ; ADC Sequence 1
+ DCD IntDefaultHandler ; ADC Sequence 2
+ DCD TouchScreenIntHandler ; ADC Sequence 3
+ DCD IntDefaultHandler ; Watchdog timer
+ DCD IntDefaultHandler ; Timer 0 subtimer A
+ DCD IntDefaultHandler ; Timer 0 subtimer B
+ DCD IntDefaultHandler ; Timer 1 subtimer A
+ DCD IntDefaultHandler ; Timer 1 subtimer B
+ DCD IntDefaultHandler ; Timer 2 subtimer A
+ DCD IntDefaultHandler ; Timer 2 subtimer B
+ DCD IntDefaultHandler ; Analog Comparator 0
+ DCD IntDefaultHandler ; Analog Comparator 1
+ DCD IntDefaultHandler ; Analog Comparator 2
+ DCD IntDefaultHandler ; System Control (PLL, OSC, BO)
+ DCD IntDefaultHandler ; FLASH Control
+ DCD IntDefaultHandler ; GPIO Port F
+ DCD IntDefaultHandler ; GPIO Port G
+ DCD IntDefaultHandler ; GPIO Port H
+ DCD IntDefaultHandler ; UART2 Rx and Tx
+ DCD IntDefaultHandler ; SSI1 Rx and Tx
+ DCD IntDefaultHandler ; Timer 3 subtimer A
+ DCD IntDefaultHandler ; Timer 3 subtimer B
+ DCD IntDefaultHandler ; I2C1 Master and Slave
+ DCD IntDefaultHandler ; CAN0
+ DCD IntDefaultHandler ; CAN1
+ DCD IntDefaultHandler ; Ethernet
+ DCD IntDefaultHandler ; Hibernate
+ DCD IntDefaultHandler ; USB0
+ DCD IntDefaultHandler ; PWM Generator 3
+ DCD IntDefaultHandler ; uDMA Software Transfer
+ DCD IntDefaultHandler ; uDMA Error
+ DCD IntDefaultHandler ; ADC1 Sequence 0
+ DCD IntDefaultHandler ; ADC1 Sequence 1
+ DCD IntDefaultHandler ; ADC1 Sequence 2
+ DCD IntDefaultHandler ; ADC1 Sequence 3
+ DCD IntDefaultHandler ; External Bus Interface 0
+ DCD IntDefaultHandler ; GPIO Port J
+ DCD IntDefaultHandler ; GPIO Port K
+ DCD IntDefaultHandler ; GPIO Port L
+ DCD IntDefaultHandler ; SSI2 Rx and Tx
+ DCD IntDefaultHandler ; SSI3 Rx and Tx
+ DCD IntDefaultHandler ; UART3 Rx and Tx
+ DCD IntDefaultHandler ; UART4 Rx and Tx
+ DCD IntDefaultHandler ; UART5 Rx and Tx
+ DCD IntDefaultHandler ; UART6 Rx and Tx
+ DCD IntDefaultHandler ; UART7 Rx and Tx
+ DCD IntDefaultHandler ; I2C2 Master and Slave
+ DCD IntDefaultHandler ; I2C3 Master and Slave
+ DCD IntDefaultHandler ; Timer 4 subtimer A
+ DCD IntDefaultHandler ; Timer 4 subtimer B
+ DCD SoundIntHandler ; Timer 5 subtimer A
+ DCD IntDefaultHandler ; Timer 5 subtimer B
+ DCD IntDefaultHandler ; FPU
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD IntDefaultHandler ; I2C4 Master and Slave
+ DCD IntDefaultHandler ; I2C5 Master and Slave
+ DCD IntDefaultHandler ; GPIO Port M
+ DCD IntDefaultHandler ; GPIO Port N
+ DCD 0 ; Reserved
+ DCD IntDefaultHandler ; Tamper
+ DCD IntDefaultHandler ; GPIO Port P (Summary or P0)
+ DCD IntDefaultHandler ; GPIO Port P1
+ DCD IntDefaultHandler ; GPIO Port P2
+ DCD IntDefaultHandler ; GPIO Port P3
+ DCD IntDefaultHandler ; GPIO Port P4
+ DCD IntDefaultHandler ; GPIO Port P5
+ DCD IntDefaultHandler ; GPIO Port P6
+ DCD IntDefaultHandler ; GPIO Port P7
+ DCD IntDefaultHandler ; GPIO Port Q (Summary or Q0)
+ DCD IntDefaultHandler ; GPIO Port Q1
+ DCD IntDefaultHandler ; GPIO Port Q2
+ DCD IntDefaultHandler ; GPIO Port Q3
+ DCD IntDefaultHandler ; GPIO Port Q4
+ DCD IntDefaultHandler ; GPIO Port Q5
+ DCD IntDefaultHandler ; GPIO Port Q6
+ DCD IntDefaultHandler ; GPIO Port Q7
+ DCD IntDefaultHandler ; GPIO Port R
+ DCD IntDefaultHandler ; GPIO Port S
+ DCD IntDefaultHandler ; SHA/MD5 0
+ DCD IntDefaultHandler ; AES 0
+ DCD IntDefaultHandler ; DES3DES 0
+ DCD IntDefaultHandler ; LCD Controller 0
+ DCD IntDefaultHandler ; Timer 6 subtimer A
+ DCD IntDefaultHandler ; Timer 6 subtimer B
+ DCD IntDefaultHandler ; Timer 7 subtimer A
+ DCD IntDefaultHandler ; Timer 7 subtimer B
+ DCD IntDefaultHandler ; I2C6 Master and Slave
+ DCD IntDefaultHandler ; I2C7 Master and Slave
+ DCD IntDefaultHandler ; HIM Scan Matrix Keyboard 0
+ DCD IntDefaultHandler ; One Wire 0
+ DCD IntDefaultHandler ; HIM PS/2 0
+ DCD IntDefaultHandler ; HIM LED Sequencer 0
+ DCD IntDefaultHandler ; HIM Consumer IR 0
+ DCD IntDefaultHandler ; I2C8 Master and Slave
+ DCD IntDefaultHandler ; I2C9 Master and Slave
+ DCD IntDefaultHandler ; GPIO Port T
+
+;******************************************************************************
+;
+; This is the code that gets called when the processor first starts execution
+; following a reset event.
+;
+;******************************************************************************
+ EXPORT Reset_Handler
+Reset_Handler
+ ;
+ ; Enable the floating-point unit. This must be done here to handle the
+ ; case where main() uses floating-point and the function prologue saves
+ ; floating-point registers (which will fault if floating-point is not
+ ; enabled). Any configuration of the floating-point unit using
+ ; DriverLib APIs must be done here prior to the floating-point unit
+ ; being enabled.
+ ;
+ ; Note that this does not use DriverLib since it might not be included
+ ; in this project.
+ ;
+ MOVW R0, #0xED88
+ MOVT R0, #0xE000
+ LDR R1, [R0]
+ ORR R1, #0x00F00000
+ STR R1, [R0]
+
+ ;
+ ; Call the C library enty point that handles startup. This will copy
+ ; the .data section initializers from flash to SRAM and zero fill the
+ ; .bss section.
+ ;
+ IMPORT __main
+ B __main
+
+;******************************************************************************
+;
+; This is the code that gets called when the processor receives a NMI. This
+; simply enters an infinite loop, preserving the system state for examination
+; by a debugger.
+;
+;******************************************************************************
+NmiSR
+ B NmiSR
+
+;******************************************************************************
+;
+; This is the code that gets called when the processor receives a fault
+; interrupt. This simply enters an infinite loop, preserving the system state
+; for examination by a debugger.
+;
+;******************************************************************************
+FaultISR
+ B FaultISR
+
+;******************************************************************************
+;
+; This is the code that gets called when the processor receives an unexpected
+; interrupt. This simply enters an infinite loop, preserving the system state
+; for examination by a debugger.
+;
+;******************************************************************************
+IntDefaultHandler
+ B IntDefaultHandler
+
+;******************************************************************************
+;
+; Make sure the end of this section is aligned.
+;
+;******************************************************************************
+ ALIGN
+
+;******************************************************************************
+;
+; Some code in the normal code section for initializing the heap and stack.
+;
+;******************************************************************************
+ AREA |.text|, CODE, READONLY
+
+;******************************************************************************
+;
+; The function expected of the C library startup code for defining the stack
+; and heap memory locations. For the C library version of the startup code,
+; provide this function so that the C library initialization code can find out
+; the location of the stack and heap.
+;
+;******************************************************************************
+ IF :DEF: __MICROLIB
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+ ELSE
+ IMPORT __use_two_region_memory
+ EXPORT __user_initial_stackheap
+__user_initial_stackheap
+ LDR R0, =HeapMem
+ LDR R1, =(StackMem + Stack)
+ LDR R2, =(HeapMem + Heap)
+ LDR R3, =StackMem
+ BX LR
+ ENDIF
+
+;******************************************************************************
+;
+; Make sure the end of this section is aligned.
+;
+;******************************************************************************
+ ALIGN
+
+;******************************************************************************
+;
+; Tell the assembler that we're done.
+;
+;******************************************************************************
+ END