Added Board Files for CC2650
authorBorja Martinez <borja.martinez@gmail.com>
Tue, 4 Oct 2016 20:06:44 +0000 (22:06 +0200)
committerBorja Martinez <borja.martinez@gmail.com>
Tue, 4 Oct 2016 20:06:44 +0000 (22:06 +0200)
16 files changed:
Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.h [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.c [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.h [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/main.c
Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.c [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_Blink/main.c
Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.c [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.h [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/main.c
Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.c [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.h [deleted file]
Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/main.c
Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.c
Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/uart_printf.h
Basic-Test-Package/CC2650/board/CC2650_I3M.c [moved from Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.c with 93% similarity]
Basic-Test-Package/CC2650/board/CC2650_I3M.h [moved from Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.h with 97% similarity]

diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.h
deleted file mode 100644 (file)
index 1ab67d2..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- *  @file       CC2650_I3MOTE.h
- *
- *  @brief      CC2650 LaunchPad Board Specific header file.
- *
- *  NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- *  ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- *  Includes
- *  ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- *  Externs
- *  ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- *  Defines
- *  ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR    (0x41)
-#define Board_HDC1000_ADDR   (0x43)
-#define Board_HDC1080_ADDR   (0x40)
-#define Board_TMP007_ADDR    (0x44)
-#define Board_OPT3001_ADDR   (0x45)
-#define Board_MPU9250_ADDR   (0x68)
-#define Board_BMP280_ADDR    (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- *      <board signal alias>        <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0             IOID_23
-#define Board_I2C0_SCL0             IOID_24
-
-#define Board_LEDR                  IOID_5
-#define Board_LEDG                  IOID_6
-
-#define Board_LED_ON                1
-#define Board_LED_OFF               0
-
-/* Discrete inputs */
-#define Board_BTN1                  IOID_4
-#define Board_BTN2                  PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX               IOID_2          /* RXD  */
-#define Board_UART_TX               IOID_3          /* TXD  */
-
-/* DAC8730 UART */
-//#define Board_UART_TX               IOID_8          /* TCD to DAC*/
-//#define Board_UART_RX               IOID_9          /* RXD from DAC  */
-
-/* SPI Board */
-#define Board_SPI0_IRQ              IOID_10
-#define Board_SPI0_MISO             IOID_12
-#define Board_SPI0_MOSI             IOID_13
-#define Board_SPI0_CLK              IOID_14
-#define Board_SPI0_CSN              IOID_15
-
-#define Board_SPI1_MISO             IOID_18
-#define Board_SPI1_MOSI             IOID_19
-#define Board_SPI1_CLK              IOID_20
-#define Board_SPI1_CSN              IOID_21
-#define Board_SPI1_IRQ              IOID_22
-
-/* Power */
-//#define Board_DIO0                IOID_0  // VCCIO_DAC
-//#define Board_DIO1                IOID_1  // GPS_PWR_nEN
-//#define Board_DIO7                IOID_7  // EH_nBYPASS
-//#define Board_DIO25               IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26               IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27               IOID_27 // VBAT_OK
-//#define Board_DIO28               IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11                 IOID_11 // BSL
-//#define Board_DIO16                 IOID_16 // JTAG_TDO
-//#define Board_DIO17                 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG          PIN_UNASSIGNED
-#define Board_DIO24_ANALOG          PIN_UNASSIGNED
-#define Board_DIO25_ANALOG          PIN_UNASSIGNED
-#define Board_DIO26_ANALOG          PIN_UNASSIGNED
-#define Board_DIO27_ANALOG          PIN_UNASSIGNED
-#define Board_DIO28_ANALOG          PIN_UNASSIGNED
-#define Board_DIO29_ANALOG          PIN_UNASSIGNED
-#define Board_DIO30_ANALOG          PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0                PIN_UNASSIGNED
-#define Board_PWMPIN1                PIN_UNASSIGNED
-#define Board_PWMPIN2                PIN_UNASSIGNED
-#define Board_PWMPIN3                PIN_UNASSIGNED
-#define Board_PWMPIN4                PIN_UNASSIGNED
-#define Board_PWMPIN5                PIN_UNASSIGNED
-#define Board_PWMPIN6                PIN_UNASSIGNED
-#define Board_PWMPIN7                PIN_UNASSIGNED
-
-
-/** ============================================================================
- *  Instance identifiers
- *  ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C                   CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0                  CC2650_I3MOTE_SPI0
-#define Board_SPI1                  CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART                  CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO                CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A             CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B             CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A             CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B             CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A             CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B             CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A             CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B             CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0                  CC2650_I3MOTE_PWM0
-#define Board_PWM1                  CC2650_I3MOTE_PWM1
-#define Board_PWM2                  CC2650_I3MOTE_PWM2
-#define Board_PWM3                  CC2650_I3MOTE_PWM3
-#define Board_PWM4                  CC2650_I3MOTE_PWM4
-#define Board_PWM5                  CC2650_I3MOTE_PWM5
-#define Board_PWM6                  CC2650_I3MOTE_PWM6
-#define Board_PWM7                  CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- *  Number of peripherals and their names
- *  ==========================================================================*/
-
-/*!
- *  @def    CC2650_I3MOTE_I2CName
- *  @brief  Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
-    CC2650_I3MOTE_I2C0 = 0,
-
-    CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- *  @def    CC2650_I3MOTE_CryptoName
- *  @brief  Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
-    CC2650_I3MOTE_CRYPTO0 = 0,
-
-    CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_SPIName
- *  @brief  Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
-    CC2650_I3MOTE_SPI0 = 0,
-    CC2650_I3MOTE_SPI1,
-
-    CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- *  @def    CC2650_I3MOTE_UARTName
- *  @brief  Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
-    CC2650_I3MOTE_UART0 = 0,
-
-    CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- *  @def    CC2650_I3MOTE_UdmaName
- *  @brief  Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
-    CC2650_I3MOTE_UDMA0 = 0,
-
-    CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimerName
- *  @brief  Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
-    CC2650_I3MOTE_GPTIMER0A = 0,
-    CC2650_I3MOTE_GPTIMER0B,
-    CC2650_I3MOTE_GPTIMER1A,
-    CC2650_I3MOTE_GPTIMER1B,
-    CC2650_I3MOTE_GPTIMER2A,
-    CC2650_I3MOTE_GPTIMER2B,
-    CC2650_I3MOTE_GPTIMER3A,
-    CC2650_I3MOTE_GPTIMER3B,
-    CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimers
- *  @brief  Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
-    CC2650_I3MOTE_GPTIMER0 = 0,
-    CC2650_I3MOTE_GPTIMER1,
-    CC2650_I3MOTE_GPTIMER2,
-    CC2650_I3MOTE_GPTIMER3,
-    CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- *  @def    CC2650_I3MOTE_PWM
- *  @brief  Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
-    CC2650_I3MOTE_PWM0 = 0,
-    CC2650_I3MOTE_PWM1,
-    CC2650_I3MOTE_PWM2,
-    CC2650_I3MOTE_PWM3,
-    CC2650_I3MOTE_PWM4,
-    CC2650_I3MOTE_PWM5,
-    CC2650_I3MOTE_PWM6,
-    CC2650_I3MOTE_PWM7,
-    CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- *  @def    CC2650_I3MOTE_ADCBufName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
-    CC2650_I3MOTE_ADCBuf0 = 0,
-    CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_ADCName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
-    CC2650_I3MOTE_ADC0 = 0,
-    CC2650_I3MOTE_ADC1,
-    CC2650_I3MOTE_ADC2,
-    CC2650_I3MOTE_ADC3,
-    CC2650_I3MOTE_ADC4,
-    CC2650_I3MOTE_ADC5,
-    CC2650_I3MOTE_ADC6,
-    CC2650_I3MOTE_ADC7,
-    CC2650_I3MOTE_ADCDCOUPL,
-    CC2650_I3MOTE_ADCVSS,
-    CC2650_I3MOTE_ADCVDDS,
-    CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.c
deleted file mode 100644 (file)
index f3e0087..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ====================== CC2650_I3MOTE.c ===================================
- *  This file is responsible for setting up the board specific items for the
- *  CC2650 LaunchPad.
- */
-
-
-/*
- *  ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- *  ========================= IO driver initialization =========================
- *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- *  settings for this board.
- *  When a pin is allocated and then de-allocated, it will revert to the state
- *  configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
-    Board_LEDR   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_LEDG   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_BTN1   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
-    Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
-    Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
-    PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
-    .intPriority = ~0,
-    .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- *  ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
-    .policyInitFxn      = NULL,
-    .policyFxn          = &PowerCC26XX_standbyPolicy,
-    .calibrateFxn       = &PowerCC26XX_calibrate,
-    .enablePolicy       = TRUE,
-    .calibrateRCOSC_LF  = TRUE,
-    .calibrateRCOSC_HF  = TRUE,
-};
-/*
- *  ============================= Power end ====================================
- */
-
-/*
- *  ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
-    {
-        .baseAddr       = UART0_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_UART0,
-        .intNum         = INT_UART0_COMB,
-        .intPriority    = ~0,
-        .swiPriority    = 0,
-        .txPin          = Board_UART_TX,
-        .rxPin          = Board_UART_RX,
-        .ctsPin         = PIN_UNASSIGNED,
-        .rtsPin         = PIN_UNASSIGNED
-    }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
-    {
-        .fxnTablePtr = &UARTCC26XX_fxnTable,
-        .object      = &uartCC26XXObjects[0],
-        .hwAttrs     = &uartCC26XXHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ============================= UART end =====================================
- */
-
-/*
- *  ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
-    {
-        .baseAddr    = UDMA0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_UDMA,
-        .intNum      = INT_DMA_ERR,
-        .intPriority = ~0
-    }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
-    {
-         .object  = &udmaObjects[0],
-         .hwAttrs = &udmaHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ============================= UDMA end =====================================
- */
-
-/*
- *  ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
-    {
-        .baseAddr           = SSI0_BASE,
-        .intNum             = INT_SSI0_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI0,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI0_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI0_TX,
-        .mosiPin            = Board_SPI0_MOSI,
-        .misoPin            = Board_SPI0_MISO,
-        .clkPin             = Board_SPI0_CLK,
-        .csnPin             = Board_SPI0_CSN
-    },
-    {
-        .baseAddr           = SSI1_BASE,
-        .intNum             = INT_SSI1_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI1,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI1_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI1_TX,
-        .mosiPin            = Board_SPI1_MOSI,
-        .misoPin            = Board_SPI1_MISO,
-        .clkPin             = Board_SPI1_CLK,
-        .csnPin             = Board_SPI1_CSN
-    }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[0],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[0]
-    },
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[1],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[1]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== SPI DMA end =====================================
-*/
-
-
-/*
- *  ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
-    {
-        .baseAddr = I2C0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_I2C0,
-        .intNum = INT_I2C_IRQ,
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .sdaPin = Board_I2C0_SDA0,
-        .sclPin = Board_I2C0_SCL0,
-    }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
-    {
-        .fxnTablePtr = &I2CCC26XX_fxnTable,
-        .object = &i2cCC26xxObjects[0],
-        .hwAttrs = &i2cCC26xxHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== I2C end =========================================
- */
-
-/*
- *  ========================== Crypto begin ====================================
- *  NOTE: The Crypto implementation should be considered experimental
- *        and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
-    {
-        .baseAddr       = CRYPTO_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_CRYPTO,
-        .intNum         = INT_CRYPTO_RESULT_AVAIL_IRQ,
-        .intPriority    = ~0,
-    }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
-    {
-         .object  = &cryptoCC26XXObjects[0],
-         .hwAttrs = &cryptoCC26XXHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ========================== Crypto end ======================================
- */
-
-
-/*
- *  ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
-    .hwiCpe0Priority = ~0,
-    .hwiHwPriority   = ~0,
-    .swiCpe0Priority =  0,
-    .swiHwPriority   =  0,
-};
-
-/*
- *  ========================== RF driver end ===================================
- */
-
-/*
- *  ========================= Display begin ====================================
- */
-
-/*
- *  ========================= Display end ======================================
- */
-
-/*
- *  ============================ GPTimer begin =================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/*  GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- *  ============================ GPTimer end ===================================
- */
-
-
-
-/*
- *  ============================= PWM begin ====================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output.   */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
-    { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
-    { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
-    { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
-    { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
-    { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
-    { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
-    { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
-    { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
-    { NULL,                NULL,                 NULL                 }
-};
-
-
-/*
- *  ============================= PWM end ======================================
- */
-
-/*
- *  ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- *  This table converts a virtual adc channel into a dio and internal analogue input signal.
- *  This table is necessary for the functioning of the adcBuf driver.
- *  Comment out unused entries to save flash.
- *  Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- *  The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
-    //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
-    //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
-    //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
-    //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
-    //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
-    //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
-    //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
-    //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
-    {
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .adcChannelLut = ADCBufCC26XX_adcChannelLut,
-        .gpTimerUnit = Board_GPTIMER0A,
-        .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
-    }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
-    {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
-    {NULL, NULL, NULL},
-};
-/*
- *  ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- *  ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
-    {
-        .adcDIO = Board_DIO23_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO7,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO24_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO6,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO25_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO5,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO26_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO4,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO27_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO3,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO28_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO2,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO29_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO1,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO30_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO0,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_DCOUPL,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VSS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VDDS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    }
-};
-
-const ADC_Config ADC_config[] = {
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
-    {NULL, NULL, NULL},
-};
-
-/*
- *  ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_3wSPI_Master_MSP432_SlaveIRQ/CC2650_I3M.h
deleted file mode 100644 (file)
index 1ab67d2..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- *  @file       CC2650_I3MOTE.h
- *
- *  @brief      CC2650 LaunchPad Board Specific header file.
- *
- *  NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- *  ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- *  Includes
- *  ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- *  Externs
- *  ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- *  Defines
- *  ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR    (0x41)
-#define Board_HDC1000_ADDR   (0x43)
-#define Board_HDC1080_ADDR   (0x40)
-#define Board_TMP007_ADDR    (0x44)
-#define Board_OPT3001_ADDR   (0x45)
-#define Board_MPU9250_ADDR   (0x68)
-#define Board_BMP280_ADDR    (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- *      <board signal alias>        <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0             IOID_23
-#define Board_I2C0_SCL0             IOID_24
-
-#define Board_LEDR                  IOID_5
-#define Board_LEDG                  IOID_6
-
-#define Board_LED_ON                1
-#define Board_LED_OFF               0
-
-/* Discrete inputs */
-#define Board_BTN1                  IOID_4
-#define Board_BTN2                  PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX               IOID_2          /* RXD  */
-#define Board_UART_TX               IOID_3          /* TXD  */
-
-/* DAC8730 UART */
-//#define Board_UART_TX               IOID_8          /* TCD to DAC*/
-//#define Board_UART_RX               IOID_9          /* RXD from DAC  */
-
-/* SPI Board */
-#define Board_SPI0_IRQ              IOID_10
-#define Board_SPI0_MISO             IOID_12
-#define Board_SPI0_MOSI             IOID_13
-#define Board_SPI0_CLK              IOID_14
-#define Board_SPI0_CSN              IOID_15
-
-#define Board_SPI1_MISO             IOID_18
-#define Board_SPI1_MOSI             IOID_19
-#define Board_SPI1_CLK              IOID_20
-#define Board_SPI1_CSN              IOID_21
-#define Board_SPI1_IRQ              IOID_22
-
-/* Power */
-//#define Board_DIO0                IOID_0  // VCCIO_DAC
-//#define Board_DIO1                IOID_1  // GPS_PWR_nEN
-//#define Board_DIO7                IOID_7  // EH_nBYPASS
-//#define Board_DIO25               IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26               IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27               IOID_27 // VBAT_OK
-//#define Board_DIO28               IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11                 IOID_11 // BSL
-//#define Board_DIO16                 IOID_16 // JTAG_TDO
-//#define Board_DIO17                 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG          PIN_UNASSIGNED
-#define Board_DIO24_ANALOG          PIN_UNASSIGNED
-#define Board_DIO25_ANALOG          PIN_UNASSIGNED
-#define Board_DIO26_ANALOG          PIN_UNASSIGNED
-#define Board_DIO27_ANALOG          PIN_UNASSIGNED
-#define Board_DIO28_ANALOG          PIN_UNASSIGNED
-#define Board_DIO29_ANALOG          PIN_UNASSIGNED
-#define Board_DIO30_ANALOG          PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0                PIN_UNASSIGNED
-#define Board_PWMPIN1                PIN_UNASSIGNED
-#define Board_PWMPIN2                PIN_UNASSIGNED
-#define Board_PWMPIN3                PIN_UNASSIGNED
-#define Board_PWMPIN4                PIN_UNASSIGNED
-#define Board_PWMPIN5                PIN_UNASSIGNED
-#define Board_PWMPIN6                PIN_UNASSIGNED
-#define Board_PWMPIN7                PIN_UNASSIGNED
-
-
-/** ============================================================================
- *  Instance identifiers
- *  ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C                   CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0                  CC2650_I3MOTE_SPI0
-#define Board_SPI1                  CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART                  CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO                CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A             CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B             CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A             CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B             CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A             CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B             CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A             CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B             CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0                  CC2650_I3MOTE_PWM0
-#define Board_PWM1                  CC2650_I3MOTE_PWM1
-#define Board_PWM2                  CC2650_I3MOTE_PWM2
-#define Board_PWM3                  CC2650_I3MOTE_PWM3
-#define Board_PWM4                  CC2650_I3MOTE_PWM4
-#define Board_PWM5                  CC2650_I3MOTE_PWM5
-#define Board_PWM6                  CC2650_I3MOTE_PWM6
-#define Board_PWM7                  CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- *  Number of peripherals and their names
- *  ==========================================================================*/
-
-/*!
- *  @def    CC2650_I3MOTE_I2CName
- *  @brief  Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
-    CC2650_I3MOTE_I2C0 = 0,
-
-    CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- *  @def    CC2650_I3MOTE_CryptoName
- *  @brief  Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
-    CC2650_I3MOTE_CRYPTO0 = 0,
-
-    CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_SPIName
- *  @brief  Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
-    CC2650_I3MOTE_SPI0 = 0,
-    CC2650_I3MOTE_SPI1,
-
-    CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- *  @def    CC2650_I3MOTE_UARTName
- *  @brief  Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
-    CC2650_I3MOTE_UART0 = 0,
-
-    CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- *  @def    CC2650_I3MOTE_UdmaName
- *  @brief  Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
-    CC2650_I3MOTE_UDMA0 = 0,
-
-    CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimerName
- *  @brief  Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
-    CC2650_I3MOTE_GPTIMER0A = 0,
-    CC2650_I3MOTE_GPTIMER0B,
-    CC2650_I3MOTE_GPTIMER1A,
-    CC2650_I3MOTE_GPTIMER1B,
-    CC2650_I3MOTE_GPTIMER2A,
-    CC2650_I3MOTE_GPTIMER2B,
-    CC2650_I3MOTE_GPTIMER3A,
-    CC2650_I3MOTE_GPTIMER3B,
-    CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimers
- *  @brief  Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
-    CC2650_I3MOTE_GPTIMER0 = 0,
-    CC2650_I3MOTE_GPTIMER1,
-    CC2650_I3MOTE_GPTIMER2,
-    CC2650_I3MOTE_GPTIMER3,
-    CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- *  @def    CC2650_I3MOTE_PWM
- *  @brief  Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
-    CC2650_I3MOTE_PWM0 = 0,
-    CC2650_I3MOTE_PWM1,
-    CC2650_I3MOTE_PWM2,
-    CC2650_I3MOTE_PWM3,
-    CC2650_I3MOTE_PWM4,
-    CC2650_I3MOTE_PWM5,
-    CC2650_I3MOTE_PWM6,
-    CC2650_I3MOTE_PWM7,
-    CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- *  @def    CC2650_I3MOTE_ADCBufName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
-    CC2650_I3MOTE_ADCBuf0 = 0,
-    CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_ADCName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
-    CC2650_I3MOTE_ADC0 = 0,
-    CC2650_I3MOTE_ADC1,
-    CC2650_I3MOTE_ADC2,
-    CC2650_I3MOTE_ADC3,
-    CC2650_I3MOTE_ADC4,
-    CC2650_I3MOTE_ADC5,
-    CC2650_I3MOTE_ADC6,
-    CC2650_I3MOTE_ADC7,
-    CC2650_I3MOTE_ADCDCOUPL,
-    CC2650_I3MOTE_ADCVSS,
-    CC2650_I3MOTE_ADCVDDS,
-    CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
index 2cfa0cae113fa12d902f99133c6deeec9c4c17cf..f96d6413fe77a203d952a8ba38f27d98c51aeecb 100644 (file)
@@ -61,8 +61,8 @@ void buttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {
 
        /* Wait IRQ from MSP432 line*/
        PIN_setOutputValue(ledPinHandle, Board_LED1,1);
-    Semaphore_post(semHandle);
     CPUdelay(8000*100);
+    Semaphore_post(semHandle);
        PIN_setOutputValue(ledPinHandle, Board_LED1,0);
 
 }
@@ -89,7 +89,7 @@ Void echoFxn(UArg arg0, UArg arg1)
     if(!spi){
       System_printf("SPI did not open");
     }
-    System_printf("SPI Init Done\r\n");
+    System_printf("SPI-Master Open\r\n");
 
        spiTransaction.rxBuf= rxBufferPointer;
        spiTransaction.txBuf = txBufferPointer;
@@ -99,11 +99,13 @@ Void echoFxn(UArg arg0, UArg arg1)
 
        Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
 
-       txBufferPointer[0]=i++;
-       rxBufferPointer[0]=0;
+       //txBufferPointer[0]=i++;
+       //rxBufferPointer[0]=0;
+
+       txBufferPointer[0]=rxBufferPointer[0];
 
                if (SPI_transfer(spi,&spiTransaction)) {
-                       System_printf("TxData: %x RxData: %x\r\n",txBufferPointer[0],rxBufferPointer[0]);
+                       System_printf("RxData: %x TxData: %x\r\n",rxBufferPointer[0],txBufferPointer[0]);
                }
     }
 
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.c
deleted file mode 100644 (file)
index f3e0087..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ====================== CC2650_I3MOTE.c ===================================
- *  This file is responsible for setting up the board specific items for the
- *  CC2650 LaunchPad.
- */
-
-
-/*
- *  ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- *  ========================= IO driver initialization =========================
- *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- *  settings for this board.
- *  When a pin is allocated and then de-allocated, it will revert to the state
- *  configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
-    Board_LEDR   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_LEDG   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_BTN1   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
-    Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
-    Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
-    PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
-    .intPriority = ~0,
-    .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- *  ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
-    .policyInitFxn      = NULL,
-    .policyFxn          = &PowerCC26XX_standbyPolicy,
-    .calibrateFxn       = &PowerCC26XX_calibrate,
-    .enablePolicy       = TRUE,
-    .calibrateRCOSC_LF  = TRUE,
-    .calibrateRCOSC_HF  = TRUE,
-};
-/*
- *  ============================= Power end ====================================
- */
-
-/*
- *  ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
-    {
-        .baseAddr       = UART0_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_UART0,
-        .intNum         = INT_UART0_COMB,
-        .intPriority    = ~0,
-        .swiPriority    = 0,
-        .txPin          = Board_UART_TX,
-        .rxPin          = Board_UART_RX,
-        .ctsPin         = PIN_UNASSIGNED,
-        .rtsPin         = PIN_UNASSIGNED
-    }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
-    {
-        .fxnTablePtr = &UARTCC26XX_fxnTable,
-        .object      = &uartCC26XXObjects[0],
-        .hwAttrs     = &uartCC26XXHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ============================= UART end =====================================
- */
-
-/*
- *  ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
-    {
-        .baseAddr    = UDMA0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_UDMA,
-        .intNum      = INT_DMA_ERR,
-        .intPriority = ~0
-    }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
-    {
-         .object  = &udmaObjects[0],
-         .hwAttrs = &udmaHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ============================= UDMA end =====================================
- */
-
-/*
- *  ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
-    {
-        .baseAddr           = SSI0_BASE,
-        .intNum             = INT_SSI0_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI0,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI0_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI0_TX,
-        .mosiPin            = Board_SPI0_MOSI,
-        .misoPin            = Board_SPI0_MISO,
-        .clkPin             = Board_SPI0_CLK,
-        .csnPin             = Board_SPI0_CSN
-    },
-    {
-        .baseAddr           = SSI1_BASE,
-        .intNum             = INT_SSI1_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI1,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI1_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI1_TX,
-        .mosiPin            = Board_SPI1_MOSI,
-        .misoPin            = Board_SPI1_MISO,
-        .clkPin             = Board_SPI1_CLK,
-        .csnPin             = Board_SPI1_CSN
-    }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[0],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[0]
-    },
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[1],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[1]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== SPI DMA end =====================================
-*/
-
-
-/*
- *  ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
-    {
-        .baseAddr = I2C0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_I2C0,
-        .intNum = INT_I2C_IRQ,
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .sdaPin = Board_I2C0_SDA0,
-        .sclPin = Board_I2C0_SCL0,
-    }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
-    {
-        .fxnTablePtr = &I2CCC26XX_fxnTable,
-        .object = &i2cCC26xxObjects[0],
-        .hwAttrs = &i2cCC26xxHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== I2C end =========================================
- */
-
-/*
- *  ========================== Crypto begin ====================================
- *  NOTE: The Crypto implementation should be considered experimental
- *        and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
-    {
-        .baseAddr       = CRYPTO_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_CRYPTO,
-        .intNum         = INT_CRYPTO_RESULT_AVAIL_IRQ,
-        .intPriority    = ~0,
-    }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
-    {
-         .object  = &cryptoCC26XXObjects[0],
-         .hwAttrs = &cryptoCC26XXHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ========================== Crypto end ======================================
- */
-
-
-/*
- *  ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
-    .hwiCpe0Priority = ~0,
-    .hwiHwPriority   = ~0,
-    .swiCpe0Priority =  0,
-    .swiHwPriority   =  0,
-};
-
-/*
- *  ========================== RF driver end ===================================
- */
-
-/*
- *  ========================= Display begin ====================================
- */
-
-/*
- *  ========================= Display end ======================================
- */
-
-/*
- *  ============================ GPTimer begin =================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/*  GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- *  ============================ GPTimer end ===================================
- */
-
-
-
-/*
- *  ============================= PWM begin ====================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output.   */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
-    { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
-    { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
-    { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
-    { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
-    { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
-    { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
-    { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
-    { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
-    { NULL,                NULL,                 NULL                 }
-};
-
-
-/*
- *  ============================= PWM end ======================================
- */
-
-/*
- *  ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- *  This table converts a virtual adc channel into a dio and internal analogue input signal.
- *  This table is necessary for the functioning of the adcBuf driver.
- *  Comment out unused entries to save flash.
- *  Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- *  The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
-    //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
-    //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
-    //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
-    //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
-    //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
-    //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
-    //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
-    //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
-    {
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .adcChannelLut = ADCBufCC26XX_adcChannelLut,
-        .gpTimerUnit = Board_GPTIMER0A,
-        .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
-    }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
-    {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
-    {NULL, NULL, NULL},
-};
-/*
- *  ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- *  ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
-    {
-        .adcDIO = Board_DIO23_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO7,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO24_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO6,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO25_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO5,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO26_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO4,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO27_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO3,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO28_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO2,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO29_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO1,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO30_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO0,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_DCOUPL,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VSS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VDDS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    }
-};
-
-const ADC_Config ADC_config[] = {
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
-    {NULL, NULL, NULL},
-};
-
-/*
- *  ========================== ADC end =========================================
- */
index a6c6bfe66ffa6ae1b8d724d5c5dcf4a052e88d89..00045f3537dcb9172dbb9cb0e99011ea42be7f53 100644 (file)
@@ -103,7 +103,7 @@ int main(void)
 
     /* Construct heartBeat Task  thread */
     Task_Params_init(&taskParams);
-    taskParams.arg0 = 500000 / Clock_tickPeriod;
+    taskParams.arg0 = 250000 / Clock_tickPeriod;
     taskParams.stackSize = TASKSTACKSIZE;
     taskParams.stack = &task0Stack;
     Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
@@ -114,7 +114,7 @@ int main(void)
         System_abort("Error initializing board LED pins\n");
     }
 
-    PIN_setOutputValue(ledPinHandle, Board_LED1, 0);
+    PIN_setOutputValue(ledPinHandle, Board_LED1, 1);
     PIN_setOutputValue(ledPinHandle, Board_LED0, 0);
 
     /* Start BIOS */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.c
deleted file mode 100644 (file)
index f3e0087..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ====================== CC2650_I3MOTE.c ===================================
- *  This file is responsible for setting up the board specific items for the
- *  CC2650 LaunchPad.
- */
-
-
-/*
- *  ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- *  ========================= IO driver initialization =========================
- *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- *  settings for this board.
- *  When a pin is allocated and then de-allocated, it will revert to the state
- *  configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
-    Board_LEDR   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_LEDG   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_BTN1   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
-    Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
-    Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
-    PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
-    .intPriority = ~0,
-    .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- *  ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
-    .policyInitFxn      = NULL,
-    .policyFxn          = &PowerCC26XX_standbyPolicy,
-    .calibrateFxn       = &PowerCC26XX_calibrate,
-    .enablePolicy       = TRUE,
-    .calibrateRCOSC_LF  = TRUE,
-    .calibrateRCOSC_HF  = TRUE,
-};
-/*
- *  ============================= Power end ====================================
- */
-
-/*
- *  ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
-    {
-        .baseAddr       = UART0_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_UART0,
-        .intNum         = INT_UART0_COMB,
-        .intPriority    = ~0,
-        .swiPriority    = 0,
-        .txPin          = Board_UART_TX,
-        .rxPin          = Board_UART_RX,
-        .ctsPin         = PIN_UNASSIGNED,
-        .rtsPin         = PIN_UNASSIGNED
-    }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
-    {
-        .fxnTablePtr = &UARTCC26XX_fxnTable,
-        .object      = &uartCC26XXObjects[0],
-        .hwAttrs     = &uartCC26XXHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ============================= UART end =====================================
- */
-
-/*
- *  ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
-    {
-        .baseAddr    = UDMA0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_UDMA,
-        .intNum      = INT_DMA_ERR,
-        .intPriority = ~0
-    }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
-    {
-         .object  = &udmaObjects[0],
-         .hwAttrs = &udmaHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ============================= UDMA end =====================================
- */
-
-/*
- *  ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
-    {
-        .baseAddr           = SSI0_BASE,
-        .intNum             = INT_SSI0_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI0,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI0_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI0_TX,
-        .mosiPin            = Board_SPI0_MOSI,
-        .misoPin            = Board_SPI0_MISO,
-        .clkPin             = Board_SPI0_CLK,
-        .csnPin             = Board_SPI0_CSN
-    },
-    {
-        .baseAddr           = SSI1_BASE,
-        .intNum             = INT_SSI1_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI1,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI1_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI1_TX,
-        .mosiPin            = Board_SPI1_MOSI,
-        .misoPin            = Board_SPI1_MISO,
-        .clkPin             = Board_SPI1_CLK,
-        .csnPin             = Board_SPI1_CSN
-    }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[0],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[0]
-    },
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[1],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[1]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== SPI DMA end =====================================
-*/
-
-
-/*
- *  ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
-    {
-        .baseAddr = I2C0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_I2C0,
-        .intNum = INT_I2C_IRQ,
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .sdaPin = Board_I2C0_SDA0,
-        .sclPin = Board_I2C0_SCL0,
-    }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
-    {
-        .fxnTablePtr = &I2CCC26XX_fxnTable,
-        .object = &i2cCC26xxObjects[0],
-        .hwAttrs = &i2cCC26xxHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== I2C end =========================================
- */
-
-/*
- *  ========================== Crypto begin ====================================
- *  NOTE: The Crypto implementation should be considered experimental
- *        and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
-    {
-        .baseAddr       = CRYPTO_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_CRYPTO,
-        .intNum         = INT_CRYPTO_RESULT_AVAIL_IRQ,
-        .intPriority    = ~0,
-    }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
-    {
-         .object  = &cryptoCC26XXObjects[0],
-         .hwAttrs = &cryptoCC26XXHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ========================== Crypto end ======================================
- */
-
-
-/*
- *  ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
-    .hwiCpe0Priority = ~0,
-    .hwiHwPriority   = ~0,
-    .swiCpe0Priority =  0,
-    .swiHwPriority   =  0,
-};
-
-/*
- *  ========================== RF driver end ===================================
- */
-
-/*
- *  ========================= Display begin ====================================
- */
-
-/*
- *  ========================= Display end ======================================
- */
-
-/*
- *  ============================ GPTimer begin =================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/*  GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- *  ============================ GPTimer end ===================================
- */
-
-
-
-/*
- *  ============================= PWM begin ====================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output.   */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
-    { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
-    { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
-    { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
-    { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
-    { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
-    { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
-    { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
-    { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
-    { NULL,                NULL,                 NULL                 }
-};
-
-
-/*
- *  ============================= PWM end ======================================
- */
-
-/*
- *  ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- *  This table converts a virtual adc channel into a dio and internal analogue input signal.
- *  This table is necessary for the functioning of the adcBuf driver.
- *  Comment out unused entries to save flash.
- *  Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- *  The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
-    //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
-    //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
-    //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
-    //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
-    //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
-    //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
-    //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
-    //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
-    {
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .adcChannelLut = ADCBufCC26XX_adcChannelLut,
-        .gpTimerUnit = Board_GPTIMER0A,
-        .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
-    }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
-    {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
-    {NULL, NULL, NULL},
-};
-/*
- *  ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- *  ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
-    {
-        .adcDIO = Board_DIO23_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO7,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO24_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO6,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO25_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO5,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO26_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO4,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO27_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO3,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO28_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO2,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO29_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO1,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO30_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO0,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_DCOUPL,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VSS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VDDS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    }
-};
-
-const ADC_Config ADC_config[] = {
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
-    {NULL, NULL, NULL},
-};
-
-/*
- *  ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_DebugUART_EchoPC/CC2650_I3M.h
deleted file mode 100644 (file)
index 1ab67d2..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- *  @file       CC2650_I3MOTE.h
- *
- *  @brief      CC2650 LaunchPad Board Specific header file.
- *
- *  NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- *  ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- *  Includes
- *  ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- *  Externs
- *  ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- *  Defines
- *  ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR    (0x41)
-#define Board_HDC1000_ADDR   (0x43)
-#define Board_HDC1080_ADDR   (0x40)
-#define Board_TMP007_ADDR    (0x44)
-#define Board_OPT3001_ADDR   (0x45)
-#define Board_MPU9250_ADDR   (0x68)
-#define Board_BMP280_ADDR    (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- *      <board signal alias>        <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0             IOID_23
-#define Board_I2C0_SCL0             IOID_24
-
-#define Board_LEDR                  IOID_5
-#define Board_LEDG                  IOID_6
-
-#define Board_LED_ON                1
-#define Board_LED_OFF               0
-
-/* Discrete inputs */
-#define Board_BTN1                  IOID_4
-#define Board_BTN2                  PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX               IOID_2          /* RXD  */
-#define Board_UART_TX               IOID_3          /* TXD  */
-
-/* DAC8730 UART */
-//#define Board_UART_TX               IOID_8          /* TCD to DAC*/
-//#define Board_UART_RX               IOID_9          /* RXD from DAC  */
-
-/* SPI Board */
-#define Board_SPI0_IRQ              IOID_10
-#define Board_SPI0_MISO             IOID_12
-#define Board_SPI0_MOSI             IOID_13
-#define Board_SPI0_CLK              IOID_14
-#define Board_SPI0_CSN              IOID_15
-
-#define Board_SPI1_MISO             IOID_18
-#define Board_SPI1_MOSI             IOID_19
-#define Board_SPI1_CLK              IOID_20
-#define Board_SPI1_CSN              IOID_21
-#define Board_SPI1_IRQ              IOID_22
-
-/* Power */
-//#define Board_DIO0                IOID_0  // VCCIO_DAC
-//#define Board_DIO1                IOID_1  // GPS_PWR_nEN
-//#define Board_DIO7                IOID_7  // EH_nBYPASS
-//#define Board_DIO25               IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26               IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27               IOID_27 // VBAT_OK
-//#define Board_DIO28               IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11                 IOID_11 // BSL
-//#define Board_DIO16                 IOID_16 // JTAG_TDO
-//#define Board_DIO17                 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG          PIN_UNASSIGNED
-#define Board_DIO24_ANALOG          PIN_UNASSIGNED
-#define Board_DIO25_ANALOG          PIN_UNASSIGNED
-#define Board_DIO26_ANALOG          PIN_UNASSIGNED
-#define Board_DIO27_ANALOG          PIN_UNASSIGNED
-#define Board_DIO28_ANALOG          PIN_UNASSIGNED
-#define Board_DIO29_ANALOG          PIN_UNASSIGNED
-#define Board_DIO30_ANALOG          PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0                PIN_UNASSIGNED
-#define Board_PWMPIN1                PIN_UNASSIGNED
-#define Board_PWMPIN2                PIN_UNASSIGNED
-#define Board_PWMPIN3                PIN_UNASSIGNED
-#define Board_PWMPIN4                PIN_UNASSIGNED
-#define Board_PWMPIN5                PIN_UNASSIGNED
-#define Board_PWMPIN6                PIN_UNASSIGNED
-#define Board_PWMPIN7                PIN_UNASSIGNED
-
-
-/** ============================================================================
- *  Instance identifiers
- *  ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C                   CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0                  CC2650_I3MOTE_SPI0
-#define Board_SPI1                  CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART                  CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO                CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A             CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B             CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A             CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B             CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A             CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B             CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A             CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B             CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0                  CC2650_I3MOTE_PWM0
-#define Board_PWM1                  CC2650_I3MOTE_PWM1
-#define Board_PWM2                  CC2650_I3MOTE_PWM2
-#define Board_PWM3                  CC2650_I3MOTE_PWM3
-#define Board_PWM4                  CC2650_I3MOTE_PWM4
-#define Board_PWM5                  CC2650_I3MOTE_PWM5
-#define Board_PWM6                  CC2650_I3MOTE_PWM6
-#define Board_PWM7                  CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- *  Number of peripherals and their names
- *  ==========================================================================*/
-
-/*!
- *  @def    CC2650_I3MOTE_I2CName
- *  @brief  Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
-    CC2650_I3MOTE_I2C0 = 0,
-
-    CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- *  @def    CC2650_I3MOTE_CryptoName
- *  @brief  Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
-    CC2650_I3MOTE_CRYPTO0 = 0,
-
-    CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_SPIName
- *  @brief  Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
-    CC2650_I3MOTE_SPI0 = 0,
-    CC2650_I3MOTE_SPI1,
-
-    CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- *  @def    CC2650_I3MOTE_UARTName
- *  @brief  Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
-    CC2650_I3MOTE_UART0 = 0,
-
-    CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- *  @def    CC2650_I3MOTE_UdmaName
- *  @brief  Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
-    CC2650_I3MOTE_UDMA0 = 0,
-
-    CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimerName
- *  @brief  Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
-    CC2650_I3MOTE_GPTIMER0A = 0,
-    CC2650_I3MOTE_GPTIMER0B,
-    CC2650_I3MOTE_GPTIMER1A,
-    CC2650_I3MOTE_GPTIMER1B,
-    CC2650_I3MOTE_GPTIMER2A,
-    CC2650_I3MOTE_GPTIMER2B,
-    CC2650_I3MOTE_GPTIMER3A,
-    CC2650_I3MOTE_GPTIMER3B,
-    CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimers
- *  @brief  Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
-    CC2650_I3MOTE_GPTIMER0 = 0,
-    CC2650_I3MOTE_GPTIMER1,
-    CC2650_I3MOTE_GPTIMER2,
-    CC2650_I3MOTE_GPTIMER3,
-    CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- *  @def    CC2650_I3MOTE_PWM
- *  @brief  Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
-    CC2650_I3MOTE_PWM0 = 0,
-    CC2650_I3MOTE_PWM1,
-    CC2650_I3MOTE_PWM2,
-    CC2650_I3MOTE_PWM3,
-    CC2650_I3MOTE_PWM4,
-    CC2650_I3MOTE_PWM5,
-    CC2650_I3MOTE_PWM6,
-    CC2650_I3MOTE_PWM7,
-    CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- *  @def    CC2650_I3MOTE_ADCBufName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
-    CC2650_I3MOTE_ADCBuf0 = 0,
-    CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_ADCName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
-    CC2650_I3MOTE_ADC0 = 0,
-    CC2650_I3MOTE_ADC1,
-    CC2650_I3MOTE_ADC2,
-    CC2650_I3MOTE_ADC3,
-    CC2650_I3MOTE_ADC4,
-    CC2650_I3MOTE_ADC5,
-    CC2650_I3MOTE_ADC6,
-    CC2650_I3MOTE_ADC7,
-    CC2650_I3MOTE_ADCDCOUPL,
-    CC2650_I3MOTE_ADCVSS,
-    CC2650_I3MOTE_ADCVDDS,
-    CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
index d56b5b5cb145bebcd36022d19e86ba78b56452af..4d2d3f5ba454285a7b151386f874343e018e8f34 100644 (file)
@@ -102,7 +102,7 @@ int main(void)
 
     /* Construct heartBeat Task  thread */
     Task_Params_init(&taskParams);
-    taskParams.arg0 = 500000 / Clock_tickPeriod;
+    taskParams.arg0 = 2000000 / Clock_tickPeriod;
     taskParams.stackSize = TASKSTACKSIZE;
     taskParams.stack = &task0Stack;
     Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.c b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.c
deleted file mode 100644 (file)
index f3e0087..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ====================== CC2650_I3MOTE.c ===================================
- *  This file is responsible for setting up the board specific items for the
- *  CC2650 LaunchPad.
- */
-
-
-/*
- *  ====================== Includes ============================================
- */
-#include <xdc/std.h>
-#include <xdc/runtime/System.h>
-
-#include <ti/sysbios/family/arm/m3/Hwi.h>
-#include <ti/drivers/PIN.h>
-#include <ti/drivers/pin/PINCC26XX.h>
-#include <ti/drivers/PWM.h>
-#include <ti/drivers/pwm/PWMTimerCC26XX.h>
-#include <ti/drivers/timer/GPTimerCC26XX.h>
-#include <ti/drivers/Power.h>
-#include <ti/drivers/power/PowerCC26XX.h>
-
-#include <inc/hw_memmap.h>
-#include <inc/hw_ints.h>
-#include <driverlib/ioc.h>
-#include <driverlib/udma.h>
-
-#include <Board.h>
-
-/*
- *  ========================= IO driver initialization =========================
- *  From main, PIN_init(BoardGpioInitTable) should be called to setup safe
- *  settings for this board.
- *  When a pin is allocated and then de-allocated, it will revert to the state
- *  configured in this table.
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(BoardGpioInitTable, ".const:BoardGpioInitTable")
-#pragma DATA_SECTION(PINCC26XX_hwAttrs, ".const:PINCC26XX_hwAttrs")
-#endif
-
-const PIN_Config BoardGpioInitTable[] = {
-
-    Board_LEDR   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_LEDG   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
-    Board_BTN1   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
-    Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
-    Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
-    PIN_TERMINATE
-};
-
-const PINCC26XX_HWAttrs PINCC26XX_hwAttrs = {
-    .intPriority = ~0,
-    .swiPriority = 0
-};
-/*============================================================================*/
-
-/*
- *  ============================= Power begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PowerCC26XX_config, ".const:PowerCC26XX_config")
-#endif
-const PowerCC26XX_Config PowerCC26XX_config = {
-    .policyInitFxn      = NULL,
-    .policyFxn          = &PowerCC26XX_standbyPolicy,
-    .calibrateFxn       = &PowerCC26XX_calibrate,
-    .enablePolicy       = TRUE,
-    .calibrateRCOSC_LF  = TRUE,
-    .calibrateRCOSC_HF  = TRUE,
-};
-/*
- *  ============================= Power end ====================================
- */
-
-/*
- *  ============================= UART begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UART_config, ".const:UART_config")
-#pragma DATA_SECTION(uartCC26XXHWAttrs, ".const:uartCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/UART.h>
-#include <ti/drivers/uart/UARTCC26XX.h>
-
-/* UART objects */
-UARTCC26XX_Object uartCC26XXObjects[CC2650_I3MOTE_UARTCOUNT];
-
-/* UART hardware parameter structure, also used to assign UART pins */
-const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC2650_I3MOTE_UARTCOUNT] = {
-    {
-        .baseAddr       = UART0_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_UART0,
-        .intNum         = INT_UART0_COMB,
-        .intPriority    = ~0,
-        .swiPriority    = 0,
-        .txPin          = Board_UART_TX,
-        .rxPin          = Board_UART_RX,
-        .ctsPin         = PIN_UNASSIGNED,
-        .rtsPin         = PIN_UNASSIGNED
-    }
-};
-
-/* UART configuration structure */
-const UART_Config UART_config[] = {
-    {
-        .fxnTablePtr = &UARTCC26XX_fxnTable,
-        .object      = &uartCC26XXObjects[0],
-        .hwAttrs     = &uartCC26XXHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ============================= UART end =====================================
- */
-
-/*
- *  ============================= UDMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(UDMACC26XX_config, ".const:UDMACC26XX_config")
-#pragma DATA_SECTION(udmaHWAttrs, ".const:udmaHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/dma/UDMACC26XX.h>
-
-/* UDMA objects */
-UDMACC26XX_Object udmaObjects[CC2650_I3MOTE_UDMACOUNT];
-
-/* UDMA configuration structure */
-const UDMACC26XX_HWAttrs udmaHWAttrs[CC2650_I3MOTE_UDMACOUNT] = {
-    {
-        .baseAddr    = UDMA0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_UDMA,
-        .intNum      = INT_DMA_ERR,
-        .intPriority = ~0
-    }
-};
-
-/* UDMA configuration structure */
-const UDMACC26XX_Config UDMACC26XX_config[] = {
-    {
-         .object  = &udmaObjects[0],
-         .hwAttrs = &udmaHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ============================= UDMA end =====================================
- */
-
-/*
- *  ========================== SPI DMA begin ===================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(SPI_config, ".const:SPI_config")
-#pragma DATA_SECTION(spiCC26XXDMAHWAttrs, ".const:spiCC26XXDMAHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/spi/SPICC26XXDMA.h>
-
-/* SPI objects */
-SPICC26XXDMA_Object spiCC26XXDMAObjects[CC2650_I3MOTE_SPICOUNT];
-
-/* SPI configuration structure, describing which pins are to be used */
-const SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs[CC2650_I3MOTE_SPICOUNT] = {
-    {
-        .baseAddr           = SSI0_BASE,
-        .intNum             = INT_SSI0_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI0,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI0_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI0_TX,
-        .mosiPin            = Board_SPI0_MOSI,
-        .misoPin            = Board_SPI0_MISO,
-        .clkPin             = Board_SPI0_CLK,
-        .csnPin             = Board_SPI0_CSN
-    },
-    {
-        .baseAddr           = SSI1_BASE,
-        .intNum             = INT_SSI1_COMB,
-        .intPriority        = ~0,
-        .swiPriority        = 0,
-        .powerMngrId        = PowerCC26XX_PERIPH_SSI1,
-        .defaultTxBufValue  = 0,
-        .rxChannelBitMask   = 1<<UDMA_CHAN_SSI1_RX,
-        .txChannelBitMask   = 1<<UDMA_CHAN_SSI1_TX,
-        .mosiPin            = Board_SPI1_MOSI,
-        .misoPin            = Board_SPI1_MISO,
-        .clkPin             = Board_SPI1_CLK,
-        .csnPin             = Board_SPI1_CSN
-    }
-};
-
-/* SPI configuration structure */
-const SPI_Config SPI_config[] = {
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[0],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[0]
-    },
-    {
-         .fxnTablePtr = &SPICC26XXDMA_fxnTable,
-         .object      = &spiCC26XXDMAObjects[1],
-         .hwAttrs     = &spiCC26XXDMAHWAttrs[1]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== SPI DMA end =====================================
-*/
-
-
-/*
- *  ============================= I2C Begin=====================================
-*/
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(I2C_config, ".const:I2C_config")
-#pragma DATA_SECTION(i2cCC26xxHWAttrs, ".const:i2cCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/i2c/I2CCC26XX.h>
-
-/* I2C objects */
-I2CCC26XX_Object i2cCC26xxObjects[CC2650_I3MOTE_I2CCOUNT];
-
-/* I2C configuration structure, describing which pins are to be used */
-const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_I3MOTE_I2CCOUNT] = {
-    {
-        .baseAddr = I2C0_BASE,
-        .powerMngrId = PowerCC26XX_PERIPH_I2C0,
-        .intNum = INT_I2C_IRQ,
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .sdaPin = Board_I2C0_SDA0,
-        .sclPin = Board_I2C0_SCL0,
-    }
-};
-
-/* I2C configuration structure */
-const I2C_Config I2C_config[] = {
-    {
-        .fxnTablePtr = &I2CCC26XX_fxnTable,
-        .object = &i2cCC26xxObjects[0],
-        .hwAttrs = &i2cCC26xxHWAttrs[0]
-    },
-    {NULL, NULL, NULL}
-};
-/*
- *  ========================== I2C end =========================================
- */
-
-/*
- *  ========================== Crypto begin ====================================
- *  NOTE: The Crypto implementation should be considered experimental
- *        and not validated!
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(CryptoCC26XX_config, ".const:CryptoCC26XX_config")
-#pragma DATA_SECTION(cryptoCC26XXHWAttrs, ".const:cryptoCC26XXHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/crypto/CryptoCC26XX.h>
-
-/* Crypto objects */
-CryptoCC26XX_Object cryptoCC26XXObjects[CC2650_I3MOTE_CRYPTOCOUNT];
-
-/* Crypto configuration structure, describing which pins are to be used */
-const CryptoCC26XX_HWAttrs cryptoCC26XXHWAttrs[CC2650_I3MOTE_CRYPTOCOUNT] = {
-    {
-        .baseAddr       = CRYPTO_BASE,
-        .powerMngrId    = PowerCC26XX_PERIPH_CRYPTO,
-        .intNum         = INT_CRYPTO_RESULT_AVAIL_IRQ,
-        .intPriority    = ~0,
-    }
-};
-
-/* Crypto configuration structure */
-const CryptoCC26XX_Config CryptoCC26XX_config[] = {
-    {
-         .object  = &cryptoCC26XXObjects[0],
-         .hwAttrs = &cryptoCC26XXHWAttrs[0]
-    },
-    {NULL, NULL}
-};
-/*
- *  ========================== Crypto end ======================================
- */
-
-
-/*
- *  ========================= RF driver begin ==================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(RFCC26XX_hwAttrs, ".const:RFCC26XX_hwAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/rf/RF.h>
-
-/* RF hwi and swi priority */
-const RFCC26XX_HWAttrs RFCC26XX_hwAttrs = {
-    .hwiCpe0Priority = ~0,
-    .hwiHwPriority   = ~0,
-    .swiCpe0Priority =  0,
-    .swiHwPriority   =  0,
-};
-
-/*
- *  ========================== RF driver end ===================================
- */
-
-/*
- *  ========================= Display begin ====================================
- */
-
-/*
- *  ========================= Display end ======================================
- */
-
-/*
- *  ============================ GPTimer begin =================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(GPTimerCC26XX_config, ".const:GPTimerCC26XX_config")
-#pragma DATA_SECTION(gptimerCC26xxHWAttrs, ".const:gptimerCC26xxHWAttrs")
-#endif
-
-/* GPTimer hardware attributes, one per timer part (Timer 0A, 0B, 1A, 1B..) */
-const GPTimerCC26XX_HWAttrs gptimerCC26xxHWAttrs[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0A, },
-    { .baseAddr = GPT0_BASE, .intNum = INT_GPT0B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT0, .pinMux = GPT_PIN_0B, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1A, },
-    { .baseAddr = GPT1_BASE, .intNum = INT_GPT1B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT1, .pinMux = GPT_PIN_1B, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2A, },
-    { .baseAddr = GPT2_BASE, .intNum = INT_GPT2B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT2, .pinMux = GPT_PIN_2B, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3A, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3A, },
-    { .baseAddr = GPT3_BASE, .intNum = INT_GPT3B, .intPriority = (~0), .powerMngrId = PowerCC26XX_PERIPH_GPT3, .pinMux = GPT_PIN_3B, },
-};
-
-/*  GPTimer objects, one per full-width timer (A+B) (Timer 0, Timer 1..) */
-GPTimerCC26XX_Object gptimerCC26XXObjects[CC2650_I3MOTE_GPTIMERCOUNT];
-
-/* GPTimer configuration (used as GPTimer_Handle by driver and application) */
-const GPTimerCC26XX_Config GPTimerCC26XX_config[CC2650_I3MOTE_GPTIMERPARTSCOUNT] = {
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[0], GPT_A },
-    { &gptimerCC26XXObjects[0], &gptimerCC26xxHWAttrs[1], GPT_B },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[2], GPT_A },
-    { &gptimerCC26XXObjects[1], &gptimerCC26xxHWAttrs[3], GPT_B },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[4], GPT_A },
-    { &gptimerCC26XXObjects[2], &gptimerCC26xxHWAttrs[5], GPT_B },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[6], GPT_A },
-    { &gptimerCC26XXObjects[3], &gptimerCC26xxHWAttrs[7], GPT_B },
-};
-
-/*
- *  ============================ GPTimer end ===================================
- */
-
-
-
-/*
- *  ============================= PWM begin ====================================
- *  Remove unused entries to reduce flash usage both in Board.c and Board.h
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(PWM_config, ".const:PWM_config")
-#pragma DATA_SECTION(pwmtimerCC26xxHWAttrs, ".const:pwmtimerCC26xxHWAttrs")
-#endif
-
-/* PWM configuration, one per PWM output.   */
-PWMTimerCC26XX_HwAttrs pwmtimerCC26xxHWAttrs[CC2650_I3MOTE_PWMCOUNT] = {
-    { .pwmPin = Board_PWMPIN0, .gpTimerUnit = Board_GPTIMER0A },
-    { .pwmPin = Board_PWMPIN1, .gpTimerUnit = Board_GPTIMER0B },
-    { .pwmPin = Board_PWMPIN2, .gpTimerUnit = Board_GPTIMER1A },
-    { .pwmPin = Board_PWMPIN3, .gpTimerUnit = Board_GPTIMER1B },
-    { .pwmPin = Board_PWMPIN4, .gpTimerUnit = Board_GPTIMER2A },
-    { .pwmPin = Board_PWMPIN5, .gpTimerUnit = Board_GPTIMER2B },
-    { .pwmPin = Board_PWMPIN6, .gpTimerUnit = Board_GPTIMER3A },
-    { .pwmPin = Board_PWMPIN7, .gpTimerUnit = Board_GPTIMER3B },
-};
-
-/* PWM object, one per PWM output */
-PWMTimerCC26XX_Object pwmtimerCC26xxObjects[CC2650_I3MOTE_PWMCOUNT];
-
-extern const PWM_FxnTable PWMTimerCC26XX_fxnTable;
-
-/* PWM configuration (used as PWM_Handle by driver and application) */
-const PWM_Config PWM_config[CC2650_I3MOTE_PWMCOUNT + 1] = {
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[0], &pwmtimerCC26xxHWAttrs[0] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[1], &pwmtimerCC26xxHWAttrs[1] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[2], &pwmtimerCC26xxHWAttrs[2] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[3], &pwmtimerCC26xxHWAttrs[3] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[4], &pwmtimerCC26xxHWAttrs[4] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[5], &pwmtimerCC26xxHWAttrs[5] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[6], &pwmtimerCC26xxHWAttrs[6] },
-    { &PWMTimerCC26XX_fxnTable, &pwmtimerCC26xxObjects[7], &pwmtimerCC26xxHWAttrs[7] },
-    { NULL,                NULL,                 NULL                 }
-};
-
-
-/*
- *  ============================= PWM end ======================================
- */
-
-/*
- *  ========================== ADCBuf begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADCBuf_config, ".const:ADCBuf_config")
-#pragma DATA_SECTION(adcBufCC26xxHWAttrs, ".const:adcBufCC26xxHWAttrs")
-#pragma DATA_SECTION(ADCBufCC26XX_adcChannelLut, ".const:ADCBufCC26XX_adcChannelLut")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADCBuf.h>
-#include <ti/drivers/adcbuf/ADCBufCC26XX.h>
-
-/* ADCBuf objects */
-ADCBufCC26XX_Object adcBufCC26xxObjects[CC2650_I3MOTE_ADCBufCOUNT];
-
-/*
- *  This table converts a virtual adc channel into a dio and internal analogue input signal.
- *  This table is necessary for the functioning of the adcBuf driver.
- *  Comment out unused entries to save flash.
- *  Dio and internal signal pairs are hardwired. Do not remap them in the table. You may reorder entire entries though.
- *  The mapping of dio and internal signals is package dependent.
- */
-const ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_adcChannelLut[] = {
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VDDS},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_DCOUPL},
-    {PIN_UNASSIGNED, ADC_COMPB_IN_VSS},
-    //{Board_DIO23_ANALOG, ADC_COMPB_IN_AUXIO7},
-    //{Board_DIO24_ANALOG, ADC_COMPB_IN_AUXIO6},
-    //{Board_DIO25_ANALOG, ADC_COMPB_IN_AUXIO5},
-    //{Board_DIO26_ANALOG, ADC_COMPB_IN_AUXIO4},
-    //{Board_DIO27_ANALOG, ADC_COMPB_IN_AUXIO3},
-    //{Board_DIO28_ANALOG, ADC_COMPB_IN_AUXIO2},
-    //{Board_DIO29_ANALOG, ADC_COMPB_IN_AUXIO1},
-    //{Board_DIO30_ANALOG, ADC_COMPB_IN_AUXIO0},
-};
-
-const ADCBufCC26XX_HWAttrs adcBufCC26xxHWAttrs[CC2650_I3MOTE_ADCBufCOUNT] = {
-    {
-        .intPriority = ~0,
-        .swiPriority = 0,
-        .adcChannelLut = ADCBufCC26XX_adcChannelLut,
-        .gpTimerUnit = Board_GPTIMER0A,
-        .gptDMAChannelMask = 1 << UDMA_CHAN_TIMER0_A,
-    }
-};
-
-const ADCBuf_Config ADCBuf_config[] = {
-    {&ADCBufCC26XX_fxnTable, &adcBufCC26xxObjects[0], &adcBufCC26xxHWAttrs[0]},
-    {NULL, NULL, NULL},
-};
-/*
- *  ========================== ADCBuf end =========================================
- */
-
-
-
-/*
- *  ========================== ADC begin =========================================
- */
-/* Place into subsections to allow the TI linker to remove items properly */
-#if defined(__TI_COMPILER_VERSION__)
-#pragma DATA_SECTION(ADC_config, ".const:ADC_config")
-#pragma DATA_SECTION(adcCC26xxHWAttrs, ".const:adcCC26xxHWAttrs")
-#endif
-
-/* Include drivers */
-#include <ti/drivers/ADC.h>
-#include <ti/drivers/adc/ADCCC26XX.h>
-
-/* ADC objects */
-ADCCC26XX_Object adcCC26xxObjects[CC2650_I3MOTE_ADCCOUNT];
-
-
-const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[CC2650_I3MOTE_ADCCOUNT] = {
-    {
-        .adcDIO = Board_DIO23_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO7,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO24_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO6,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO25_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO5,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO26_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO4,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO27_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO3,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO28_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO2,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO29_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO1,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = Board_DIO30_ANALOG,
-        .adcCompBInput = ADC_COMPB_IN_AUXIO0,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_10P9_MS,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_DCOUPL,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VSS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    },
-    {
-        .adcDIO = PIN_UNASSIGNED,
-        .adcCompBInput = ADC_COMPB_IN_VDDS,
-        .refSource = ADCCC26XX_FIXED_REFERENCE,
-        .samplingDuration = ADCCC26XX_SAMPLING_DURATION_2P7_US,
-        .inputScalingEnabled = true,
-        .triggerSource = ADCCC26XX_TRIGGER_MANUAL
-    }
-};
-
-const ADC_Config ADC_config[] = {
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[0], &adcCC26xxHWAttrs[0]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[1], &adcCC26xxHWAttrs[1]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[2], &adcCC26xxHWAttrs[2]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[3], &adcCC26xxHWAttrs[3]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[4], &adcCC26xxHWAttrs[4]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[5], &adcCC26xxHWAttrs[5]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[6], &adcCC26xxHWAttrs[6]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[7], &adcCC26xxHWAttrs[7]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[8], &adcCC26xxHWAttrs[8]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[9], &adcCC26xxHWAttrs[9]},
-    {&ADCCC26XX_fxnTable, &adcCC26xxObjects[10], &adcCC26xxHWAttrs[10]},
-    {NULL, NULL, NULL},
-};
-
-/*
- *  ========================== ADC end =========================================
- */
diff --git a/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.h b/Basic-Test-Package/CC2650/Test_CC2650_I2C_Sensors/CC2650_I3M.h
deleted file mode 100644 (file)
index 1ab67d2..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2015-2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/** ============================================================================
- *  @file       CC2650_I3MOTE.h
- *
- *  @brief      CC2650 LaunchPad Board Specific header file.
- *
- *  NB! This is the board file for CC2650 LaunchPad PCB version 1.1
- *
- *  ============================================================================
- */
-#ifndef __CC2650_I3MOTE_BOARD_H__
-#define __CC2650_I3MOTE_BOARD_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** ============================================================================
- *  Includes
- *  ==========================================================================*/
-#include <ti/drivers/PIN.h>
-#include <driverlib/ioc.h>
-
-/** ============================================================================
- *  Externs
- *  ==========================================================================*/
-extern const PIN_Config BoardGpioInitTable[];
-
-/** ============================================================================
- *  Defines
- *  ==========================================================================*/
-
-/* Same RF Configuration as 7x7 EM */
-#define CC2650EM_7ID
-#define CC2650_I3MOTE
-
-
-/* Sensors */
-#define Board_INA219_ADDR    (0x41)
-#define Board_HDC1000_ADDR   (0x43)
-#define Board_HDC1080_ADDR   (0x40)
-#define Board_TMP007_ADDR    (0x44)
-#define Board_OPT3001_ADDR   (0x45)
-#define Board_MPU9250_ADDR   (0x68)
-#define Board_BMP280_ADDR    (0x77)
-
-
-/* Mapping of pins to board signals using general board aliases
- *      <board signal alias>        <pin mapping>
- */
-/* Discrete outputs */
-/* I2C */
-
-#define Board_I2C0_SDA0             IOID_23
-#define Board_I2C0_SCL0             IOID_24
-
-#define Board_LEDR                  IOID_5
-#define Board_LEDG                  IOID_6
-
-#define Board_LED_ON                1
-#define Board_LED_OFF               0
-
-/* Discrete inputs */
-#define Board_BTN1                  IOID_4
-#define Board_BTN2                  PIN_UNASSIGNED
-
-/* Debug UART */
-#define Board_UART_RX               IOID_2          /* RXD  */
-#define Board_UART_TX               IOID_3          /* TXD  */
-
-/* DAC8730 UART */
-//#define Board_UART_TX               IOID_8          /* TCD to DAC*/
-//#define Board_UART_RX               IOID_9          /* RXD from DAC  */
-
-/* SPI Board */
-#define Board_SPI0_IRQ              IOID_10
-#define Board_SPI0_MISO             IOID_12
-#define Board_SPI0_MOSI             IOID_13
-#define Board_SPI0_CLK              IOID_14
-#define Board_SPI0_CSN              IOID_15
-
-#define Board_SPI1_MISO             IOID_18
-#define Board_SPI1_MOSI             IOID_19
-#define Board_SPI1_CLK              IOID_20
-#define Board_SPI1_CSN              IOID_21
-#define Board_SPI1_IRQ              IOID_22
-
-/* Power */
-//#define Board_DIO0                IOID_0  // VCCIO_DAC
-//#define Board_DIO1                IOID_1  // GPS_PWR_nEN
-//#define Board_DIO7                IOID_7  // EH_nBYPASS
-//#define Board_DIO25               IOID_25 // SSM_PWR_nEN
-//#define Board_DIO26               IOID_26 // GPS_PWR_nEN
-//#define Board_DIO27               IOID_27 // VBAT_OK
-//#define Board_DIO28               IOID_28 // SSM_5V_EN
-
-/* Misc */
-//#define Board_DIO11                 IOID_11 // BSL
-//#define Board_DIO16                 IOID_16 // JTAG_TDO
-//#define Board_DIO17                 IOID_17 // JTAG_TDI
-
-
-
-/* Analog */
-#define Board_DIO23_ANALOG          PIN_UNASSIGNED
-#define Board_DIO24_ANALOG          PIN_UNASSIGNED
-#define Board_DIO25_ANALOG          PIN_UNASSIGNED
-#define Board_DIO26_ANALOG          PIN_UNASSIGNED
-#define Board_DIO27_ANALOG          PIN_UNASSIGNED
-#define Board_DIO28_ANALOG          PIN_UNASSIGNED
-#define Board_DIO29_ANALOG          PIN_UNASSIGNED
-#define Board_DIO30_ANALOG          PIN_UNASSIGNED
-
-
-/* PWM outputs */
-#define Board_PWMPIN0                PIN_UNASSIGNED
-#define Board_PWMPIN1                PIN_UNASSIGNED
-#define Board_PWMPIN2                PIN_UNASSIGNED
-#define Board_PWMPIN3                PIN_UNASSIGNED
-#define Board_PWMPIN4                PIN_UNASSIGNED
-#define Board_PWMPIN5                PIN_UNASSIGNED
-#define Board_PWMPIN6                PIN_UNASSIGNED
-#define Board_PWMPIN7                PIN_UNASSIGNED
-
-
-/** ============================================================================
- *  Instance identifiers
- *  ==========================================================================*/
-/* Generic I2C instance identifiers */
-#define Board_I2C                   CC2650_I3MOTE_I2C0
-/* Generic SPI instance identifiers */
-#define Board_SPI0                  CC2650_I3MOTE_SPI0
-#define Board_SPI1                  CC2650_I3MOTE_SPI1
-/* Generic UART instance identifiers */
-#define Board_UART                  CC2650_I3MOTE_UART0
-/* Generic Crypto instance identifiers */
-#define Board_CRYPTO                CC2650_I3MOTE_CRYPTO0
-/* Generic GPTimer instance identifiers */
-#define Board_GPTIMER0A             CC2650_I3MOTE_GPTIMER0A
-#define Board_GPTIMER0B             CC2650_I3MOTE_GPTIMER0B
-#define Board_GPTIMER1A             CC2650_I3MOTE_GPTIMER1A
-#define Board_GPTIMER1B             CC2650_I3MOTE_GPTIMER1B
-#define Board_GPTIMER2A             CC2650_I3MOTE_GPTIMER2A
-#define Board_GPTIMER2B             CC2650_I3MOTE_GPTIMER2B
-#define Board_GPTIMER3A             CC2650_I3MOTE_GPTIMER3A
-#define Board_GPTIMER3B             CC2650_I3MOTE_GPTIMER3B
-/* Generic PWM instance identifiers */
-#define Board_PWM0                  CC2650_I3MOTE_PWM0
-#define Board_PWM1                  CC2650_I3MOTE_PWM1
-#define Board_PWM2                  CC2650_I3MOTE_PWM2
-#define Board_PWM3                  CC2650_I3MOTE_PWM3
-#define Board_PWM4                  CC2650_I3MOTE_PWM4
-#define Board_PWM5                  CC2650_I3MOTE_PWM5
-#define Board_PWM6                  CC2650_I3MOTE_PWM6
-#define Board_PWM7                  CC2650_I3MOTE_PWM7
-
-/** ============================================================================
- *  Number of peripherals and their names
- *  ==========================================================================*/
-
-/*!
- *  @def    CC2650_I3MOTE_I2CName
- *  @brief  Enum of I2C names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_I2CName {
-    CC2650_I3MOTE_I2C0 = 0,
-
-    CC2650_I3MOTE_I2CCOUNT
-} CC2650_I3MOTE_I2CName;
-
-/*!
- *  @def    CC2650_I3MOTE_CryptoName
- *  @brief  Enum of Crypto names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_CryptoName {
-    CC2650_I3MOTE_CRYPTO0 = 0,
-
-    CC2650_I3MOTE_CRYPTOCOUNT
-} CC2650_I3MOTE_CryptoName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_SPIName
- *  @brief  Enum of SPI names on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_SPIName {
-    CC2650_I3MOTE_SPI0 = 0,
-    CC2650_I3MOTE_SPI1,
-
-    CC2650_I3MOTE_SPICOUNT
-} CC2650_I3MOTE_SPIName;
-
-/*!
- *  @def    CC2650_I3MOTE_UARTName
- *  @brief  Enum of UARTs on the CC2650 dev board
- */
-typedef enum CC2650_I3MOTE_UARTName {
-    CC2650_I3MOTE_UART0 = 0,
-
-    CC2650_I3MOTE_UARTCOUNT
-} CC2650_I3MOTE_UARTName;
-
-/*!
- *  @def    CC2650_I3MOTE_UdmaName
- *  @brief  Enum of DMA buffers
- */
-typedef enum CC2650_I3MOTE_UdmaName {
-    CC2650_I3MOTE_UDMA0 = 0,
-
-    CC2650_I3MOTE_UDMACOUNT
-} CC2650_I3MOTE_UdmaName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimerName
- *  @brief  Enum of GPTimer parts
- */
-typedef enum CC2650_I3MOTE_GPTimerName
-{
-    CC2650_I3MOTE_GPTIMER0A = 0,
-    CC2650_I3MOTE_GPTIMER0B,
-    CC2650_I3MOTE_GPTIMER1A,
-    CC2650_I3MOTE_GPTIMER1B,
-    CC2650_I3MOTE_GPTIMER2A,
-    CC2650_I3MOTE_GPTIMER2B,
-    CC2650_I3MOTE_GPTIMER3A,
-    CC2650_I3MOTE_GPTIMER3B,
-    CC2650_I3MOTE_GPTIMERPARTSCOUNT
-} CC2650_I3MOTE_GPTimerName;
-
-/*!
- *  @def    CC2650_I3MOTE_GPTimers
- *  @brief  Enum of GPTimers
- */
-typedef enum CC2650_I3MOTE_GPTimers
-{
-    CC2650_I3MOTE_GPTIMER0 = 0,
-    CC2650_I3MOTE_GPTIMER1,
-    CC2650_I3MOTE_GPTIMER2,
-    CC2650_I3MOTE_GPTIMER3,
-    CC2650_I3MOTE_GPTIMERCOUNT
-} CC2650_I3MOTE_GPTimers;
-
-/*!
- *  @def    CC2650_I3MOTE_PWM
- *  @brief  Enum of PWM outputs on the board
- */
-typedef enum CC2650_I3MOTE_PWM
-{
-    CC2650_I3MOTE_PWM0 = 0,
-    CC2650_I3MOTE_PWM1,
-    CC2650_I3MOTE_PWM2,
-    CC2650_I3MOTE_PWM3,
-    CC2650_I3MOTE_PWM4,
-    CC2650_I3MOTE_PWM5,
-    CC2650_I3MOTE_PWM6,
-    CC2650_I3MOTE_PWM7,
-    CC2650_I3MOTE_PWMCOUNT
-} CC2650_I3MOTE_PWM;
-
-/*!
- *  @def    CC2650_I3MOTE_ADCBufName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCBufName {
-    CC2650_I3MOTE_ADCBuf0 = 0,
-    CC2650_I3MOTE_ADCBufCOUNT
-} CC2650_I3MOTE_ADCBufName;
-
-
-/*!
- *  @def    CC2650_I3MOTE_ADCName
- *  @brief  Enum of ADCs
- */
-typedef enum CC2650_I3MOTE_ADCName {
-    CC2650_I3MOTE_ADC0 = 0,
-    CC2650_I3MOTE_ADC1,
-    CC2650_I3MOTE_ADC2,
-    CC2650_I3MOTE_ADC3,
-    CC2650_I3MOTE_ADC4,
-    CC2650_I3MOTE_ADC5,
-    CC2650_I3MOTE_ADC6,
-    CC2650_I3MOTE_ADC7,
-    CC2650_I3MOTE_ADCDCOUPL,
-    CC2650_I3MOTE_ADCVSS,
-    CC2650_I3MOTE_ADCVDDS,
-    CC2650_I3MOTE_ADCCOUNT
-} CC2650_I3MOTE_ADCName;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __CC2650_I3MOTE_BOARD_H__ */
index 9f25b51b652f170d45a501c79ca59fb4dfe09415..afb520e338e072d42db8c7b24405f03ec98e8998 100644 (file)
@@ -4,12 +4,14 @@
 /* XDCtools Header files */
 #include <xdc/std.h>
 #include <xdc/runtime/System.h>
+#include <xdc/runtime/Error.h>
 
 /* BIOS Header files */
 #include <ti/sysbios/BIOS.h>
 #include <ti/sysbios/knl/Task.h>
 #include <ti/sysbios/knl/Clock.h>
 #include <ti/sysbios/knl/Semaphore.h>
+#include <ti/sysbios/knl/Event.h>
 
 /* TI-RTOS Header files */
 #include <ti/drivers/I2C.h>
@@ -23,7 +25,7 @@
 
 #include "uart_printf.h"
 
-#define TASKSTACKSIZE   2048
+#define TASKSTACKSIZE   (1024)
 
 Task_Struct task0Struct;
 Char task0Stack[TASKSTACKSIZE];
@@ -31,20 +33,29 @@ Char task0Stack[TASKSTACKSIZE];
 Task_Struct task1Struct;
 Char task1Stack[TASKSTACKSIZE];
 
+Task_Struct task2Struct;
+Char task2Stack[TASKSTACKSIZE];
+
 #define OPT3001
 #define HDC1080
 #define BMP280
-#define MPU9250
 #define TMP007
 
-/* Pin driver handle */
-static PIN_Handle ledPinHandle;
-static PIN_State ledPinState;
+#undef MPU9250
+#define LISHH12
+
 
 /* Semaphore */
 Semaphore_Struct semStruct;
 Semaphore_Handle semHandle;
 
+Event_Handle myEvent;
+Error_Block eb;
+
+/* Pin driver handle */
+static PIN_Handle ledPinHandle;
+static PIN_State ledPinState;
+
 /*
  * Application LED pin configuration table:
  *   - All LEDs board LEDs are off.
@@ -55,6 +66,47 @@ PIN_Config ledPinTable[] = {
     PIN_TERMINATE
 };
 
+/* Global memory storage for a PIN_Config table */
+static PIN_Handle buttonPinHandle;
+static PIN_State buttonPinState;
+
+PIN_Config buttonPinTable[] = {
+    Board_BUTTON0  | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
+    //Board_BUTTON1  | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE,
+    PIN_TERMINATE
+};
+
+
+void buttonCallbackFxn(PIN_Handle handle, PIN_Id pinId) {
+
+       PIN_setOutputValue(ledPinHandle, Board_LED0,0);
+       PIN_setOutputValue(ledPinHandle, Board_LED1,0);
+    CPUdelay(8000*200);
+       PIN_setOutputValue(ledPinHandle, Board_LED0,1);
+       PIN_setOutputValue(ledPinHandle, Board_LED1,1);
+
+       //Event_post(myEvent,Event_Id_02);
+       Semaphore_post(semHandle);
+
+}
+
+
+Void uartFxn(UArg arg0, UArg arg1)
+{
+       char input;
+
+       while (1) {
+               // Blocking Read
+               input=uart_getch();
+               if(input=='g'){
+                   //Event_post(myEvent,Event_Id_02);
+                   Semaphore_post(semHandle);
+               }
+               Task_sleep((UInt)arg0);
+       }
+
+}
+
 Void taskFxn(UArg arg0, UArg arg1)
 {
        uint8_t         txBuffer[1];
@@ -63,6 +115,10 @@ Void taskFxn(UArg arg0, UArg arg1)
     I2C_Params      i2cParams;
     I2C_Transaction i2cTransaction;
 
+       int flagerr=0;
+
+    //UInt events;
+
     /* Create I2C for usage */
     I2C_Params_init(&i2cParams);
     i2cParams.bitRate = I2C_100kHz;
@@ -71,7 +127,17 @@ Void taskFxn(UArg arg0, UArg arg1)
         System_abort("Error Initializing I2C\r\n");
     }
 
-    //while(1) {
+    System_printf("I2C Initialized\r\n");
+
+    System_printf("Press button:\r\n");
+       Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
+
+
+       /* Start test */
+    PIN_setOutputValue(ledPinHandle, Board_LED0,0);
+    PIN_setOutputValue(ledPinHandle, Board_LED1,0);
+
+       //while(1)
     {
 
 #ifdef OPT3001
@@ -86,13 +152,14 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
                        if (data != 0x5449) {
-                           PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        System_printf("OPT3001 ID 0x5449: %x\r\n",data);
                }else{
-                       PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                       Task_exit();
+                       System_printf("OPT3001 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
                }
 
 #endif
@@ -109,20 +176,20 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
                        if (data != 0x1050) {
-                           PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        //System_printf("HDC1080 Manufactured ID 0x5449: %x\n",data);
                        System_printf("HDC1080 Device ID 0x1050: %x\r\n",data);
                }
                else{
-                   PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                   Task_exit();
+                       System_printf("HDC1080 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
                }
 #endif
 
 #ifdef TMP007
-               //txBuffer[0] = 0xFE;
                /*
         txBuffer[0] = 0x1E;
                i2cTransaction.slaveAddress = Board_TMP007_ADDR;
@@ -134,13 +201,13 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
                        if (data != 0x5449) {
-                               PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        System_printf("TMP007 Manufactured ID 0x5449: %x\r\n",data);
                }else{
-                   PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                       Task_exit();
+                   Event_post(myEvent, Event_Id_00);
+                   flagerr=1;
                }
 
                */
@@ -155,13 +222,14 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint16_t data = (rxBuffer[0] << 8) | (rxBuffer[1] << 0);
                        if (data != 0x0078) {
-                           PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        System_printf("TMP007 Device ID 0x0078: %x\r\n",data);
                }else{
-                   PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                   Task_exit();
+                       System_printf("TMP007 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
                }
 
 #endif
@@ -178,13 +246,14 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint16_t data = (rxBuffer[0]);
                        if (data != 0x58) {
-                           PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        System_printf("BMP280 ID 0x58: %x\r\n",data);
                }else{
-                   PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                   Task_exit();
+                       System_printf("BMP280 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
                }
 #endif
 
@@ -199,18 +268,50 @@ Void taskFxn(UArg arg0, UArg arg1)
                if (I2C_transfer(i2c, &i2cTransaction)) {
                        uint8_t data = rxBuffer[0];
                        if (data != 0x71) {
-                           PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                           Task_exit();
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
                        }
                        System_printf("MPU9250 WHOIAM 0x71: %x\r\n",data);
                }else{
-                   PIN_setOutputValue(ledPinHandle, Board_LED0,1);
-                   Task_exit();
+                       System_printf("MPU9250 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
+               }
+#endif
+
+#ifdef LISHH12
+
+               txBuffer[0] = 0x0F;
+               i2cTransaction.slaveAddress = Board_LISHH12_ADDR;
+               i2cTransaction.writeBuf = txBuffer;
+               i2cTransaction.writeCount = 1;
+               i2cTransaction.readBuf = rxBuffer;
+               i2cTransaction.readCount = 1;
+
+               if (I2C_transfer(i2c, &i2cTransaction)) {
+                       uint8_t data = rxBuffer[0];
+                       if (data != 0x41) {
+                               Event_post(myEvent, Event_Id_00);
+                               flagerr=1;
+                       }
+                       System_printf("LISHH12 WHOIAM 0x41: %x\r\n",data);
+               }else{
+                       System_printf("LISHH12 I2c Transaction Failed\r\n");
+                       Event_post(myEvent, Event_Id_00);
+                       flagerr=1;
                }
 #endif
 
-               Semaphore_post(semHandle);
-               System_printf("***\r\n");
+               /* OK! */
+               if(flagerr==0){
+                       Event_post(myEvent, Event_Id_01);
+                       System_printf("***\r\n");
+                       System_flush();
+               }else{
+                       System_printf("KO!\r\n");
+                       System_flush();
+               }
+
                Task_sleep((UInt)arg0);
     }
 
@@ -225,35 +326,70 @@ Void taskFxn(UArg arg0, UArg arg1)
  */
 Void heartBeatFxn(UArg arg0, UArg arg1)
 {
-       Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
-    while (1) {
+
+       UInt events;
+
+       events=Event_pend(myEvent,Event_Id_NONE,Event_Id_00+Event_Id_01,BIOS_WAIT_FOREVER);
+
+       if(events & Event_Id_00){
+         while (1)
+         {
+        Task_sleep((UInt)arg0);
+        PIN_setOutputValue(ledPinHandle, Board_LED0,!PIN_getOutputValue(Board_LED0));
+      }
+       }
+
+       if(events & Event_Id_01){
+      while (1)
+      {
         Task_sleep((UInt)arg0);
-        //PIN_setOutputValue(ledPinHandle, Board_LED0,!PIN_getOutputValue(Board_LED0));
         PIN_setOutputValue(ledPinHandle, Board_LED1,!PIN_getOutputValue(Board_LED1));
-    }
+      }
+       }
 }
 
+
+
 /*
  *  ======== main ========
  */
+
+
 int main(void)
 {
     Task_Params taskParams;
+
     Semaphore_Params semParams;
 
     /* Call board init functions */
     Board_initGeneral();
     Board_initI2C();
     // Board_initSPI();
-    // Board_initUART();
+    Board_initUART();
     // Board_initWatchdog();
 
+    /* Default instance configuration params */
+    Error_init(&eb);
+    myEvent = Event_create(NULL,&eb);
+    if (myEvent == NULL) {
+        System_abort("Event create failed");
+    }
+
+
+
     UART_Params uartParams;
     UART_Params_init(&uartParams);
     uartParams.baudRate = 115200;
+    //uartParams.readEcho = UART_ECHO_OFF;
     UartPrintf_init(UART_open(Board_UART, &uartParams));
 
-    System_printf("Uart open\r\n");
+    /* Construct Test Task thread */
+    Task_Params_init(&taskParams);
+    taskParams.arg0 = 100000 / Clock_tickPeriod;
+    taskParams.stackSize = TASKSTACKSIZE;
+    taskParams.stack = &task1Stack;
+    Task_construct(&task1Struct, (Task_FuncPtr)taskFxn, &taskParams, NULL);
+
 
     /* Construct heartBeat Task  thread */
     Task_Params_init(&taskParams);
@@ -262,18 +398,27 @@ int main(void)
     taskParams.stack = &task0Stack;
     Task_construct(&task0Struct, (Task_FuncPtr)heartBeatFxn, &taskParams, NULL);
 
-
+    /* Construct Uart Task  thread */
     Task_Params_init(&taskParams);
-    taskParams.arg0 = 2000000 / Clock_tickPeriod;
+    taskParams.arg0 = 100000 / Clock_tickPeriod;
     taskParams.stackSize = TASKSTACKSIZE;
-    taskParams.stack = &task1Stack;
-    Task_construct(&task1Struct, (Task_FuncPtr)taskFxn, &taskParams, NULL);
+    taskParams.stack = &task2Stack;
+    Task_construct(&task2Struct, (Task_FuncPtr)uartFxn, &taskParams, NULL);
+
 
-    /* Construct Semaphore */
+    /* Construct Semaphore and Obtain instance handle */
     Semaphore_Params_init(&semParams);
-    Semaphore_construct(&semStruct, 0, &semParams);
+    Semaphore_construct(&semStruct,0, &semParams);
     semHandle = Semaphore_handle(&semStruct);
 
+    /* Setup callback for button pins */
+    buttonPinHandle = PIN_open(&buttonPinState, buttonPinTable);
+    if(!buttonPinHandle) {
+        System_abort("Error initializing button pins\n");
+    }
+    if (PIN_registerIntCb(buttonPinHandle, &buttonCallbackFxn) != 0) {
+        System_abort("Error registering button callback function");
+    }
 
     /* Open LED pins */
     ledPinHandle = PIN_open(&ledPinState, ledPinTable);
@@ -281,8 +426,8 @@ int main(void)
         System_abort("Error initializing board LED pins\n");
     }
 
-    PIN_setOutputValue(ledPinHandle, Board_LED0, 0);
-    PIN_setOutputValue(ledPinHandle, Board_LED1, 0);
+    PIN_setOutputValue(ledPinHandle, Board_LED0,1);
+    PIN_setOutputValue(ledPinHandle, Board_LED1,1);
 
     /* Start BIOS */
     BIOS_start();
index 140b3daf4331cfcbc2f8e142b210a7c903adaf91..89cc8b148a313d92d9433d015689bc22d87a4e48 100644 (file)
@@ -23,7 +23,7 @@
   its documentation for any purpose.\r
 \r
   YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE\r
-  PROVIDED \93AS IS\94 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
+  PROVIDED �AS IS� WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
   INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,\r
   NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL\r
   TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,\r
@@ -171,3 +171,18 @@ void uartPrintf_flush()
 \r
        uartPrintf_tail = curHead;\r
 }\r
+\r
+\r
+char uart_getch()\r
+{\r
+       char input;\r
+\r
+       if (NULL == hUart)\r
+               return 0;\r
+\r
+       // Blocking Read\r
+       UART_read(hUart,&input,1);\r
+       return input;\r
+}\r
+\r
+\r
index 84b82fe376e0e24374e32053887f8aa5999b264d..600ada4f4f5eec07a8e65402d027cc767471b8bc 100644 (file)
@@ -23,7 +23,7 @@
   its documentation for any purpose.\r
 \r
   YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE\r
-  PROVIDED \93AS IS\94 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
+  PROVIDED �AS IS� WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,\r
   INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,\r
   NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL\r
   TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,\r
@@ -73,6 +73,7 @@ extern "C"
  */\r
 void UartPrintf_init(UART_Handle handle);\r
 \r
+char uart_getch();\r
 \r
 #ifdef __cplusplus\r
 }\r
similarity index 93%
rename from Basic-Test-Package/CC2650/Test_CC2650_3wSPI_DAC8730/CC2650_I3M.c
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.c
index f3e0087f517cfa9741d6529ff96d98146272a401..64a0050607d83a1448f95e07bb975aa648d8ffca 100644 (file)
@@ -1,33 +1,4 @@
 /*
- * Copyright (c) 2016, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * *  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * *  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * *  Neither the name of Texas Instruments Incorporated nor the names of
- *    its contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 /*
similarity index 97%
rename from Basic-Test-Package/CC2650/Test_CC2650_Blink/CC2650_I3M.h
rename to Basic-Test-Package/CC2650/board/CC2650_I3M.h
index 1ab67d2d8efcda96720e2d526040a255e0d6bdf8..0c8b08b04ce3a012686a19f493fc824f05c3d872 100644 (file)
@@ -73,6 +73,9 @@ extern const PIN_Config BoardGpioInitTable[];
 #define Board_OPT3001_ADDR   (0x45)
 #define Board_MPU9250_ADDR   (0x68)
 #define Board_BMP280_ADDR    (0x77)
+#define Board_LISHH12_ADDR   (0x1E)
+
+
 
 
 /* Mapping of pins to board signals using general board aliases
@@ -84,8 +87,8 @@ extern const PIN_Config BoardGpioInitTable[];
 #define Board_I2C0_SDA0             IOID_23
 #define Board_I2C0_SCL0             IOID_24
 
-#define Board_LEDR                  IOID_5
 #define Board_LEDG                  IOID_6
+#define Board_LEDR                  IOID_5
 
 #define Board_LED_ON                1
 #define Board_LED_OFF               0
@@ -94,13 +97,17 @@ extern const PIN_Config BoardGpioInitTable[];
 #define Board_BTN1                  IOID_4
 #define Board_BTN2                  PIN_UNASSIGNED
 
-/* Debug UART */
-#define Board_UART_RX               IOID_2          /* RXD  */
-#define Board_UART_TX               IOID_3          /* TXD  */
 
 /* DAC8730 UART */
-//#define Board_UART_TX               IOID_8          /* TCD to DAC*/
-//#define Board_UART_RX               IOID_9          /* RXD from DAC  */
+#ifdef Board_UART1
+  #warning "DAC8730-UART"
+  #define Board_UART_TX               IOID_8  // TXD to DAC
+  #define Board_UART_RX               IOID_9  // RXD from DAC
+#else
+/* Debug UART */
+  #define Board_UART_RX               IOID_2
+  #define Board_UART_TX               IOID_3
+#endif
 
 /* SPI Board */
 #define Board_SPI0_IRQ              IOID_10