From 12c9056cec76e84bcd880376ebc14801a60ea1e9 Mon Sep 17 00:00:00 2001 From: Edvard Pettersen Date: Tue, 6 Feb 2018 15:18:07 +0100 Subject: [PATCH] Cleaned up CCFG configuration, and aligned CC13x0_cc26x0 and CC13x2_CC26x2 CPU conf --- arch/cpu/simplelink/Makefile.simplelink | 5 +- .../cc26x0_cc13x0/cc13x0-cc26x0-def.h | 104 +++++++++ ...c13x0-cc26x0-cm4.h => cc13x2-cc26x2-cm4.h} | 0 .../cc26x2_cc13x2}/cc13x2-cc26x2-def.h | 2 +- .../simplelink/cc26x2_cc13x2/simplelink-def.h | 2 +- arch/cpu/simplelink/ccfg-conf.h | 76 +++++++ arch/cpu/simplelink/rtimer-arch.c | 22 +- arch/cpu/simplelink/simplelink-conf.h | 192 ++++++++++++++--- arch/platform/simplelink/cc13x2-cc26x2-conf.h | 204 ------------------ 9 files changed, 359 insertions(+), 248 deletions(-) create mode 100644 arch/cpu/simplelink/cc26x0_cc13x0/cc13x0-cc26x0-def.h rename arch/cpu/simplelink/cc26x2_cc13x2/{cc13x0-cc26x0-cm4.h => cc13x2-cc26x2-cm4.h} (100%) rename arch/{platform/simplelink => cpu/simplelink/cc26x2_cc13x2}/cc13x2-cc26x2-def.h (98%) create mode 100644 arch/cpu/simplelink/ccfg-conf.h delete mode 100644 arch/platform/simplelink/cc13x2-cc26x2-conf.h diff --git a/arch/cpu/simplelink/Makefile.simplelink b/arch/cpu/simplelink/Makefile.simplelink index b5b9084d2..14b8efb59 100644 --- a/arch/cpu/simplelink/Makefile.simplelink +++ b/arch/cpu/simplelink/Makefile.simplelink @@ -8,7 +8,8 @@ SDK_DEVICE := $(shell ls $(SDK_DEVICES) | grep $(SIMPLELINK_DEVICE)) SDK_DEVICE_SOURCE := $(SDK_SOURCE)/ti/devices/$(SDK_DEVICE) SDK_DRIVERLIB := $(SDK_DEVICE_SOURCE)/driverlib SDK_DRIVERS := $(SDK_SOURCE)/ti/drivers -SDK_KERNEL := $(SIMPLELINK_SDK)/kernel/nortos/ +SDK_KERNEL := $(SIMPLELINK_SDK)/kernel/nortos +SDK_BOARDS := $(SDK_SOURCE)/ti/boards SDK_STARTUP := $(SDK_DEVICE_SOURCE)/startup_files SDK_STARTUP_SRCS = ccfg.c startup_gcc.c EXTERNALDIRS += $(SDK_STARTUP) @@ -67,7 +68,7 @@ $(OBJECTDIR)/ieee-addr.o: ieee-addr.c FORCE | $(OBJECTDIR) ### to make clean first $(OBJECTDIR)/ccfg.o: ccfg.c FORCE | $(OBJECTDIR) $(TRACE_CC) - $(Q)$(CC) $(CFLAGS) -include "simplelink-conf.h" -c $< -o $@ + $(Q)$(CC) $(CFLAGS) -include "ccfg-conf.h" -c $< -o $@ RAM_SIZE = 0x00003E00 FLASH_SIZE = 0x0001E000 diff --git a/arch/cpu/simplelink/cc26x0_cc13x0/cc13x0-cc26x0-def.h b/arch/cpu/simplelink/cc26x0_cc13x0/cc13x0-cc26x0-def.h new file mode 100644 index 000000000..5a1d855eb --- /dev/null +++ b/arch/cpu/simplelink/cc26x0_cc13x0/cc13x0-cc26x0-def.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2017, George Oikonomou - http://www.spd.gr + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the copyright holder 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 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*---------------------------------------------------------------------------*/ +#ifndef CC13XX_CC26XX_DEF_H_ +#define CC13XX_CC26XX_DEF_H_ +/*---------------------------------------------------------------------------*/ +#include +/*---------------------------------------------------------------------------*/ +/* TSCH related defines */ + +/* Delay between GO signal and SFD */ +#define RADIO_DELAY_BEFORE_TX ((unsigned)US_TO_RTIMERTICKS(81)) +/* Delay between GO signal and start listening. + * This value is so small because the radio is constantly on within each timeslot. */ +#define RADIO_DELAY_BEFORE_RX ((unsigned)US_TO_RTIMERTICKS(15)) +/* Delay between the SFD finishes arriving and it is detected in software. */ +#define RADIO_DELAY_BEFORE_DETECT ((unsigned)US_TO_RTIMERTICKS(352)) + +/* Timer conversion; radio is running at 4 MHz */ +#define RADIO_TIMER_SECOND 4000000u +#if (RTIMER_SECOND % 256) || (RADIO_TIMER_SECOND % 256) +#error RADIO_TO_RTIMER macro must be fixed! +#endif +#define RADIO_TO_RTIMER(X) ((uint32_t)(((uint64_t)(X) * (RTIMER_SECOND / 256)) / (RADIO_TIMER_SECOND / 256))) +#define USEC_TO_RADIO(X) ((X) * 4) + +/* The PHY header (preamble + SFD, 4+1 bytes) duration is equivalent to 10 symbols */ +#define RADIO_IEEE_802154_PHY_HEADER_DURATION_USEC 160 + +/* Do not turn off TSCH within a timeslot: not enough time */ +#define TSCH_CONF_RADIO_ON_DURING_TIMESLOT 1 + +/* Disable TSCH frame filtering */ +#define TSCH_CONF_HW_FRAME_FILTERING 0 + +/* Use hardware timestamps */ +#ifndef TSCH_CONF_RESYNC_WITH_SFD_TIMESTAMPS +#define TSCH_CONF_RESYNC_WITH_SFD_TIMESTAMPS 1 +#define TSCH_CONF_TIMESYNC_REMOVE_JITTER 0 +#endif + +#ifndef TSCH_CONF_BASE_DRIFT_PPM +/* The drift compared to "true" 10ms slots. + * Enable adaptive sync to enable compensation for this. + * Slot length 10000 usec + * 328 ticks + * Tick duration 30.517578125 usec + * Real slot duration 10009.765625 usec + * Target - real duration = -9.765625 usec + * TSCH_CONF_BASE_DRIFT_PPM -977 + */ +#define TSCH_CONF_BASE_DRIFT_PPM -977 +#endif + +/* 10 times per second */ +#ifndef TSCH_CONF_CHANNEL_SCAN_DURATION +#define TSCH_CONF_CHANNEL_SCAN_DURATION (CLOCK_SECOND / 10) +#endif + +/* Slightly reduce the TSCH guard time (from 2200 usec to 1800 usec) to make sure + * the CC26xx radio has sufficient time to start up. */ +#ifndef TSCH_CONF_RX_WAIT +#define TSCH_CONF_RX_WAIT 1800 +#endif +/*---------------------------------------------------------------------------*/ +#define RTIMER_ARCH_SECOND 65536 +/*---------------------------------------------------------------------------*/ +/* Path to CMSIS header */ +#define CMSIS_CONF_HEADER_PATH "cc13x2-cc26x2-cm4.h" + +/* Path to headers with implementation of mutexes and memory barriers */ +#define MUTEX_CONF_ARCH_HEADER_PATH "mutex-cortex.h" +#define MEMORY_BARRIER_CONF_ARCH_HEADER_PATH "memory-barrier-cortex.h" +/*---------------------------------------------------------------------------*/ +#endif /* CC13XX_CC26XX_DEF_H_ */ +/*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/simplelink/cc26x2_cc13x2/cc13x0-cc26x0-cm4.h b/arch/cpu/simplelink/cc26x2_cc13x2/cc13x2-cc26x2-cm4.h similarity index 100% rename from arch/cpu/simplelink/cc26x2_cc13x2/cc13x0-cc26x0-cm4.h rename to arch/cpu/simplelink/cc26x2_cc13x2/cc13x2-cc26x2-cm4.h diff --git a/arch/platform/simplelink/cc13x2-cc26x2-def.h b/arch/cpu/simplelink/cc26x2_cc13x2/cc13x2-cc26x2-def.h similarity index 98% rename from arch/platform/simplelink/cc13x2-cc26x2-def.h rename to arch/cpu/simplelink/cc26x2_cc13x2/cc13x2-cc26x2-def.h index 359c6f051..5a1d855eb 100644 --- a/arch/platform/simplelink/cc13x2-cc26x2-def.h +++ b/arch/cpu/simplelink/cc26x2_cc13x2/cc13x2-cc26x2-def.h @@ -94,7 +94,7 @@ #define RTIMER_ARCH_SECOND 65536 /*---------------------------------------------------------------------------*/ /* Path to CMSIS header */ -//#define CMSIS_CONF_HEADER_PATH "cc13x0-cc26x0-cm3.h" +#define CMSIS_CONF_HEADER_PATH "cc13x2-cc26x2-cm4.h" /* Path to headers with implementation of mutexes and memory barriers */ #define MUTEX_CONF_ARCH_HEADER_PATH "mutex-cortex.h" diff --git a/arch/cpu/simplelink/cc26x2_cc13x2/simplelink-def.h b/arch/cpu/simplelink/cc26x2_cc13x2/simplelink-def.h index d0e95a261..ada97c4b5 100644 --- a/arch/cpu/simplelink/cc26x2_cc13x2/simplelink-def.h +++ b/arch/cpu/simplelink/cc26x2_cc13x2/simplelink-def.h @@ -94,7 +94,7 @@ #define RTIMER_ARCH_SECOND 65536 /*---------------------------------------------------------------------------*/ /* Path to CMSIS header */ -#define CMSIS_CONF_HEADER_PATH "cc13x0-cc26x0-cm4.h" +#define CMSIS_CONF_HEADER_PATH "cc13x2-cc26x2-cm4.h" /* Path to headers with implementation of mutexes and memory barriers */ #define MUTEX_CONF_ARCH_HEADER_PATH "mutex-cortex.h" diff --git a/arch/cpu/simplelink/ccfg-conf.h b/arch/cpu/simplelink/ccfg-conf.h new file mode 100644 index 000000000..97be16b5d --- /dev/null +++ b/arch/cpu/simplelink/ccfg-conf.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2017, Alex Stanoev + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the copyright holder 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 HOLDER 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. + */ +/** + * \addtogroup cc26xx + * @{ + * + * \defgroup cc26xx-ccxxware-conf CCxxware-specific configuration + * + * @{ + * + * \file + * CCxxware-specific configuration for the cc26xx-cc13xx CPU family + */ +#ifndef CCXXWARE_CONF_H_ +#define CCXXWARE_CONF_H_ + +#include "contiki-conf.h" + +/*---------------------------------------------------------------------------*/ +/** + * \brief JTAG interface configuration + * + * Those values are not meant to be modified by the user + * @{ + */ +#if CCXXWARE_CONF_JTAG_INTERFACE_ENABLE +#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0xC5 +#define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0xC5 +#else +#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0x00 +#define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0x00 +#endif +/** @} */ +#endif /* CCXXWARE_CONF_H_ */ +/*---------------------------------------------------------------------------*/ +/** + * @} + * @} + */ diff --git a/arch/cpu/simplelink/rtimer-arch.c b/arch/cpu/simplelink/rtimer-arch.c index f9f1fbf7a..88d01c902 100644 --- a/arch/cpu/simplelink/rtimer-arch.c +++ b/arch/cpu/simplelink/rtimer-arch.c @@ -37,7 +37,8 @@ */ /*---------------------------------------------------------------------------*/ #include -#include + +#include #include #include @@ -53,10 +54,17 @@ static ClockP_Handle hClk; typedef void (*IsrFxn)(void); typedef void (*HwiDispatchFxn)(void); -static HwiDispatchFxn hwiDispatch = NULL; +static volatile HwiDispatchFxn hwiDispatch = NULL; +/*---------------------------------------------------------------------------*/ +/** + * \brief TODO + */ static void rtimer_clock_stub(uintptr_t arg) { /* do nothing */ } - +/*---------------------------------------------------------------------------*/ +/** + * \brief TODO + */ static void rtimer_isr_hook(void) { @@ -76,7 +84,6 @@ rtimer_isr_hook(void) IntPendClear(INT_AON_RTC_COMB); } } - /*---------------------------------------------------------------------------*/ /** * \brief TODO @@ -90,10 +97,10 @@ rtimer_arch_init(void) hClk = ClockP_construct(&gClk, rtimer_clock_stub, 0, &clkParams); // Try to access the RAM vector table - IsrFxn *pfnRAMVectors = (IsrFxn *)(HWREG(NVIC_VTABLE)); + volatile IsrFxn * const pfnRAMVectors = (IsrFxn *)(HWREG(NVIC_VTABLE)); if (!pfnRAMVectors) { - while (0) {} + while (0) { /* hang */ } } // The HWI Dispatch ISR should be located at int num INT_AON_RTC_COMB. @@ -101,7 +108,7 @@ rtimer_arch_init(void) hwiDispatch = (HwiDispatchFxn)pfnRAMVectors[INT_AON_RTC_COMB]; if (!hwiDispatch) { - while (0) {} + while (0) { /* hang */ } } // Override the INT_AON_RTC_COMB int num with own ISR hook @@ -109,7 +116,6 @@ rtimer_arch_init(void) AONEventMcuWakeUpSet(AON_EVENT_MCU_WU1, AON_EVENT_RTC_CH1); AONRTCCombinedEventConfig(AON_RTC_CH0 | RTIMER_RTC_CH); - return; } /*---------------------------------------------------------------------------*/ /** diff --git a/arch/cpu/simplelink/simplelink-conf.h b/arch/cpu/simplelink/simplelink-conf.h index 97be16b5d..6ecdafa6b 100644 --- a/arch/cpu/simplelink/simplelink-conf.h +++ b/arch/cpu/simplelink/simplelink-conf.h @@ -1,10 +1,11 @@ /* - * Copyright (c) 2017, Alex Stanoev + * Copyright (c) 2017, George Oikonomou - http://www.spd.gr * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: + * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright @@ -27,50 +28,177 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ +/*---------------------------------------------------------------------------*/ /** * \addtogroup cc26xx * @{ * - * \defgroup cc26xx-ccxxware-conf CCxxware-specific configuration - * - * @{ - * * \file - * CCxxware-specific configuration for the cc26xx-cc13xx CPU family + * Header with configuration defines common to all CC13xx/CC26xx platforms */ -#ifndef CCXXWARE_CONF_H_ -#define CCXXWARE_CONF_H_ - -#include "contiki-conf.h" - +/*---------------------------------------------------------------------------*/ +#ifndef CC13XX_CC26XX_CONF_H_ +#define CC13XX_CC26XX_CONF_H_ /*---------------------------------------------------------------------------*/ /** - * \brief JTAG interface configuration + * \name Network Stack Configuration * - * Those values are not meant to be modified by the user * @{ */ -#if CCXXWARE_CONF_JTAG_INTERFACE_ENABLE -#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0xC5 -#define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0xC5 -#else -#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_0_PRCM_TAP_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0x00 -#define SET_CCFG_CCFG_TAP_DAP_1_WUC_TAP_ENABLE 0x00 + +/* + * If set, the systems keeps the HF crystal oscillator on even when the radio is off. + * You need to set this to 1 to use TSCH with its default 2.2ms or larger guard time. + */ +#ifndef CC2650_FAST_RADIO_STARTUP +#define CC2650_FAST_RADIO_STARTUP (MAC_CONF_WITH_TSCH) +#endif + +#ifdef RF_CHANNEL +#define RF_CORE_CONF_CHANNEL RF_CHANNEL +#endif + +#ifndef RF_CORE_CONF_CHANNEL +#define RF_CORE_CONF_CHANNEL 25 +#endif + +/* Number of Prop Mode RX buffers */ +#ifndef PROP_MODE_CONF_RX_BUF_CNT +#define PROP_MODE_CONF_RX_BUF_CNT 4 +#endif + +/* + * Auto-configure Prop-mode radio if we are running on CC13xx, unless the + * project has specified otherwise. Depending on the final mode, determine a + * default channel (again, if unspecified) and configure RDC params + */ +#if CPU_FAMILY_CC13XX +#ifndef CC13XX_CONF_PROP_MODE +#define CC13XX_CONF_PROP_MODE 1 +#endif /* CC13XX_CONF_PROP_MODE */ +#endif /* CPU_FAMILY_CC13XX */ + +#if CC13XX_CONF_PROP_MODE +#define NETSTACK_CONF_RADIO prop_mode_driver + +#ifndef RF_CORE_CONF_CHANNEL +#define RF_CORE_CONF_CHANNEL 0 +#endif + +#define CSMA_CONF_ACK_WAIT_TIME (RTIMER_SECOND / 400) +#define CSMA_CONF_AFTER_ACK_DETECTED_WAIT_TIME (RTIMER_SECOND / 1000) +#define CSMA_CONF_SEND_SOFT_ACK 1 + +#else /* CC13XX_CONF_PROP_MODE */ +#define NETSTACK_CONF_RADIO ieee_mode_driver + +#define CSMA_CONF_SEND_SOFT_ACK 0 +#endif /* CC13XX_CONF_PROP_MODE */ + +#define NETSTACK_RADIO_MAX_PAYLOAD_LEN 125 + +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name IEEE address configuration + * + * Used to generate our link-local & IPv6 address + * @{ + */ +/** + * \brief Location of the IEEE address + * 0 => Read from InfoPage, + * 1 => Use a hardcoded address, configured by IEEE_ADDR_CONF_ADDRESS + */ +#ifndef IEEE_ADDR_CONF_HARDCODED +#define IEEE_ADDR_CONF_HARDCODED 0 +#endif + +/** + * \brief The hardcoded IEEE address to be used when IEEE_ADDR_CONF_HARDCODED + * is defined as 1 + */ +#ifndef IEEE_ADDR_CONF_ADDRESS +#define IEEE_ADDR_CONF_ADDRESS { 0x00, 0x12, 0x4B, 0x00, 0x89, 0xAB, 0xCD, 0xEF } #endif /** @} */ -#endif /* CCXXWARE_CONF_H_ */ /*---------------------------------------------------------------------------*/ /** - * @} - * @} + * \name RF configuration + * + * @{ */ +/* RF Config */ + +#ifndef IEEE_MODE_CONF_AUTOACK +#define IEEE_MODE_CONF_AUTOACK 1 /**< RF H/W generates ACKs */ +#endif + +#ifndef IEEE_MODE_CONF_PROMISCOUS +#define IEEE_MODE_CONF_PROMISCOUS 0 /**< 1 to enable promiscous mode */ +#endif + +#ifndef RF_BLE_CONF_ENABLED +#define RF_BLE_CONF_ENABLED 0 /**< 0 to disable BLE support */ +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name Character I/O Configuration + * + * @{ + */ +#ifndef CC26XX_UART_CONF_ENABLE +#define CC26XX_UART_CONF_ENABLE 1 /**< Enable/Disable UART I/O */ +#endif + +#ifndef CC26XX_UART_CONF_BAUD_RATE +#define CC26XX_UART_CONF_BAUD_RATE 115200 /**< Default UART0 baud rate */ +#endif + +/* Enable I/O over the Debugger Devpack - Only relevant for the SensorTag */ +#ifndef BOARD_CONF_DEBUGGER_DEVPACK +#define BOARD_CONF_DEBUGGER_DEVPACK 1 +#endif + +#ifndef SLIP_ARCH_CONF_ENABLED +/* + * Determine whether we need SLIP + * This will keep working while UIP_FALLBACK_INTERFACE and CMD_CONF_OUTPUT + * keep using SLIP + */ +#if defined(UIP_FALLBACK_INTERFACE) || defined(CMD_CONF_OUTPUT) +#define SLIP_ARCH_CONF_ENABLED 1 +#endif +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name JTAG interface configuration + * + * Enable/Disable the JTAG DAP and TAP interfaces on the chip. + * Setting this to 0 will disable access to the debug interface + * to secure deployed images. + * @{ + */ +#ifndef CCXXWARE_CONF_JTAG_INTERFACE_ENABLE +#define CCXXWARE_CONF_JTAG_INTERFACE_ENABLE 1 +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +/** + * \name ROM Bootloader configuration + * + * Enable/Disable the ROM bootloader in your image, if the board supports it. + * Look in board.h to choose the DIO and corresponding level that will cause + * the chip to enter bootloader mode. + * @{ + */ +#ifndef ROM_BOOTLOADER_ENABLE +#define ROM_BOOTLOADER_ENABLE 0 +#endif +/** @} */ +/*---------------------------------------------------------------------------*/ +#endif /* CC13XX_CC26XX_CONF_H_ */ +/*---------------------------------------------------------------------------*/ +/** @} */ diff --git a/arch/platform/simplelink/cc13x2-cc26x2-conf.h b/arch/platform/simplelink/cc13x2-cc26x2-conf.h deleted file mode 100644 index 6ecdafa6b..000000000 --- a/arch/platform/simplelink/cc13x2-cc26x2-conf.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2017, George Oikonomou - http://www.spd.gr - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. Neither the name of the copyright holder 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 HOLDER 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. - */ -/*---------------------------------------------------------------------------*/ -/** - * \addtogroup cc26xx - * @{ - * - * \file - * Header with configuration defines common to all CC13xx/CC26xx platforms - */ -/*---------------------------------------------------------------------------*/ -#ifndef CC13XX_CC26XX_CONF_H_ -#define CC13XX_CC26XX_CONF_H_ -/*---------------------------------------------------------------------------*/ -/** - * \name Network Stack Configuration - * - * @{ - */ - -/* - * If set, the systems keeps the HF crystal oscillator on even when the radio is off. - * You need to set this to 1 to use TSCH with its default 2.2ms or larger guard time. - */ -#ifndef CC2650_FAST_RADIO_STARTUP -#define CC2650_FAST_RADIO_STARTUP (MAC_CONF_WITH_TSCH) -#endif - -#ifdef RF_CHANNEL -#define RF_CORE_CONF_CHANNEL RF_CHANNEL -#endif - -#ifndef RF_CORE_CONF_CHANNEL -#define RF_CORE_CONF_CHANNEL 25 -#endif - -/* Number of Prop Mode RX buffers */ -#ifndef PROP_MODE_CONF_RX_BUF_CNT -#define PROP_MODE_CONF_RX_BUF_CNT 4 -#endif - -/* - * Auto-configure Prop-mode radio if we are running on CC13xx, unless the - * project has specified otherwise. Depending on the final mode, determine a - * default channel (again, if unspecified) and configure RDC params - */ -#if CPU_FAMILY_CC13XX -#ifndef CC13XX_CONF_PROP_MODE -#define CC13XX_CONF_PROP_MODE 1 -#endif /* CC13XX_CONF_PROP_MODE */ -#endif /* CPU_FAMILY_CC13XX */ - -#if CC13XX_CONF_PROP_MODE -#define NETSTACK_CONF_RADIO prop_mode_driver - -#ifndef RF_CORE_CONF_CHANNEL -#define RF_CORE_CONF_CHANNEL 0 -#endif - -#define CSMA_CONF_ACK_WAIT_TIME (RTIMER_SECOND / 400) -#define CSMA_CONF_AFTER_ACK_DETECTED_WAIT_TIME (RTIMER_SECOND / 1000) -#define CSMA_CONF_SEND_SOFT_ACK 1 - -#else /* CC13XX_CONF_PROP_MODE */ -#define NETSTACK_CONF_RADIO ieee_mode_driver - -#define CSMA_CONF_SEND_SOFT_ACK 0 -#endif /* CC13XX_CONF_PROP_MODE */ - -#define NETSTACK_RADIO_MAX_PAYLOAD_LEN 125 - -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name IEEE address configuration - * - * Used to generate our link-local & IPv6 address - * @{ - */ -/** - * \brief Location of the IEEE address - * 0 => Read from InfoPage, - * 1 => Use a hardcoded address, configured by IEEE_ADDR_CONF_ADDRESS - */ -#ifndef IEEE_ADDR_CONF_HARDCODED -#define IEEE_ADDR_CONF_HARDCODED 0 -#endif - -/** - * \brief The hardcoded IEEE address to be used when IEEE_ADDR_CONF_HARDCODED - * is defined as 1 - */ -#ifndef IEEE_ADDR_CONF_ADDRESS -#define IEEE_ADDR_CONF_ADDRESS { 0x00, 0x12, 0x4B, 0x00, 0x89, 0xAB, 0xCD, 0xEF } -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name RF configuration - * - * @{ - */ -/* RF Config */ - -#ifndef IEEE_MODE_CONF_AUTOACK -#define IEEE_MODE_CONF_AUTOACK 1 /**< RF H/W generates ACKs */ -#endif - -#ifndef IEEE_MODE_CONF_PROMISCOUS -#define IEEE_MODE_CONF_PROMISCOUS 0 /**< 1 to enable promiscous mode */ -#endif - -#ifndef RF_BLE_CONF_ENABLED -#define RF_BLE_CONF_ENABLED 0 /**< 0 to disable BLE support */ -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name Character I/O Configuration - * - * @{ - */ -#ifndef CC26XX_UART_CONF_ENABLE -#define CC26XX_UART_CONF_ENABLE 1 /**< Enable/Disable UART I/O */ -#endif - -#ifndef CC26XX_UART_CONF_BAUD_RATE -#define CC26XX_UART_CONF_BAUD_RATE 115200 /**< Default UART0 baud rate */ -#endif - -/* Enable I/O over the Debugger Devpack - Only relevant for the SensorTag */ -#ifndef BOARD_CONF_DEBUGGER_DEVPACK -#define BOARD_CONF_DEBUGGER_DEVPACK 1 -#endif - -#ifndef SLIP_ARCH_CONF_ENABLED -/* - * Determine whether we need SLIP - * This will keep working while UIP_FALLBACK_INTERFACE and CMD_CONF_OUTPUT - * keep using SLIP - */ -#if defined(UIP_FALLBACK_INTERFACE) || defined(CMD_CONF_OUTPUT) -#define SLIP_ARCH_CONF_ENABLED 1 -#endif -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name JTAG interface configuration - * - * Enable/Disable the JTAG DAP and TAP interfaces on the chip. - * Setting this to 0 will disable access to the debug interface - * to secure deployed images. - * @{ - */ -#ifndef CCXXWARE_CONF_JTAG_INTERFACE_ENABLE -#define CCXXWARE_CONF_JTAG_INTERFACE_ENABLE 1 -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -/** - * \name ROM Bootloader configuration - * - * Enable/Disable the ROM bootloader in your image, if the board supports it. - * Look in board.h to choose the DIO and corresponding level that will cause - * the chip to enter bootloader mode. - * @{ - */ -#ifndef ROM_BOOTLOADER_ENABLE -#define ROM_BOOTLOADER_ENABLE 0 -#endif -/** @} */ -/*---------------------------------------------------------------------------*/ -#endif /* CC13XX_CC26XX_CONF_H_ */ -/*---------------------------------------------------------------------------*/ -/** @} */