Files
2025-04-09 22:26:18 +02:00

3034 lines
122 KiB
Diff

From b056309dcb661296e42b8de7633f25a746338648 Mon Sep 17 00:00:00 2001
From: Koen Kanters <koenkanters94@gmail.com>
Date: Tue, 8 Apr 2025 20:45:44 +0200
Subject: [PATCH] Own changes
---
package.py | 36 ++
source/preinclude.h | 122 ++++++
.../zstack/apps/genericapp/zcl_genericapp.c | 32 ++
.../apps/genericapp/zcl_genericapp_data.c | 57 ++-
.../cc13x2_cc26x2_tirtos7_ticlang.cmd | 8 +-
.../cc13x2x7_cc26x2x7_tirtos7_ticlang.cmd | 8 +-
.../cc13x4_cc26x4_tirtos7_ticlang.cmd | 4 +-
source/ti/zstack/mt/mt.h | 4 +
source/ti/zstack/mt/mt_util.c | 119 +++++-
source/ti/zstack/mt/mt_version.c | 6 +-
source/ti/zstack/mt/mt_zdo.c | 5 +
source/ti/zstack/npi/npi_tl_uart.c | 49 ++-
source/ti/zstack/npi/npi_tl_uart.h | 2 +-
source/ti/zstack/stack/af/af.c | 25 +-
source/ti/zstack/stack/nwk/nwk_globals.c | 8 +-
source/ti/zstack/stack/nwk/nwk_util.c | 49 +++
source/ti/zstack/stack/nwk/nwk_util.h | 4 +
source/ti/zstack/stack/sys/zcomdef.h | 5 +
source/ti/zstack/stack/sys/zglobals.c | 6 +-
source/ti/zstack/stack/zcl/zcl.c | 12 +
source/ti/zstack/stack/zdo/zd_app.c | 8 +
source/ti/zstack/stack/zdo/zd_object.c | 14 +
source/ti/zstack/stack/zdo/zd_sec_mgr.c | 23 ++
source/ti/zstack/stack/zdo/zd_sec_mgr.h | 5 +
source/ti/zstack/startup/zstackstartup.c | 8 +
.../.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../ti_devices_config.c | 108 +++++
.../ti_drivers_config.h | 283 +++++++++++++
.../ti_radio_config.c | 385 ++++++++++++++++++
.../ti_radio_config.h | 83 ++++
.../znp.syscfg | 10 +-
.../.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../znp.syscfg | 6 +-
.../.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../znp.syscfg | 6 +-
.../znp_LP_CC2652R7_tirtos7_ticlang/.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../znp.syscfg | 6 +-
.../znp_LP_CC2652RB_tirtos7_ticlang/.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../znp.syscfg | 6 +-
.../.cproject | 2 +-
.../.project | 10 +
.../Stack/Config/znp_cnf.opts | 3 +
.../znp.syscfg | 2 +
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../ti_devices_config.c | 1 +
.../ti_drivers_config.h | 1 +
.../ti_radio_config.c | 1 +
.../ti_radio_config.h | 1 +
.../zr_genericapp.syscfg | 11 +-
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../zr_genericapp.syscfg | 7 +-
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../zr_genericapp.syscfg | 6 +-
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../zr_genericapp.syscfg | 7 +-
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../zr_genericapp.syscfg | 7 +-
.../.cproject | 2 +-
.../.project | 10 +
.../Stack/Config/f8wrouter.opts | 3 +
.../zr_genericapp.syscfg | 3 +
71 files changed, 1646 insertions(+), 73 deletions(-)
create mode 100644 package.py
create mode 100644 source/preinclude.h
create mode 100644 source/ti/zstack/stack/nwk/nwk_util.c
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
create mode 120000 workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
create mode 120000 workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
create mode 120000 workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
create mode 120000 workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
diff --git a/package.py b/package.py
new file mode 100644
index 000000000..ecade4f9a
--- /dev/null
+++ b/package.py
@@ -0,0 +1,36 @@
+import glob
+import zipfile
+from pathlib import Path
+import re
+
+preinclude_file = Path("source") / "preinclude.h"
+coordinator_version = re.search(r'CODE_REVISION_NUMBER\s*(\d+)', preinclude_file.read_text())[1]
+router_version = re.search(r'ZCL_GENERIC_APP_SW_BUILD_ID { 8, (.*) }', preinclude_file.read_text())[1].replace("'", "").replace(",", "")
+cc1352p2_is_launchpad = re.search(r'#define LAUNCHPAD_CONFIG (\d)', preinclude_file.read_text())[1] == "1"
+cc1352p2_variant = "launchpad" if cc1352p2_is_launchpad else "other"
+
+dist_dir = Path("dist")
+dist_dir.mkdir(exist_ok=True)
+
+lookup = {
+ # Router
+ "zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang": f"CC2674P10_router_{router_version}",
+ "zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang": f"CC1352P2_CC2652P_{cc1352p2_variant}_router_{router_version}",
+ "zr_genericapp_LP_CC2652R7_tirtos7_ticlang": f"CC2652R7_router_{router_version}",
+ "zr_genericapp_LP_CC2652RB_tirtos7_ticlang": f"CC2652RB_router_{router_version}",
+ "zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang": f"CC2652R_router_{router_version}",
+ "zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang": f"CC1352P7_router_{router_version}",
+ # Coordinator
+ "znp_LP_EM_CC2674P10_tirtos7_ticlang": f"CC2674P10_coordinator_{coordinator_version}",
+ "znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang": f"CC1352P2_CC2652P_{cc1352p2_variant}_coordinator_{coordinator_version}",
+ "znp_LP_CC2652R7_tirtos7_ticlang": f"CC2652R7_coordinator_{coordinator_version}",
+ "znp_LP_CC2652RB_tirtos7_ticlang": f"CC2652RB_coordinator_{coordinator_version}",
+ "znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang": f"CC2652R_coordinator_{coordinator_version}",
+ "znp_LP_CC1352P7_4_tirtos7_ticlang": f"CC1352P7_coordinator_{coordinator_version}",
+}
+
+hex_files = [Path(p) for p in glob.glob("workspace/**/default/*ticlang.hex", recursive=True)]
+for file in hex_files:
+ name = lookup[file.parts[1]]
+ with zipfile.ZipFile(dist_dir / f"{name}.zip", 'w') as zipf:
+ zipf.write(file, arcname=f"{name}.hex")
diff --git a/source/preinclude.h b/source/preinclude.h
new file mode 100644
index 000000000..641087801
--- /dev/null
+++ b/source/preinclude.h
@@ -0,0 +1,122 @@
+// Increase MAC buffers, multiplied default value by 10
+#undef MAC_CFG_TX_DATA_MAX
+#define MAC_CFG_TX_DATA_MAX 50
+#undef MAC_CFG_TX_MAX
+#define MAC_CFG_TX_MAX 80
+#undef MAC_CFG_RX_MAX
+#define MAC_CFG_RX_MAX 50
+
+// From https://www.ti.com/lit/an/swra650b/swra650b.pdf
+#define LINK_DOWN_TRIGGER 12
+#define NWK_ROUTE_AGE_LIMIT 5
+#define DEF_NWK_RADIUS 15
+#define DEFAULT_ROUTE_REQUEST_RADIUS 8
+#define ZDNWKMGR_MIN_TRANSMISSIONS 0
+#define ROUTE_DISCOVERY_TIME 13
+#define MTO_RREQ_LIMIT_TIME 5000
+
+// Increase NV pages to allow for bigger device tables
+// not for `CC2674P10` as it has 5 pages by default.
+#ifndef EM_CC2674P10_LP
+ #undef NVOCMP_NVPAGES
+ #define NVOCMP_NVPAGES 3
+#endif
+
+// Determines the maximum number of “secure partners” that the network Trust Center (ZC) can support.
+// This value will be the upper limit of Zigbee 3.0 devices which are allowed in the network
+#ifdef EM_CC2674P10_LP
+ #define ZDSECMGR_TC_DEVICE_MAX 400
+#else
+ #define ZDSECMGR_TC_DEVICE_MAX 200
+#endif
+
+// Increase the max number of boardcasts, the default broadcast delivery time is 3 seconds
+// with the value below this will allow for 1 broadcast every 0.15 second
+#define MAX_BCAST 30
+
+// Determines the maximum number of devices in the Neighbor Table.
+#define MAX_NEIGHBOR_ENTRIES 50
+
+// Number of devices in the standard Routing Table, which is used for AODV routing.
+// Only stores information for 1-hop routes, so this table does not need to be as big as the Source Route table.
+#define MAX_RTG_ENTRIES 150
+#define ROUTE_EXPIRY_TIME 2
+
+#ifdef IS_COORDINATOR
+ // Firmware version, used in mt_version.c
+ #define CODE_REVISION_NUMBER 20250321
+
+ // Required, otherwise firmware crashes after some uptime in some cases.
+ #define NVOCMP_RECOVER_FROM_COMPACT_FAILURE
+
+ // Required in order to use the extended MT API commands.
+ #define FEATURE_NVEXID 1
+
+ // Grants access to the security key data
+ #define MT_SYS_KEY_MANAGEMENT 1
+
+ // Increase by 1 to compensate for lag (default is 7)
+ #define NWK_INDIRECT_MSG_TIMEOUT 8
+
+ // Increase frame retries
+ #define ZMAC_MAX_FRAME_RETRIES 7
+ #define NWK_MAX_DATA_RETRIES 4
+
+ // Disabling MULTICAST is required in order for proper group support.
+ // If MULTICAST is not disabled, the group adress is not included in the APS header
+ #define MULTICAST_ENABLED FALSE
+
+ // Reduce the APS ack wait duration from 6000 ms to 1000 ms (value * 2 = value in ms).
+ // This will make requests timeout quicker, in pratice the default timeout of 6000ms is too long.
+ #define APSC_ACK_WAIT_DURATION_POLLED 500
+
+ // Enable MTO routing
+ // MTO Routing will be used in addition to the standard AODV routing to provide additional route discovery opportunities.
+ // Especially useful for larger networks with multiple hops.
+ #define CONCENTRATOR_ENABLE TRUE
+ #define CONCENTRATOR_ROUTE_CACHE TRUE
+ #define CONCENTRATOR_DISCOVERY_TIME 60
+ #define MAX_RTG_SRC_ENTRIES 250
+ #define SRC_RTG_EXPIRY_TIME 10
+
+ // The number of simultaneous route discoveries in network
+ #define MAX_RREQ_ENTRIES 40
+
+ // Size of the conflicted address table
+ #define CONFLICTED_ADDR_TABLE_SIZE 15
+
+ // Number of devices which have associated directly through the coordinator
+ // This does not determine the upper limit in the number of nodes in the network,
+ // just the upper limit for number of nodes directly connected to a certain routing node
+ #define NWK_MAX_DEVICE_LIST 75
+#endif
+
+#ifdef IS_ROUTER
+ #define ZCL_GENERIC_APP_SW_BUILD_ID { 8, '2','0','2','5','0','4','0','3' }
+ #define ZCL_REPORT_DESTINATION_DEVICE
+ #define BDB_REPORTING
+ #define CUI_DISABLE
+ #define NWK_MAX_DEVICE_LIST 50
+ #define ZDO_API_ADVANCED
+ #define ATTRID_BASIC_TRANSMIT_POWER 0x1337
+#endif
+
+// Set default transmit power to 9 for PA devices
+#if defined(CC1352P_2) || defined(DeviceFamily_CC13X2X7)
+ #define TXPOWER 9
+#endif
+
+// CC1352P2 specific
+#if defined(CC1352P_2)
+ // Different configs, set `LAUNCHPAD_CONFIG` to `0` for "other" firmware
+ #define LAUNCHPAD_CONFIG 1
+ #if LAUNCHPAD_CONFIG == 1
+ #define CONFIG_RF_24GHZ 0x0000001c
+ #define CONFIG_RF_HIGH_PA 0x0000001d
+ #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA 0xc1
+ #else
+ #define CONFIG_RF_24GHZ 0x0000006
+ #define CONFIG_RF_HIGH_PA 0x0000005
+ #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA 0xfa
+ #endif
+#endif
diff --git a/source/ti/zstack/apps/genericapp/zcl_genericapp.c b/source/ti/zstack/apps/genericapp/zcl_genericapp.c
index b6d89494b..42eee6d42 100644
--- a/source/ti/zstack/apps/genericapp/zcl_genericapp.c
+++ b/source/ti/zstack/apps/genericapp/zcl_genericapp.c
@@ -53,6 +53,9 @@
* INCLUDES
*/
+#include <driverlib/sys_ctrl.h>
+#include "osal_nv.h"
+
#include "rom_jt_154.h"
#include "zcomdef.h"
@@ -261,6 +264,16 @@ void sampleApp_task(NVINTF_nvFuncts_t *pfnNV)
pfnZdlNV = pfnNV;
zclport_registerNV(pfnZdlNV, ZCL_PORT_SCENE_TABLE_NV_ID);
+#ifdef IS_ROUTER
+ // Init the transmit power NV item, this will be skipped if item is already initialized
+ int8_t transmitPower = TXPOWER;
+ osal_nv_item_init( ZCD_NV_TRANSMIT_POWER, sizeof(transmitPower), &transmitPower );
+
+ // Set transmit power
+ osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( transmitPower ), &transmitPower );
+ ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
+#endif
+
// Initialize application
zclGenericApp_initialization();
@@ -870,6 +883,9 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
*/
static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *bdbCommissioningModeMsg)
{
+#ifdef IS_ROUTER
+ zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
+#endif
switch(bdbCommissioningModeMsg->bdbCommissioningMode)
{
case BDB_COMMISSIONING_FORMATION:
@@ -909,6 +925,10 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
}
break;
case BDB_COMMISSIONING_INITIALIZATION:
+#ifdef IS_ROUTER
+ zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
+ Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
+#endif
//Initialization notification can only be successful. Failure on initialization
//only happens for ZED and is notified as BDB_COMMISSIONING_PARENT_LOST notification
@@ -1209,6 +1229,17 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
*/
static void zclGenericApp_processKey(Button_Handle _btn)
{
+#ifdef IS_ROUTER
+ NLME_LeaveReq_t req;
+ memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
+ NLME_LeaveReq(&req);
+ // Sleep for 2 seconds, otherwise leave request is not send
+ Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
+
+ zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
+
+ SysCtrlSystemReset();
+#else
zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
//Button 1
if(_btn == gLeftButtonHandle)
@@ -1230,6 +1261,7 @@ static void zclGenericApp_processKey(Button_Handle _btn)
{
Zstackapi_bdbResetLocalActionReq(appServiceTaskId);
}
+#endif
}
diff --git a/source/ti/zstack/apps/genericapp/zcl_genericapp_data.c b/source/ti/zstack/apps/genericapp/zcl_genericapp_data.c
index 2738ea9a7..f50d91b59 100644
--- a/source/ti/zstack/apps/genericapp/zcl_genericapp_data.c
+++ b/source/ti/zstack/apps/genericapp/zcl_genericapp_data.c
@@ -49,6 +49,8 @@
#include "zcl_general.h"
#include "zcl_ha.h"
+#include "osal_nv.h"
+
/* GENERICAPP_TODO: Include any of the header files below to access specific cluster data
#include "zcl_poll_control.h"
#include "zcl_electrical_measurement.h"
@@ -96,6 +98,11 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
const uint8_t zclGenericApp_HWRevision = GENERICAPP_HWVERSION;
const uint8_t zclGenericApp_ZCLVersion = GENERICAPP_ZCLVERSION;
const uint8_t zclGenericApp_ManufacturerName[] = { 16, 'T','e','x','a','s','I','n','s','t','r','u','m','e','n','t','s' };
+#ifdef IS_ROUTER
+const uint8_t zclGenericApp_ModelID[] = { 9, 't','i','.','r','o','u','t','e','r' };
+const uint8_t zclGenericApp_SwBuildID[] = ZCL_GENERIC_APP_SW_BUILD_ID;
+int8_t zclGenericApp_TransmitPower;
+#endif
const uint8_t zclGenericApp_PowerSource = POWER_SOURCE_MAINS_1_PHASE;
uint8_t zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
@@ -134,7 +141,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_BASIC_HW_VERSION, // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
ZCL_DATATYPE_UINT8, // Data Type - found in zcl.h
- ACCESS_CONTROL_READ, // Variable access control - found in zcl.h
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ), // Variable access control - found in zcl.h
(void *)&zclGenericApp_HWRevision // Pointer to attribute variable
}
},
@@ -143,16 +150,36 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_BASIC_ZCL_VERSION,
ZCL_DATATYPE_UINT8,
- ACCESS_CONTROL_READ,
+ (ACCESS_CONTROL_READ | ACCESS_REPORTABLE | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_ZCLVersion
}
},
+#ifdef IS_ROUTER
+ {
+ ZCL_CLUSTER_ID_GENERAL_BASIC,
+ { // Attribute record
+ ATTRID_BASIC_MODEL_IDENTIFIER,
+ ZCL_DATATYPE_CHAR_STR,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+ (void *)zclGenericApp_ModelID
+ }
+ },
+ {
+ ZCL_CLUSTER_ID_GENERAL_BASIC,
+ { // Attribute record
+ ATTRID_BASIC_SW_BUILD_ID,
+ ZCL_DATATYPE_CHAR_STR,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+ (void *)zclGenericApp_SwBuildID
+ }
+ },
+#endif
{
ZCL_CLUSTER_ID_GENERAL_BASIC,
{ // Attribute record
ATTRID_BASIC_MANUFACTURER_NAME,
ZCL_DATATYPE_CHAR_STR,
- ACCESS_CONTROL_READ,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
(void *)zclGenericApp_ManufacturerName
}
},
@@ -161,7 +188,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_BASIC_POWER_SOURCE,
ZCL_DATATYPE_ENUM8,
- ACCESS_CONTROL_READ,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_PowerSource
}
},
@@ -170,7 +197,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_BASIC_PHYSICAL_ENVIRONMENT,
ZCL_DATATYPE_ENUM8,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_PhysicalEnvironment
}
},
@@ -179,10 +206,21 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_CLUSTER_REVISION,
ZCL_DATATYPE_UINT16,
- ACCESS_CONTROL_READ,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_basic_clusterRevision
}
},
+#ifdef IS_ROUTER
+ {
+ ZCL_CLUSTER_ID_GENERAL_BASIC,
+ { // Attribute record
+ ATTRID_BASIC_TRANSMIT_POWER,
+ ZCL_DATATYPE_INT8,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+ (void *)&zclGenericApp_TransmitPower
+ }
+ },
+#endif
#ifdef ZCL_IDENTIFY
// *** Identify Cluster Attribute ***
@@ -191,7 +229,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_IDENTIFY_IDENTIFY_TIME,
ZCL_DATATYPE_UINT16,
- (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_IdentifyTime
}
},
@@ -201,7 +239,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
{ // Attribute record
ATTRID_CLUSTER_REVISION,
ZCL_DATATYPE_UINT16,
- ACCESS_CONTROL_READ,
+ (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
(void *)&zclGenericApp_identify_clusterRevision
}
},
@@ -276,6 +314,9 @@ void zclGenericApp_ResetAttributesToDefaultValues(void)
{
zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
+#ifdef IS_ROUTER
+ osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( zclGenericApp_TransmitPower ), &zclGenericApp_TransmitPower );
+#endif
#ifdef ZCL_IDENTIFY
zclGenericApp_IdentifyTime = 0;
diff --git a/source/ti/zstack/boards/cc13x2_cc26x2/cc13x2_cc26x2_tirtos7_ticlang.cmd b/source/ti/zstack/boards/cc13x2_cc26x2/cc13x2_cc26x2_tirtos7_ticlang.cmd
index 54806e395..89a8b8291 100755
--- a/source/ti/zstack/boards/cc13x2_cc26x2/cc13x2_cc26x2_tirtos7_ticlang.cmd
+++ b/source/ti/zstack/boards/cc13x2_cc26x2/cc13x2_cc26x2_tirtos7_ticlang.cmd
@@ -60,7 +60,7 @@
/* modifications in your CCS project and leave this file alone. */
/* */
/* --heap_size=0 */
---stack_size=1024
+--stack_size=4096
/* --library=rtsv7M3_T_le_eabi.lib */
/* The starting address of the application. Normally the interrupt vectors */
@@ -71,9 +71,9 @@
#endif
#define FLASH_BASE 0x00000000
-#define FLASH_SIZE (0x56000 - (NVOCMP_NVPAGES * 0x2000))
-#define FLASH_NV_BASE (0x56000 - (NVOCMP_NVPAGES * 0x2000))
-#define FLASH_NV_SIZE (NVOCMP_NVPAGES * 0x2000)
+#define FLASH_SIZE 0x50000
+#define FLASH_NV_BASE 0x50000
+#define FLASH_NV_SIZE 0x6000
#define FLASH_LAST_BASE 0x56000
#define FLASH_LAST_SIZE 0x2000
diff --git a/source/ti/zstack/boards/cc13x2x7_cc26x2x7/cc13x2x7_cc26x2x7_tirtos7_ticlang.cmd b/source/ti/zstack/boards/cc13x2x7_cc26x2x7/cc13x2x7_cc26x2x7_tirtos7_ticlang.cmd
index 1e5777c21..ababb2c7f 100755
--- a/source/ti/zstack/boards/cc13x2x7_cc26x2x7/cc13x2x7_cc26x2x7_tirtos7_ticlang.cmd
+++ b/source/ti/zstack/boards/cc13x2x7_cc26x2x7/cc13x2x7_cc26x2x7_tirtos7_ticlang.cmd
@@ -60,16 +60,16 @@
/* modifications in your CCS project and leave this file alone. */
/* */
/* --heap_size=0 */
---stack_size=1024
+--stack_size=4096
/* --library=rtsv7M3_T_le_eabi.lib */
/* The starting address of the application. Normally the interrupt vectors */
/* must be located at the beginning of the application. */
#define FLASH_BASE 0x00000000
-#define FLASH_SIZE 0xAA000
-#define FLASH_NV_BASE 0xAA000
-#define FLASH_NV_SIZE 0x4000
+#define FLASH_SIZE 0xA6000
+#define FLASH_NV_BASE 0xA6000
+#define FLASH_NV_SIZE 0x8000
#define FLASH_LAST_BASE 0xAE000
#define FLASH_LAST_SIZE 0x2000
diff --git a/source/ti/zstack/boards/cc13x4_cc26x4/cc13x4_cc26x4_tirtos7_ticlang.cmd b/source/ti/zstack/boards/cc13x4_cc26x4/cc13x4_cc26x4_tirtos7_ticlang.cmd
index ff3cb97e9..983668b5a 100755
--- a/source/ti/zstack/boards/cc13x4_cc26x4/cc13x4_cc26x4_tirtos7_ticlang.cmd
+++ b/source/ti/zstack/boards/cc13x4_cc26x4/cc13x4_cc26x4_tirtos7_ticlang.cmd
@@ -30,7 +30,7 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
---stack_size=0x600 /* C stack is also used for ISR stack */
+--stack_size=4096 /* C stack is also used for ISR stack */
HEAPSIZE = 0x4000; /* Size of heap buffer used by HeapMem */
@@ -51,7 +51,7 @@ HEAPSIZE = 0x4000; /* Size of heap buffer used by HeapMem */
/* modifications in your CCS project and leave this file alone. */
/* */
/* --heap_size=0 */
---stack_size=1024
+--stack_size=4096
/* --library=rtsv7M3_T_le_eabi.lib */
#define NVOCMP_NVPAGES 5
diff --git a/source/ti/zstack/mt/mt.h b/source/ti/zstack/mt/mt.h
index 0435d72c6..28d9e61ff 100644
--- a/source/ti/zstack/mt/mt.h
+++ b/source/ti/zstack/mt/mt.h
@@ -441,6 +441,8 @@ extern "C"
#define MT_UTIL_CALLBACK_SUB_CMD 0x06
#define MT_UTIL_TIME_ALIVE 0x09
+#define MT_UTIL_LED_CONTROL 0x0A
+
#define MT_UTIL_TEST_LOOPBACK 0x10
#define MT_UTIL_DATA_REQ 0x11
@@ -467,6 +469,8 @@ extern "C"
#define MT_UTIL_SRNG_GENERATE 0x4C
#endif
#define MT_UTIL_BIND_ADD_ENTRY 0x4D
+#define MT_UTIL_ASSOC_REMOVE 0x63 // Custom command
+#define MT_UTIL_ASSOC_ADD 0x64 // Custom command
#define MT_UTIL_ZCL_KEY_EST_INIT_EST 0x80
#define MT_UTIL_ZCL_KEY_EST_SIGN 0x81
diff --git a/source/ti/zstack/mt/mt_util.c b/source/ti/zstack/mt/mt_util.c
index 54cecc0d6..e86338ac9 100644
--- a/source/ti/zstack/mt/mt_util.c
+++ b/source/ti/zstack/mt/mt_util.c
@@ -79,6 +79,9 @@
#include "mt_zdo.h"
#include "ssp.h"
+#include <ti/drivers/apps/LED.h>
+#include "ti_drivers_config.h"
+
#if !defined NONWK
#include "mt_nwk.h"
@@ -154,6 +157,9 @@ static void MT_UtilAPSME_LinkKeyNvIdGet(uint8_t *pBuf);
#endif //MT_SYS_KEY_MANAGEMENT
static void MT_UtilAPSME_RequestKeyCmd(uint8_t *pBuf);
static void MT_UtilAssocCount(uint8_t *pBuf);
+static void MT_UtilLedControl(uint8_t *pBuf);
+static void MT_UtilAssocRemove(uint8_t *pBuf);
+static void MT_UtilAssocAdd(uint8_t *pBuf);
static void MT_UtilAssocFindDevice(uint8_t *pBuf);
static void MT_UtilAssocGetWithAddress(uint8_t *pBuf);
static void MT_UtilBindAddEntry(uint8_t *pBuf);
@@ -286,6 +292,10 @@ uint8_t MT_UtilCommandProcessing(uint8_t *pBuf)
MT_UtilAssocCount(pBuf);
break;
+ case MT_UTIL_LED_CONTROL:
+ MT_UtilLedControl(pBuf);
+ break;
+
case MT_UTIL_ASSOC_FIND_DEVICE:
MT_UtilAssocFindDevice(pBuf);
break;
@@ -298,6 +308,14 @@ uint8_t MT_UtilCommandProcessing(uint8_t *pBuf)
MT_UtilBindAddEntry(pBuf);
break;
+ case MT_UTIL_ASSOC_REMOVE:
+ MT_UtilAssocRemove(pBuf);
+ break;
+
+ case MT_UTIL_ASSOC_ADD:
+ MT_UtilAssocAdd(pBuf);
+ break;
+
case MT_UTIL_SYNC_REQ:
MT_UtilSync();
break;
@@ -1401,6 +1419,95 @@ static void MT_UtilAssocCount(uint8_t *pBuf)
MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 2, pBuf);
}
+/***************************************************************************************************
+ * @fn MT_UtilLedControl
+ *
+ * @brief Proxy the LedControl() function.
+ *
+ * @param pBuf - pointer to the received buffer
+ *
+ * @return void
+ ***************************************************************************************************/
+static void MT_UtilLedControl(uint8_t *pBuf)
+{
+ uint8_t cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ;
+
+ uint8_t mode = pBuf[1];
+
+ if (gLedHandle == NULL) {
+ LED_Params ledParams;
+ LED_Params_init(&ledParams);
+ gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams);
+ }
+
+ if (mode==0) {
+ LED_setOff(gLedHandle);
+ } else if (mode == 5) {
+ gLedsDisabled = TRUE;
+ LED_setOff(gLedHandle);
+ } else {
+ LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX);
+ }
+
+ uint8_t retValue = 0;
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+}
+
+/***************************************************************************************************
+ * @fn MT_UtilAssocRemove
+ *
+ * @brief Proxy the AssocRemove() function.
+ *
+ * @param pBuf - pointer to the received buffer
+ *
+ * @return void
+ ***************************************************************************************************/
+static void MT_UtilAssocRemove(uint8_t *pBuf)
+{
+ uint8_t cmdId;
+ uint8_t ieeeAddr[Z_EXTADDR_LEN];
+ uint8_t retValue = 0;
+
+ // parse header
+ cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ;
+
+ /* IeeAddress */
+ OsalPort_memcpy(ieeeAddr, pBuf, Z_EXTADDR_LEN);
+
+ AssocRemove(ieeeAddr);
+
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+}
+
+/***************************************************************************************************
+ * @fn MT_UtilAssocAdd
+ *
+ * @brief Proxy the AssocAdd() function.
+ *
+ * @param pBuf - pointer to the received buffer
+ *
+ * @return void
+ ***************************************************************************************************/
+static void MT_UtilAssocAdd(uint8_t *pBuf)
+{
+ uint8_t cmdId;
+ uint8_t retValue = 0;
+
+ // parse header
+ cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ;
+
+ AssocAddNew(
+ BUILD_UINT16(pBuf[Z_EXTADDR_LEN], pBuf[Z_EXTADDR_LEN + 1]),
+ pBuf,
+ pBuf[Z_EXTADDR_LEN + 2]
+ );
+
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+}
+
/***************************************************************************************************
* @fn MT_UtilAssocFindDevice
*
@@ -1525,6 +1632,9 @@ static void MT_UtilBindAddEntry(uint8_t *pBuf)
***************************************************************************************************/
static void packDev_t(uint8_t *pBuf, associated_devices_t *pDev)
{
+ // Applied some fixes here, see https://github.com/Koenkk/zigbee2mqtt/issues/13478#issuecomment-1501085509
+ memset(pBuf, 0, sizeof(associated_devices_t));
+
if (NULL == pDev)
{
uint16_t rtrn = INVALID_NODE_ADDR;
@@ -1546,9 +1656,16 @@ static void packDev_t(uint8_t *pBuf, associated_devices_t *pDev)
*pBuf++ = pDev->linkInfo.rxLqi;
*pBuf++ = pDev->linkInfo.inKeySeqNum;
OsalPort_bufferUint32( pBuf, pDev->linkInfo.inFrmCntr );
- *pBuf += 4;
+ pBuf += 4;
*pBuf++ = LO_UINT16(pDev->linkInfo.txFailure);
*pBuf++ = HI_UINT16(pDev->linkInfo.txFailure);
+ *pBuf++ = pDev->endDev.endDevCfg;
+ OsalPort_bufferUint32( pBuf, pDev->endDev.deviceTimeout);
+ pBuf += 4;
+ OsalPort_bufferUint32( pBuf, pDev->timeoutCounter);
+ pBuf += 4;
+ *pBuf++ = pDev->keepaliveRcv;
+ *pBuf++ = pDev->ctrl;
}
}
diff --git a/source/ti/zstack/mt/mt_version.c b/source/ti/zstack/mt/mt_version.c
index 831aeb699..f5559fc79 100644
--- a/source/ti/zstack/mt/mt_version.c
+++ b/source/ti/zstack/mt/mt_version.c
@@ -74,10 +74,14 @@
*****************************************************************************/
const uint8_t MTVersionString[] = {
2, /* Transport protocol revision */
- 0, /* Product ID */
+ 1, /* Product ID */
2, /* Software major release number */
7, /* Software minor release number */
1, /* Software maintenance release number */
+ ((CODE_REVISION_NUMBER >> 0) & 0xFF),
+ ((CODE_REVISION_NUMBER >> 8) & 0xFF),
+ ((CODE_REVISION_NUMBER >> 16) & 0xFF),
+ ((CODE_REVISION_NUMBER >> 24) & 0xFF),
};
/******************************************************************************
diff --git a/source/ti/zstack/mt/mt_zdo.c b/source/ti/zstack/mt/mt_zdo.c
index f43df5cbf..f0bc7faaa 100644
--- a/source/ti/zstack/mt/mt_zdo.c
+++ b/source/ti/zstack/mt/mt_zdo.c
@@ -1684,6 +1684,11 @@ static void MT_ZdoMgmtPermitJoinRequest(uint8_t *pBuf)
ignoreIndication = TRUE;
retValue = (uint8_t)ZDP_MgmtPermitJoinReq( &destAddr, duration, tcSignificance, 0);
ignoreIndication = FALSE;
+
+ // If joining is enabled via a router, ZDO_ProcessMgmtPermitJoinReq is never triggered thus
+ // ZDSecMgrPermitJoining is never called. Joining via a router would always fail now since
+ // ZDSecMgrPermitJoiningEnabled in zd_sec_mgr.c stays FALSE
+ ZDSecMgrPermitJoining(duration);
MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_ZDO), cmdId, 1, &retValue);
}
diff --git a/source/ti/zstack/npi/npi_tl_uart.c b/source/ti/zstack/npi/npi_tl_uart.c
index bfea71ca3..3c90f6757 100644
--- a/source/ti/zstack/npi/npi_tl_uart.c
+++ b/source/ti/zstack/npi/npi_tl_uart.c
@@ -1,5 +1,7 @@
/******************************************************************************
+******************************************************************************
+
@file npi_tl_uart.c
@brief NPI Transport Layer Module for UART
@@ -8,7 +10,7 @@
Target Device: cc13xx_cc26xx
******************************************************************************
-
+
Copyright (c) 2015-2024, Texas Instruments Incorporated
All rights reserved.
@@ -38,10 +40,6 @@
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.
-
- ******************************************************************************
-
-
*****************************************************************************/
// ****************************************************************************
@@ -114,6 +112,8 @@ static uint16 NPITLUART_readIsrBuf(size_t size);
//! \brief UART Callback invoked after UART write completion
static void NPITLUART_writeCallBack(UART2_Handle handle, void *ptr, size_t size, void *userArg, int_fast16_t status);
+static void NPITLUART_eventCallBack(UART2_Handle handle, uint32_t event, uint32_t data, void *userArg);
+
//! \brief UART Callback invoked after readsize has been read or timeout
static void NPITLUART_readCallBack(UART2_Handle handle, void *ptr, size_t size, void *userArg, int_fast16_t status);
@@ -152,6 +152,8 @@ void NPITLUART_initializeTransport(uint8_t *tRxBuf, uint8_t *tTxBuf, npiCB_t npi
params.readCallback = NPITLUART_readCallBack;
params.writeCallback = NPITLUART_writeCallBack;
+ params.eventCallback = NPITLUART_eventCallBack;
+ params.eventMask |= UART2_EVENT_TX_FINISHED;
// Open / power on the UART.
uartHandle = UART2_open(CONFIG_DISPLAY_UART, &params);
@@ -253,29 +255,34 @@ void NPITLUART_handleMrdyEvent(void)
//! \return void
// -----------------------------------------------------------------------------
static void NPITLUART_writeCallBack(UART2_Handle handle, void *ptr, size_t size, void *userArg, int_fast16_t status)
+{}
+static void NPITLUART_eventCallBack(UART2_Handle handle, uint32_t event, uint32_t data, void *userArg)
{
- uint32_t key;
- key = OsalPort_enterCS();
-
-#if (NPI_FLOW_CTRL == 1)
- if ( !RxActive )
+ if (event == UART2_EVENT_TX_FINISHED)
{
- UART2_readCancel(uartHandle);
+ uint32_t key;
+ key = OsalPort_enterCS();
+
+ #if (NPI_FLOW_CTRL == 1)
+ if ( !RxActive )
+ {
+ UART2_readCancel(uartHandle);
+ if ( npiTransmitCB )
+ {
+ npiTransmitCB(TransportRxLen,TransportTxLen);
+ }
+ }
+
+ TxActive = FALSE;
+ #else
if ( npiTransmitCB )
{
- npiTransmitCB(TransportRxLen,TransportTxLen);
+ npiTransmitCB(0,TransportTxLen);
}
- }
+ #endif // NPI_FLOW_CTRL = 1
- TxActive = FALSE;
-#else
- if ( npiTransmitCB )
- {
- npiTransmitCB(0,TransportTxLen);
+ OsalPort_leaveCS(key);
}
-#endif // NPI_FLOW_CTRL = 1
-
- OsalPort_leaveCS(key);
}
// -----------------------------------------------------------------------------
diff --git a/source/ti/zstack/npi/npi_tl_uart.h b/source/ti/zstack/npi/npi_tl_uart.h
index 499f96c81..576e4b4c8 100644
--- a/source/ti/zstack/npi/npi_tl_uart.h
+++ b/source/ti/zstack/npi/npi_tl_uart.h
@@ -72,7 +72,7 @@ extern "C"
#endif // !NPI_UART_BR
// UART ISR Buffer define
-#define UART_ISR_BUF_SIZE 32
+#define UART_ISR_BUF_SIZE 128
#define UART_ISR_BUF_CNT 2
// ****************************************************************************
diff --git a/source/ti/zstack/stack/af/af.c b/source/ti/zstack/stack/af/af.c
index d1de1d45c..1ae7b9a15 100644
--- a/source/ti/zstack/stack/af/af.c
+++ b/source/ti/zstack/stack/af/af.c
@@ -433,10 +433,22 @@ void afIncomingData( aps_FrameFormat_t *aff, zAddrType_t *SrcAddress, uint16_t S
#if !defined ( APS_NO_GROUPS )
// Find the first endpoint for this group
grpEp = aps_FindGroupForEndpoint( aff->GroupID, APS_GROUPS_FIND_FIRST );
- if ( grpEp == APS_GROUPS_EP_NOT_FOUND )
- return; // No endpoint found
+ if ( grpEp == APS_GROUPS_EP_NOT_FOUND ) {
+#ifdef IS_COORDINATOR
+ // No endpoint found, default to endpoint 1.
+ // In the original source code there is a return here.
+ // This prevent the messags from being forwarded.
+ // For our use-case we want to capture all messages.
+ // Even if the coordinator is not in the group.
+ epDesc = afFindEndPointDesc( 1 );
+#else
+ return;
+#endif
+ }
+ else {
+ epDesc = afFindEndPointDesc( grpEp );
+ }
- epDesc = afFindEndPointDesc( grpEp );
if ( epDesc == NULL )
return; // Endpoint descriptor not found
@@ -483,7 +495,12 @@ void afIncomingData( aps_FrameFormat_t *aff, zAddrType_t *SrcAddress, uint16_t S
// if the Wildcard ProfileID is received the message should not be sent to ZDO endpoint
if ( (aff->ProfileID == epProfileID) ||
((epDesc->endPoint == ZDO_EP) && (aff->ProfileID == ZDO_PROFILE_ID)) ||
- ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID )) )
+ ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID ))
+#ifdef IS_COORDINATOR
+ // Forward messages to endpoint even with profileID mismatches
+ || ((aff->ProfileID >= 0x100) && (aff->ProfileID <= 0xFC01))
+#endif
+ )
{
// Save original endpoint
uint8_t endpoint = aff->DstEndPoint;
diff --git a/source/ti/zstack/stack/nwk/nwk_globals.c b/source/ti/zstack/stack/nwk/nwk_globals.c
index f90e3164f..cb57e8868 100644
--- a/source/ti/zstack/stack/nwk/nwk_globals.c
+++ b/source/ti/zstack/stack/nwk/nwk_globals.c
@@ -91,10 +91,10 @@
* CONSTANTS
*/
// Maximums for the data buffer queue
-#define NWK_MAX_DATABUFS_WAITING 8 // Waiting to be sent to MAC
-#define NWK_MAX_DATABUFS_SCHEDULED 5 // Timed messages to be sent
-#define NWK_MAX_DATABUFS_CONFIRMED 5 // Held after MAC confirms
-#define NWK_MAX_DATABUFS_TOTAL 12 // Total number of buffers
+#define NWK_MAX_DATABUFS_WAITING 48 // Waiting to be sent to MAC
+#define NWK_MAX_DATABUFS_SCHEDULED 30 // Timed messages to be sent
+#define NWK_MAX_DATABUFS_CONFIRMED 30 // Held after MAC confirms
+#define NWK_MAX_DATABUFS_TOTAL 72 // Total number of buffers
// 1-255 (0 -> 256) X RTG_TIMER_INTERVAL
// A known shortcoming is that when a message is enqueued as "hold" for a
diff --git a/source/ti/zstack/stack/nwk/nwk_util.c b/source/ti/zstack/stack/nwk/nwk_util.c
new file mode 100644
index 000000000..da24c0388
--- /dev/null
+++ b/source/ti/zstack/stack/nwk/nwk_util.c
@@ -0,0 +1,49 @@
+#include "nwk_util.h"
+#include "aps_mede.h"
+
+#ifndef NWK_MAX_CHILD_AGING_LEAVE_DISABLED_ENTRIES
+#define NWK_MAX_CHILD_AGING_LEAVE_DISABLED_ENTRIES 50
+#endif
+
+typedef struct
+{
+ uint8_t extAddr[Z_EXTADDR_LEN];
+ uint8_t numBytesToMatch;
+} child_aging_leave_disabled_entry_t;
+
+child_aging_leave_disabled_entry_t childAgingLeaveDisabledList[NWK_MAX_CHILD_AGING_LEAVE_DISABLED_ENTRIES];
+uint8_t chidlAgingLeaveDisabledCnt = 0;
+
+uint8_t NwkDisableChildAgingLeaveAdd(uint8_t* extAddr, uint8_t numBytesToMatch)
+{
+ if (chidlAgingLeaveDisabledCnt == NWK_MAX_CHILD_AGING_LEAVE_DISABLED_ENTRIES) {
+ return 1;
+ }
+
+ memcpy(childAgingLeaveDisabledList[chidlAgingLeaveDisabledCnt].extAddr, extAddr, Z_EXTADDR_LEN);
+ childAgingLeaveDisabledList[chidlAgingLeaveDisabledCnt].numBytesToMatch = numBytesToMatch;
+ ++chidlAgingLeaveDisabledCnt;
+
+ return 0;
+}
+
+void NwkNotMyChildSendLeaveCustom (uint16_t dstAddr)
+{
+ uint8_t extAddr[Z_EXTADDR_LEN];
+ uint8_t idx;
+
+ if (!APSME_LookupExtAddr(dstAddr, extAddr)) {
+ return;
+ }
+
+ // Do not send leave request to devices where it is disabled for
+ for (idx = 0; idx < chidlAgingLeaveDisabledCnt; ++idx)
+ {
+ uint8_t offset = Z_EXTADDR_LEN - childAgingLeaveDisabledList[idx].numBytesToMatch;
+ if (memcmp(childAgingLeaveDisabledList[idx].extAddr + offset, extAddr + offset, childAgingLeaveDisabledList[idx].numBytesToMatch) == 0) {
+ return;
+ }
+ }
+
+ NwkNotMyChildSendLeave (dstAddr);
+};
diff --git a/source/ti/zstack/stack/nwk/nwk_util.h b/source/ti/zstack/stack/nwk/nwk_util.h
index 468227b32..804bd303b 100644
--- a/source/ti/zstack/stack/nwk/nwk_util.h
+++ b/source/ti/zstack/stack/nwk/nwk_util.h
@@ -638,6 +638,10 @@ extern uint8_t (*pNwkNotMyChildListAdd)( uint16_t devAddr, uint32_t timeoutValue
extern void (*pNwkNotMyChildListDelete)( uint16_t devAddr );
extern void (*pNwkNotMyChildSendLeave)( uint16_t dstAddr );
+// Custom functions
+void NwkNotMyChildSendLeaveCustom (uint16_t dstAddr);
+uint8_t NwkDisableChildAgingLeaveAdd(uint8_t* extAddr, uint8_t numBytesToMatch);
+
/****************************************************************************
* Utility function to copy NV items
****************************************************************************/
diff --git a/source/ti/zstack/stack/sys/zcomdef.h b/source/ti/zstack/stack/sys/zcomdef.h
index 57e0aa34b..bdc449029 100644
--- a/source/ti/zstack/stack/sys/zcomdef.h
+++ b/source/ti/zstack/stack/sys/zcomdef.h
@@ -123,6 +123,11 @@ extern "C"
#define ZCD_NV_STARTUP_OPTION 0x0003
#define ZCD_NV_START_DELAY 0x0004
+#ifdef IS_ROUTER
+// Custom transmit power NV item
+#define ZCD_NV_TRANSMIT_POWER 0x0010
+#endif
+
// NWK Layer NV item IDs
#define ZCD_NV_NIB 0x0021
#define ZCD_NV_DEVICE_LIST 0x0022
diff --git a/source/ti/zstack/stack/sys/zglobals.c b/source/ti/zstack/stack/sys/zglobals.c
index 0a1d7d2a6..3d0801eda 100644
--- a/source/ti/zstack/stack/sys/zglobals.c
+++ b/source/ti/zstack/stack/sys/zglobals.c
@@ -131,7 +131,11 @@ uint8_t zgSecurePermitJoin = TRUE;
// TC Link Key. In this scenario, if this flag is TRUE, the Trust Center will
// encrypt the outgoing NWK Key with the default TC Link Key (ZigbeeAlliance09).
// If this flag is FALSE (default), the Trust Center will not send the NWK Key at all.
-uint8_t zgAllowRejoinsWithWellKnownKey = FALSE;
+#ifdef IS_COORDINATOR
+uint8_t zgAllowRejoinsWithWellKnownKey = TRUE; // https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/158/p/882650/3265311#3265311
+#else
+uint8_t zgAllowRejoinsWithWellKnownKey = FALSE;
+#endif
//allowInstallCodes
uint8_t zgAllowInstallCodes = ZG_IC_SUPPORTED_NOT_REQUIRED;
diff --git a/source/ti/zstack/stack/zcl/zcl.c b/source/ti/zstack/stack/zcl/zcl.c
index 5d3af48da..ea186c298 100644
--- a/source/ti/zstack/stack/zcl/zcl.c
+++ b/source/ti/zstack/stack/zcl/zcl.c
@@ -47,6 +47,8 @@
#include "zcl.h"
#include "zcl_general.h"
+#include "osal_nv.h"
+
#if defined ( INTER_PAN ) || defined ( BDB_TL_INITIATOR ) || defined ( BDB_TL_TARGET )
#include "stub_aps.h"
#endif
@@ -4675,6 +4677,16 @@ static uint8_t zclProcessInWriteCmd( zclIncoming_t *pInMsg )
status = zclWriteAttrData( pInMsg->msg->endPoint, &(pInMsg->msg->srcAddr),
&attrRec, statusRec );
}
+
+#ifdef IS_ROUTER
+ if((pInMsg->msg->clusterId == ZCL_CLUSTER_ID_GENERAL_BASIC) && (statusRec->attrID == ATTRID_BASIC_TRANSMIT_POWER))
+ {
+ int8_t transmitPower;
+ OsalPort_memcpy((int8_t*)&transmitPower,statusRec->attrData,sizeof(int8_t));
+ ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
+ osal_nv_write( ZCD_NV_TRANSMIT_POWER, sizeof( transmitPower ), &transmitPower );
+ }
+#endif
}
else // Use CB
{
diff --git a/source/ti/zstack/stack/zdo/zd_app.c b/source/ti/zstack/stack/zdo/zd_app.c
index d67a7798a..4e6e38295 100644
--- a/source/ti/zstack/stack/zdo/zd_app.c
+++ b/source/ti/zstack/stack/zdo/zd_app.c
@@ -3163,6 +3163,14 @@ void ZDO_NetworkStatusCB( uint16_t nwkDstAddr, uint8_t statusCode, uint16_t dstA
// Routing error for dstAddr, this is informational and a Route
// Request should happen automatically.
}
+
+ if ( (nwkDstAddr == NLME_GetShortAddr())
+ && (statusCode == NWKSTAT_SOURCE_ROUTE_FAILURE) )
+ {
+ // Received a source route failure, remove route and rediscover.
+ RTG_RemoveRtgEntry( dstAddr, 0 );
+ NLME_RouteDiscoveryRequest( dstAddr, 0, 30 );
+ }
}
/******************************************************************************
diff --git a/source/ti/zstack/stack/zdo/zd_object.c b/source/ti/zstack/stack/zdo/zd_object.c
index 0c62d58d6..d1f899cec 100644
--- a/source/ti/zstack/stack/zdo/zd_object.c
+++ b/source/ti/zstack/stack/zdo/zd_object.c
@@ -676,6 +676,20 @@ void ZDO_ProcessNodeDescReq( zdoIncomingMsg_t *inMsg )
if ( desc != NULL )
{
+ uint8_t extAddr[Z_EXTADDR_LEN];
+ // Respond with Xiaomi manufacturer code when ieeAddr is withing Xiaomi address space
+ // Otherwise some devices don't work
+ // https://github.com/Koenkk/zigbee2mqtt/issues/9274
+ if (APSME_LookupExtAddr(inMsg->srcAddr.addr.shortAddr, extAddr) == TRUE &&
+ ((extAddr[7] == 0x04 && extAddr[6] == 0xcf && extAddr[5] == 0x8c) ||
+ (extAddr[7] == 0x54 && extAddr[6] == 0xef && extAddr[5] == 0x44))) {
+ desc->ManufacturerCode[0] = 0x5f;
+ desc->ManufacturerCode[1] = 0x11;
+ } else {
+ desc->ManufacturerCode[0] = 0x0;
+ desc->ManufacturerCode[1] = 0x0;
+ }
+
ZDP_NodeDescMsg( inMsg, aoi, desc );
}
else
diff --git a/source/ti/zstack/stack/zdo/zd_sec_mgr.c b/source/ti/zstack/stack/zdo/zd_sec_mgr.c
index 65d7857cc..3ae6825da 100644
--- a/source/ti/zstack/stack/zdo/zd_sec_mgr.c
+++ b/source/ti/zstack/stack/zdo/zd_sec_mgr.c
@@ -88,6 +88,7 @@ extern "C"
#include <ti/drivers/TRNG.h>
#include <ti/drivers/cryptoutils/cryptokey/CryptoKeyPlaintext.h>
+#include "ti_drivers_config.h"
/******************************************************************************
* CONSTANTS
@@ -145,6 +146,8 @@ typedef struct
*/
extern CONST uint8_t gMAX_NWK_SEC_MATERIAL_TABLE_ENTRIES;
extern pfnZdoCb zdoCBFunc[MAX_ZDO_CB_FUNC];
+bool gLedsDisabled = FALSE;
+LED_Handle gLedHandle;
/******************************************************************************
* EXTERNAL FUNCTIONS
@@ -1545,6 +1548,23 @@ void ZDSecMgrConfig( void )
}
}
+void updateLED( void )
+{
+ if (gLedHandle == NULL) {
+ LED_Params ledParams;
+ LED_Params_init(&ledParams);
+ gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams);
+ }
+
+ if (gLedsDisabled == FALSE && gLedHandle != NULL) {
+ if (ZDSecMgrPermitJoiningEnabled == TRUE) {
+ LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX);
+ } else {
+ LED_setOff(gLedHandle);
+ }
+ }
+}
+
/******************************************************************************
* @fn ZDSecMgrPermitJoining
*
@@ -1573,6 +1593,7 @@ uint8_t ZDSecMgrPermitJoining( uint8_t duration )
ZDSecMgrPermitJoiningEnabled = FALSE;
}
+ updateLED();
accept = TRUE;
return accept;
@@ -1594,6 +1615,8 @@ void ZDSecMgrPermitJoiningTimeout( void )
ZDSecMgrPermitJoiningEnabled = FALSE;
ZDSecMgrPermitJoiningTimed = FALSE;
}
+
+ updateLED();
}
/******************************************************************************
diff --git a/source/ti/zstack/stack/zdo/zd_sec_mgr.h b/source/ti/zstack/stack/zdo/zd_sec_mgr.h
index b1ab5fcf4..a85f0ca08 100644
--- a/source/ti/zstack/stack/zdo/zd_sec_mgr.h
+++ b/source/ti/zstack/stack/zdo/zd_sec_mgr.h
@@ -77,6 +77,8 @@ extern "C"
#include "zcomdef.h"
#include "zd_app.h"
+#include <ti/drivers/apps/LED.h>
+
/******************************************************************************
* TYPEDEFS
*/
@@ -121,6 +123,9 @@ extern CONST uint16_t gZDSECMGR_TC_DEVICE_MAX;
extern CONST uint16_t gZDSECMGR_TC_DEVICE_IC_MAX;
extern uint8_t gZDSECMGR_TC_ATTEMPT_DEFAULT_KEY;
+extern bool gLedsDisabled;
+extern LED_Handle gLedHandle;
+
typedef struct
{
uint32_t FrameCounter;
diff --git a/source/ti/zstack/startup/zstackstartup.c b/source/ti/zstack/startup/zstackstartup.c
index 72073f7a9..36d913077 100644
--- a/source/ti/zstack/startup/zstackstartup.c
+++ b/source/ti/zstack/startup/zstackstartup.c
@@ -701,6 +701,14 @@ static void stackInit(void)
//Initialize default poll rates
nwk_InitializeDefaultPollRates();
+ // Use custom function for child aging leave requests
+ pNwkNotMyChildSendLeave = &NwkNotMyChildSendLeaveCustom;
+
+ // Disable child aging leave for Xiaomi/Aqara extAddr range to prevent them from being kicekd out of the network.
+ // They do not support child aging.
+ uint8_t extAddrXiaomi [] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x15, 0x00};
+ NwkDisableChildAgingLeaveAdd(extAddrXiaomi, 3);
+
/* Initialize MAC buffer */
macLowLevelBufferInit();
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
index 4bb416405..5a15ca68d 100644
--- a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..694c9c52f 100644
--- a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
new file mode 100644
index 000000000..c80aafd91
--- /dev/null
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
@@ -0,0 +1,108 @@
+/*
+ * ======== ti_devices_config.c ========
+ * Customer Configuration for CC26XX and CC13XX devices.
+ *
+ * DO NOT EDIT - This file is generated by the SysConfig tool.
+ *
+ */
+
+//#####################################
+// Force VDDR high setting (Higher output power but also higher power consumption)
+// This is also called "boost mode"
+//#####################################
+
+// Force VDDR voltage to the factory HH setting (FCFG1..VDDR_TRIM_HH)
+#define CCFG_FORCE_VDDR_HH 0x1
+
+
+//#####################################
+// Power settings
+//#####################################
+
+// Do not use the DC/DC during recharge in powerdown
+#define SET_CCFG_MODE_CONF_DCDC_RECHARGE 0x1
+
+// Do not use the DC/DC during active mode
+#define SET_CCFG_MODE_CONF_DCDC_ACTIVE 0x1
+
+
+//#####################################
+// Clock settings
+//#####################################
+
+// LF XOSC
+#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x2
+
+// Apply cap-array delta
+#define SET_CCFG_MODE_CONF_XOSC_CAP_MOD 0x0
+// CUSTOM: set in preinclude.h
+// #define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA 0xc1
+
+//#####################################
+// Special HF clock source setting
+//#####################################
+
+// HF source is a 48 MHz xtal
+#define SET_CCFG_MODE_CONF_XOSC_FREQ 0x2
+
+//#####################################
+// Bootloader settings
+//#####################################
+
+// Enable ROM boot loader
+#define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5
+
+// Enabled boot loader backdoor
+#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5
+
+// DIO number for boot loader backdoor
+#define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0xf
+
+// Active low to open boot loader backdoor
+#define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0
+
+
+// Default address in IMAGE_VALID_CONF register
+#define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID 0x00000000
+
+//#####################################
+// Debug access settings
+//#####################################
+
+// Disable unlocking of TI Failure Analysis option
+#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE 0x00
+
+// Disable customer key CKEY0-3 to be XOR'ed with TI FA option unlock key
+#define SET_CCFG_CCFG_TI_OPTIONS_C_FA_DIS 0xC5
+
+// Access enabled if also enabled in FCFG
+#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE 0xC5
+
+// Access enabled if also enabled in FCFG
+#define SET_CCFG_CCFG_TAP_DAP_0_PWRPROF_TAP_ENABLE 0xC5
+
+// Access disabled
+#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE 0x00
+
+// Access disabled
+#define SET_CCFG_CCFG_TAP_DAP_1_PBIST2_TAP_ENABLE 0x00
+
+// Access disabled
+#define SET_CCFG_CCFG_TAP_DAP_1_PBIST1_TAP_ENABLE 0x00
+
+// Access disabled
+#define SET_CCFG_CCFG_TAP_DAP_1_AON_TAP_ENABLE 0x00
+
+//#####################################
+// Select between cache or GPRAM
+//#####################################
+
+// Cache is enabled and GPRAM is disabled (unavailable)
+#define SET_CCFG_SIZE_AND_DIS_FLAGS_DIS_GPRAM 0x1
+
+/*
+ * ======== Include Base Settings for device ========
+ */
+
+#include <ti/devices/DeviceFamily.h>
+#include DeviceFamily_constructPath(startup_files/ccfg.c)
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
new file mode 100644
index 000000000..2e5d07e33
--- /dev/null
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
@@ -0,0 +1,283 @@
+/*
+ * ======== ti_drivers_config.h ========
+ * Configured TI-Drivers module declarations
+ *
+ * The macros defines herein are intended for use by applications which
+ * directly include this header. These macros should NOT be hard coded or
+ * copied into library source code.
+ *
+ * Symbols declared as const are intended for use with libraries.
+ * Library source code must extern the correct symbol--which is resolved
+ * when the application is linked.
+ *
+ * DO NOT EDIT - This file is generated for the CC1352P_2_LAUNCHXL
+ * by the SysConfig tool.
+ */
+#ifndef ti_drivers_config_h
+#define ti_drivers_config_h
+
+#define CONFIG_SYSCONFIG_PREVIEW
+
+#define CONFIG_CC1352P_2_LAUNCHXL
+#ifndef DeviceFamily_CC13X2
+#define DeviceFamily_CC13X2
+#endif
+
+#include <ti/devices/DeviceFamily.h>
+
+#include <stdint.h>
+
+/* support C++ sources */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * ======== CCFG ========
+ */
+
+
+/*
+ * ======== Display ========
+ */
+
+extern const uint_least8_t CONFIG_DISPLAY_CONST;
+#define CONFIG_DISPLAY 0
+#define CONFIG_TI_DRIVERS_DISPLAY_COUNT 1
+
+
+/*
+ * ======== AESCBC ========
+ */
+
+extern const uint_least8_t CONFIG_AESCBC_0_CONST;
+#define CONFIG_AESCBC_0 0
+#define CONFIG_TI_DRIVERS_AESCBC_COUNT 1
+
+
+/*
+ * ======== AESCCM ========
+ */
+
+extern const uint_least8_t CONFIG_AESCCM_0_CONST;
+#define CONFIG_AESCCM_0 0
+#define CONFIG_TI_DRIVERS_AESCCM_COUNT 1
+
+
+/*
+ * ======== AESECB ========
+ */
+
+extern const uint_least8_t CONFIG_AESECB_0_CONST;
+#define CONFIG_AESECB_0 0
+#define CONFIG_TI_DRIVERS_AESECB_COUNT 1
+
+
+/*
+ * ======== ECDH ========
+ */
+
+extern const uint_least8_t CONFIG_ECDH_0_CONST;
+#define CONFIG_ECDH_0 0
+#define CONFIG_TI_DRIVERS_ECDH_COUNT 1
+
+
+/*
+ * ======== ECDSA ========
+ */
+
+extern const uint_least8_t CONFIG_ECDSA_0_CONST;
+#define CONFIG_ECDSA_0 0
+#define CONFIG_TI_DRIVERS_ECDSA_COUNT 1
+
+
+/*
+ * ======== GPIO ========
+ */
+/* Owned by CONFIG_DISPLAY_UART as */
+extern const uint_least8_t CONFIG_GPIO_DISPLAY_UART_TX_CONST;
+#define CONFIG_GPIO_DISPLAY_UART_TX 13
+
+/* Owned by CONFIG_DISPLAY_UART as */
+extern const uint_least8_t CONFIG_GPIO_DISPLAY_UART_RX_CONST;
+#define CONFIG_GPIO_DISPLAY_UART_RX 12
+
+/* Owned by /ti/drivers/RF as */
+extern const uint_least8_t CONFIG_RF_24GHZ_CONST;
+// CUSTOM: set in preinclude.h
+// #define CONFIG_RF_24GHZ 28
+
+/* Owned by /ti/drivers/RF as */
+extern const uint_least8_t CONFIG_RF_HIGH_PA_CONST;
+// CUSTOM: set in preinclude.h
+// #define CONFIG_RF_HIGH_PA 29
+
+/* Owned by /ti/drivers/RF as */
+extern const uint_least8_t CONFIG_RF_SUB1GHZ_CONST;
+#define CONFIG_RF_SUB1GHZ 30
+
+/* Owned by CONFIG_BTN_LEFT as */
+extern const uint_least8_t CONFIG_GPIO_BTN1_CONST;
+#define CONFIG_GPIO_BTN1 15
+
+/* Owned by CONFIG_BTN_RIGHT as */
+extern const uint_least8_t CONFIG_GPIO_BTN2_CONST;
+#define CONFIG_GPIO_BTN2 14
+
+/* Owned by CONFIG_LED_RED as */
+extern const uint_least8_t CONFIG_GPIO_RLED_CONST;
+#define CONFIG_GPIO_RLED 6
+
+/* Owned by CONFIG_LED_GREEN as */
+extern const uint_least8_t CONFIG_GPIO_GLED_CONST;
+#define CONFIG_GPIO_GLED 7
+
+/* Owned by CONFIG_NVS_SPI_0 as */
+extern const uint_least8_t CONFIG_GPIO_0_CONST;
+#define CONFIG_GPIO_0 20
+
+/* Owned by CONFIG_SPI_0 as */
+extern const uint_least8_t CONFIG_PIN_SPI_SCLK_CONST;
+#define CONFIG_PIN_SPI_SCLK 10
+
+/* Owned by CONFIG_SPI_0 as */
+extern const uint_least8_t CONFIG_PIN_SPI_MISO_CONST;
+#define CONFIG_PIN_SPI_MISO 8
+
+/* Owned by CONFIG_SPI_0 as */
+extern const uint_least8_t CONFIG_PIN_SPI_MOSI_CONST;
+#define CONFIG_PIN_SPI_MOSI 9
+
+/* The range of pins available on this device */
+extern const uint_least8_t GPIO_pinLowerBound;
+extern const uint_least8_t GPIO_pinUpperBound;
+
+/* LEDs are active high */
+#define CONFIG_GPIO_LED_ON (1)
+#define CONFIG_GPIO_LED_OFF (0)
+
+#define CONFIG_LED_ON (CONFIG_GPIO_LED_ON)
+#define CONFIG_LED_OFF (CONFIG_GPIO_LED_OFF)
+
+
+/*
+ * ======== NVS ========
+ */
+
+extern const uint_least8_t CONFIG_NVSINTERNAL_CONST;
+#define CONFIG_NVSINTERNAL 0
+/*
+ * PICO: DIO9
+ * POCI: DIO8
+ * SCLK: DIO10
+ * LaunchPad SPI Bus
+ * CSN: undefined
+ */
+extern const uint_least8_t CONFIG_NVSEXTERNAL_CONST;
+#define CONFIG_NVSEXTERNAL 1
+#define CONFIG_TI_DRIVERS_NVS_COUNT 2
+
+
+/*
+ * ======== RF ========
+ */
+#define Board_DIO_30_RFSW 0x0000001e
+
+
+/*
+ * ======== SHA2 ========
+ */
+
+extern const uint_least8_t CONFIG_SHA2_0_CONST;
+#define CONFIG_SHA2_0 0
+#define CONFIG_TI_DRIVERS_SHA2_COUNT 1
+
+
+/*
+ * ======== SPI ========
+ */
+
+/*
+ * PICO: DIO9
+ * POCI: DIO8
+ * SCLK: DIO10
+ * LaunchPad SPI Bus
+ */
+extern const uint_least8_t CONFIG_SPI_0_CONST;
+#define CONFIG_SPI_0 0
+#define CONFIG_TI_DRIVERS_SPI_COUNT 1
+
+
+/*
+ * ======== TRNG ========
+ */
+
+extern const uint_least8_t CONFIG_TRNG_0_CONST;
+#define CONFIG_TRNG_0 0
+#define CONFIG_TI_DRIVERS_TRNG_COUNT 1
+
+
+/*
+ * ======== UART2 ========
+ */
+
+/*
+ * TX: DIO13
+ * RX: DIO12
+ * XDS110 UART
+ */
+extern const uint_least8_t CONFIG_DISPLAY_UART_CONST;
+#define CONFIG_DISPLAY_UART 0
+#define CONFIG_TI_DRIVERS_UART2_COUNT 1
+
+
+/*
+ * ======== Button ========
+ */
+
+extern const uint_least8_t CONFIG_BTN_LEFT_CONST;
+#define CONFIG_BTN_LEFT 0
+extern const uint_least8_t CONFIG_BTN_RIGHT_CONST;
+#define CONFIG_BTN_RIGHT 1
+#define CONFIG_TI_DRIVERS_BUTTON_COUNT 2
+
+
+/*
+ * ======== LED ========
+ */
+
+extern const uint_least8_t CONFIG_LED_RED_CONST;
+#define CONFIG_LED_RED 0
+extern const uint_least8_t CONFIG_LED_GREEN_CONST;
+#define CONFIG_LED_GREEN 1
+#define CONFIG_TI_DRIVERS_LED_COUNT 2
+
+
+/*
+ * ======== Board_init ========
+ * Perform all required TI-Drivers initialization
+ *
+ * This function should be called once at a point before any use of
+ * TI-Drivers.
+ */
+extern void Board_init(void);
+
+/*
+ * ======== Board_initGeneral ========
+ * (deprecated)
+ *
+ * Board_initGeneral() is defined purely for backward compatibility.
+ *
+ * All new code should use Board_init() to do any required TI-Drivers
+ * initialization _and_ use <Driver>_init() for only where specific drivers
+ * are explicitly referenced by the application. <Driver>_init() functions
+ * are idempotent.
+ */
+#define Board_initGeneral Board_init
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* include guard */
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
new file mode 100644
index 000000000..ca2769a12
--- /dev/null
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
@@ -0,0 +1,385 @@
+/*
+ * ======== ti_radio_config.c ========
+ * Configured RadioConfig module definitions
+ *
+ * DO NOT EDIT - This file is generated for the CC1352P1F3RGZ
+ * by the SysConfig tool.
+ *
+ * Radio Config module version : 1.20.0
+ * SmartRF Studio data version : 2.32.0
+ */
+
+#include "ti_radio_config.h"
+#include DeviceFamily_constructPath(rf_patches/rf_patch_cpe_ieee_802_15_4.h)
+
+
+// *********************************************************************************
+// RF Frontend configuration
+// *********************************************************************************
+// RF design based on: LAUNCHXL-CC1352P-2
+
+// TX Power tables
+// The RF_TxPowerTable_DEFAULT_PA_ENTRY and RF_TxPowerTable_HIGH_PA_ENTRY macros are defined in RF.h.
+// The following arguments are required:
+// RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost, coefficient)
+// RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim)
+// See the Technical Reference Manual for further details about the "txPower" Command field.
+// The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise.
+
+// 868 MHz, 13 dBm
+RF_TxPowerTable_Entry txPowerTable_868_pa13[TXPOWERTABLE_868_PA13_SIZE] =
+{
+ {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 2) }, // 0x04C0
+ {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 3) }, // 0x06C1
+ {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 5) }, // 0x0AC2
+ {-7, RF_TxPowerTable_DEFAULT_PA_ENTRY(3, 3, 0, 5) }, // 0x0AC3
+ {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 5) }, // 0x0AC4
+ {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(5, 3, 0, 6) }, // 0x0CC5
+ {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 8) }, // 0x10C8
+ {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 9) }, // 0x12C9
+ {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 9) }, // 0x12CA
+ {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 10) }, // 0x14CB
+ {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 3, 0, 11) }, // 0x16CD
+ {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 3, 0, 14) }, // 0x1CCE
+ {6, RF_TxPowerTable_DEFAULT_PA_ENTRY(17, 3, 0, 16) }, // 0x20D1
+ {7, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 19) }, // 0x26D4
+ {8, RF_TxPowerTable_DEFAULT_PA_ENTRY(24, 3, 0, 22) }, // 0x2CD8
+ {9, RF_TxPowerTable_DEFAULT_PA_ENTRY(28, 3, 0, 31) }, // 0x3EDC
+ {10, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 2, 0, 31) }, // 0x3E92
+ {11, RF_TxPowerTable_DEFAULT_PA_ENTRY(26, 2, 0, 51) }, // 0x669A
+ {12, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 0, 0, 82) }, // 0xA410
+ // The original PA value (12.5 dBm) has been rounded to an integer value.
+ {13, RF_TxPowerTable_DEFAULT_PA_ENTRY(36, 0, 0, 89) }, // 0xB224
+ // This setting requires CCFG_FORCE_VDDR_HH = 1.
+ {14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 0) }, // 0x013F
+ RF_TxPowerTable_TERMINATION_ENTRY
+};
+
+
+// 2400 MHz, 5 dBm
+RF_TxPowerTable_Entry txPowerTable_2400_pa5[TXPOWERTABLE_2400_PA5_SIZE] =
+{
+ {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) }, // 0x04C6
+ {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) }, // 0x06C8
+ {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) }, // 0x06CA
+ {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) }, // 0x0ACC
+ {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) }, // 0x0ACF
+ {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) }, // 0x0AD0
+ {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) }, // 0x10D4
+ {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) }, // 0x12D6
+ {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) }, // 0x1893
+ {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) }, // 0x2853
+ {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) }, // 0x2856
+ {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) }, // 0x3259
+ {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) }, // 0x385D
+ {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) }, // 0x4E63
+ {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) }, // 0x7217
+ RF_TxPowerTable_TERMINATION_ENTRY
+};
+
+// 2400 MHz, 5 + 20 dBm
+RF_TxPowerTable_Entry txPowerTable_2400_pa5_20[TXPOWERTABLE_2400_PA5_20_SIZE] =
+{
+ {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) }, // 0x04C6
+ {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) }, // 0x06C8
+ {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) }, // 0x06CA
+ {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) }, // 0x0ACC
+ {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) }, // 0x0ACF
+ {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) }, // 0x0AD0
+ {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) }, // 0x10D4
+ {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) }, // 0x12D6
+ {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) }, // 0x1893
+ {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) }, // 0x2853
+ {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) }, // 0x2856
+ {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) }, // 0x3259
+ {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) }, // 0x385D
+ {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) }, // 0x4E63
+ {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) }, // 0x7217
+
+ // CUSTOM: allow transmit power 6 - 13 dbm
+ {6, .value.rawValue = (0x144f2a), .value.paType = RF_TxPowerTable_HighPA },
+ {7, .value.rawValue = (0x14285f), .value.paType = RF_TxPowerTable_HighPA },
+ {8, .value.rawValue = (0x10335a), .value.paType = RF_TxPowerTable_HighPA },
+ {9, .value.rawValue = (0x103f5f), .value.paType = RF_TxPowerTable_HighPA },
+ {10, .value.rawValue = (0x104f66), .value.paType = RF_TxPowerTable_HighPA },
+ {11, .value.rawValue = (0x3021cb), .value.paType = RF_TxPowerTable_HighPA },
+ {12, .value.rawValue = (0x3f27cc), .value.paType = RF_TxPowerTable_HighPA },
+ {13, .value.rawValue = (0x3fc3cd), .value.paType = RF_TxPowerTable_HighPA },
+
+ {14, RF_TxPowerTable_HIGH_PA_ENTRY(22, 3, 1, 19, 27) }, // 0x1B27D6
+ {15, RF_TxPowerTable_HIGH_PA_ENTRY(26, 3, 1, 23, 27) }, // 0x1B2FDA
+ {16, RF_TxPowerTable_HIGH_PA_ENTRY(30, 3, 1, 28, 27) }, // 0x1B39DE
+ {17, RF_TxPowerTable_HIGH_PA_ENTRY(37, 3, 1, 39, 27) }, // 0x1B4FE5
+ {18, RF_TxPowerTable_HIGH_PA_ENTRY(32, 3, 1, 35, 48) }, // 0x3047E0
+ {19, RF_TxPowerTable_HIGH_PA_ENTRY(34, 3, 1, 48, 63) }, // 0x3F61E2
+ {20, RF_TxPowerTable_HIGH_PA_ENTRY(53, 3, 1, 58, 63) }, // 0x3F75F5
+ RF_TxPowerTable_TERMINATION_ENTRY
+};
+
+
+
+//*********************************************************************************
+// RF Setting: IEEE 802.15.4-2006, 250 kbps, OQPSK, DSSS = 1:8
+//
+// PHY: ieee154
+// Setting file: setting_ieee_802_15_4.json
+//*********************************************************************************
+
+// PARAMETER SUMMARY
+// Channel - Frequency (MHz): 2405
+// TX Power (dBm): 20
+
+// TI-RTOS RF Mode Object
+RF_Mode RF_prop_ieee154 =
+{
+ .rfMode = RF_MODE_AUTO,
+ .cpePatchFxn = &rf_patch_cpe_ieee_802_15_4,
+ .mcePatchFxn = 0,
+ .rfePatchFxn = 0
+};
+
+// Overrides for CMD_RADIO_SETUP_PA
+uint32_t pOverrides_ieee154[] =
+{
+ // override_ieee_802_15_4.json
+ // Rx: Set LNA bias current offset to +15 to saturate trim to max (default: 0)
+ (uint32_t)0x000F8883,
+ // Tx: Set DCDC settings IPEAK=3, dither = off
+ (uint32_t)0x00F388D3,
+ (uint32_t)0xFFFFFFFF
+};
+
+// Overrides for CMD_RADIO_SETUP_PA
+uint32_t pOverrides_ieee154TxStd[] =
+{
+ // override_txstd_placeholder.json
+ // TX Standard power override
+ TX_STD_POWER_OVERRIDE(0x7217),
+ // The ANADIV radio parameter based on LO divider and front end settings
+ (uint32_t)0x05320703,
+ // override_txstd_settings.json
+ // Set RTIM offset to default for standard PA
+ (uint32_t)0x00008783,
+ // Set synth mux to default value for standard PA
+ (uint32_t)0x050206C3,
+ // Set TXRX pin to 0 in RX and high impedance in idle/TX.
+ HW_REG_OVERRIDE(0x60A8,0x0401),
+ (uint32_t)0xFFFFFFFF
+};
+
+// Overrides for CMD_RADIO_SETUP_PA
+uint32_t pOverrides_ieee154Tx20[] =
+{
+ // override_tx20_placeholder.json
+ // TX HighPA power override
+ TX20_POWER_OVERRIDE(0x003F75F5),
+ // The ANADIV radio parameter based on LO divider and front end settings
+ (uint32_t)0x01C20703,
+ // override_tx20_settings.json
+ // Set RTIM offset to 3 for high power PA
+ (uint32_t)0x00038783,
+ // Set synth mux for high power PA
+ (uint32_t)0x010206C3,
+ // Set TXRX pin to 0 in RX/TX and high impedance in idle.
+ HW_REG_OVERRIDE(0x60A8,0x0001),
+ (uint32_t)0xFFFFFFFF
+};
+
+
+
+// CMD_RADIO_SETUP_PA
+// Radio Setup Command for Pre-Defined Schemes
+const rfc_CMD_RADIO_SETUP_PA_t RF_cmdRadioSetup_ieee154 =
+{
+ .commandNo = 0x0802,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x1,
+ .condition.nSkip = 0x0,
+ .mode = 0x01,
+ .loDivider = 0x00,
+ .config.frontEndMode = 0x0,
+ .config.biasMode = 0x1,
+ .config.analogCfgMode = 0x0,
+ .config.bNoFsPowerUp = 0x0,
+ .config.bSynthNarrowBand = 0x0,
+ .txPower = 0xFFFF,
+ .pRegOverride = pOverrides_ieee154,
+ .pRegOverrideTxStd = pOverrides_ieee154TxStd,
+ .pRegOverrideTx20 = pOverrides_ieee154Tx20
+};
+
+// CMD_FS
+// Frequency Synthesizer Programming Command
+const rfc_CMD_FS_t RF_cmdFs_ieee154 =
+{
+ .commandNo = 0x0803,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x1,
+ .condition.nSkip = 0x0,
+ .frequency = 0x0965,
+ .fractFreq = 0x0000,
+ .synthConf.bTxMode = 0x0,
+ .synthConf.refFreq = 0x0,
+ .__dummy0 = 0x00,
+ .__dummy1 = 0x00,
+ .__dummy2 = 0x00,
+ .__dummy3 = 0x0000
+};
+
+// CMD_IEEE_TX
+// IEEE 802.15.4 Transmit Command
+const rfc_CMD_IEEE_TX_t RF_cmdIeeeTx_ieee154 =
+{
+ .commandNo = 0x2C01,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x1,
+ .condition.nSkip = 0x0,
+ .txOpt.bIncludePhyHdr = 0x0,
+ .txOpt.bIncludeCrc = 0x0,
+ .txOpt.payloadLenMsb = 0x0,
+ .payloadLen = 0x1E,
+ .pPayload = 0,
+ .timeStamp = 0x00000000
+};
+
+// CMD_IEEE_RX
+// IEEE 802.15.4 Receive Command
+const rfc_CMD_IEEE_RX_t RF_cmdIeeeRx_ieee154 =
+{
+ .commandNo = 0x2801,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x1,
+ .condition.nSkip = 0x0,
+ .channel = 0x00,
+ .rxConfig.bAutoFlushCrc = 0x0,
+ .rxConfig.bAutoFlushIgn = 0x0,
+ .rxConfig.bIncludePhyHdr = 0x0,
+ .rxConfig.bIncludeCrc = 0x0,
+ .rxConfig.bAppendRssi = 0x1,
+ .rxConfig.bAppendCorrCrc = 0x1,
+ .rxConfig.bAppendSrcInd = 0x0,
+ .rxConfig.bAppendTimestamp = 0x0,
+ .pRxQ = 0,
+ .pOutput = 0,
+ .frameFiltOpt.frameFiltEn = 0x0,
+ .frameFiltOpt.frameFiltStop = 0x0,
+ .frameFiltOpt.autoAckEn = 0x0,
+ .frameFiltOpt.slottedAckEn = 0x0,
+ .frameFiltOpt.autoPendEn = 0x0,
+ .frameFiltOpt.defaultPend = 0x0,
+ .frameFiltOpt.bPendDataReqOnly = 0x0,
+ .frameFiltOpt.bPanCoord = 0x0,
+ .frameFiltOpt.maxFrameVersion = 0x3,
+ .frameFiltOpt.fcfReservedMask = 0x0,
+ .frameFiltOpt.modifyFtFilter = 0x0,
+ .frameFiltOpt.bStrictLenFilter = 0x0,
+ .frameTypes.bAcceptFt0Beacon = 0x1,
+ .frameTypes.bAcceptFt1Data = 0x1,
+ .frameTypes.bAcceptFt2Ack = 0x1,
+ .frameTypes.bAcceptFt3MacCmd = 0x1,
+ .frameTypes.bAcceptFt4Reserved = 0x1,
+ .frameTypes.bAcceptFt5Reserved = 0x1,
+ .frameTypes.bAcceptFt6Reserved = 0x1,
+ .frameTypes.bAcceptFt7Reserved = 0x1,
+ .ccaOpt.ccaEnEnergy = 0x0,
+ .ccaOpt.ccaEnCorr = 0x0,
+ .ccaOpt.ccaEnSync = 0x0,
+ .ccaOpt.ccaCorrOp = 0x1,
+ .ccaOpt.ccaSyncOp = 0x1,
+ .ccaOpt.ccaCorrThr = 0x0,
+ .ccaRssiThr = 0x64,
+ .__dummy0 = 0x00,
+ .numExtEntries = 0x00,
+ .numShortEntries = 0x00,
+ .pExtEntryList = 0,
+ .pShortEntryList = 0,
+ .localExtAddr = 0x12345678,
+ .localShortAddr = 0xABBA,
+ .localPanID = 0x0000,
+ .__dummy1 = 0x000000,
+ .endTrigger.triggerType = 0x1,
+ .endTrigger.bEnaCmd = 0x0,
+ .endTrigger.triggerNo = 0x0,
+ .endTrigger.pastTrig = 0x0,
+ .endTime = 0x00000000
+};
+
+// CMD_IEEE_CSMA
+// IEEE 802.15.4 CSMA-CA Command
+const rfc_CMD_IEEE_CSMA_t RF_cmdIeeeCsma_ieee154 =
+{
+ .commandNo = 0x2C02,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x0,
+ .condition.nSkip = 0x0,
+ .randomState = 0x0000,
+ .macMaxBE = 0x00,
+ .macMaxCSMABackoffs = 0x00,
+ .csmaConfig.initCW = 0x0,
+ .csmaConfig.bSlotted = 0x0,
+ .csmaConfig.rxOffMode = 0x0,
+ .NB = 0x00,
+ .BE = 0x00,
+ .remainingPeriods = 0x00,
+ .lastRssi = 0x00,
+ .endTrigger.triggerType = 0x0,
+ .endTrigger.bEnaCmd = 0x0,
+ .endTrigger.triggerNo = 0x0,
+ .endTrigger.pastTrig = 0x0,
+ .lastTimeStamp = 0x00000000,
+ .endTime = 0x00000000
+};
+
+// CMD_IEEE_RX_ACK
+// IEEE 802.15.4 Receive Acknowledgement Command
+const rfc_CMD_IEEE_RX_ACK_t RF_cmdIeeeRxAck_ieee154 =
+{
+ .commandNo = 0x2C03,
+ .status = 0x0000,
+ .pNextOp = 0,
+ .startTime = 0x00000000,
+ .startTrigger.triggerType = 0x0,
+ .startTrigger.bEnaCmd = 0x0,
+ .startTrigger.triggerNo = 0x0,
+ .startTrigger.pastTrig = 0x0,
+ .condition.rule = 0x0,
+ .condition.nSkip = 0x0,
+ .seqNo = 0x00,
+ .endTrigger.triggerType = 0x0,
+ .endTrigger.bEnaCmd = 0x0,
+ .endTrigger.triggerNo = 0x0,
+ .endTrigger.pastTrig = 0x0,
+ .endTime = 0x00000000
+};
+
+
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
new file mode 100644
index 000000000..c96bf0d28
--- /dev/null
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
@@ -0,0 +1,83 @@
+/*
+ * ======== ti_radio_config.h ========
+ * Configured RadioConfig module definitions
+ *
+ * DO NOT EDIT - This file is generated for the CC1352P1F3RGZ
+ * by the SysConfig tool.
+ *
+ * Radio Config module version : 1.20.0
+ * SmartRF Studio data version : 2.32.0
+ */
+#ifndef _TI_RADIO_CONFIG_H_
+#define _TI_RADIO_CONFIG_H_
+
+#include <ti/devices/DeviceFamily.h>
+#include DeviceFamily_constructPath(driverlib/rf_mailbox.h)
+#include DeviceFamily_constructPath(driverlib/rf_common_cmd.h)
+#include DeviceFamily_constructPath(driverlib/rf_ieee_cmd.h)
+#include <ti/drivers/rf/RF.h>
+
+/* SmartRF Studio version that the RF data is fetched from */
+#define SMARTRF_STUDIO_VERSION "2.32.0"
+
+// *********************************************************************************
+// RF Frontend configuration
+// *********************************************************************************
+// RF design based on: LAUNCHXL-CC1352P-2
+#define LAUNCHXL_CC1352P_2
+
+// High-Power Amplifier supported
+#define SUPPORT_HIGH_PA
+
+// RF frontend configuration
+#define FRONTEND_SUB1G_DIFF_RF
+#define FRONTEND_SUB1G_EXT_BIAS
+#define FRONTEND_24G_DIFF_RF
+#define FRONTEND_24G_EXT_BIAS
+
+// Supported frequency bands
+#define SUPPORT_FREQBAND_868
+#define SUPPORT_FREQBAND_2400
+
+// TX power table size definitions
+#define TXPOWERTABLE_868_PA13_SIZE 22 // 868 MHz, 13 dBm
+#define TXPOWERTABLE_2400_PA5_SIZE 16 // 2400 MHz, 5 dBm
+// CUSTOM: account for extra entities in ti_radio_config.c txPowerTable_2400_pa5_20
+#define TXPOWERTABLE_2400_PA5_20_SIZE 31 // 2400 MHz, 5 + 20 dBm
+
+// TX power tables
+extern RF_TxPowerTable_Entry txPowerTable_868_pa13[]; // 868 MHz, 13 dBm
+extern RF_TxPowerTable_Entry txPowerTable_2400_pa5[]; // 2400 MHz, 5 dBm
+extern RF_TxPowerTable_Entry txPowerTable_2400_pa5_20[]; // 2400 MHz, 5 + 20 dBm
+
+
+
+//*********************************************************************************
+// RF Setting: IEEE 802.15.4-2006, 250 kbps, OQPSK, DSSS = 1:8
+//
+// PHY: ieee154
+// Setting file: setting_ieee_802_15_4.json
+//*********************************************************************************
+
+// PA table usage
+#define TX_POWER_TABLE_SIZE_ieee154 TXPOWERTABLE_2400_PA5_20_SIZE
+
+#define txPowerTable_ieee154 txPowerTable_2400_pa5_20
+
+// TI-RTOS RF Mode object
+extern RF_Mode RF_prop_ieee154;
+
+// RF Core API commands
+extern const rfc_CMD_RADIO_SETUP_PA_t RF_cmdRadioSetup_ieee154;
+extern const rfc_CMD_FS_t RF_cmdFs_ieee154;
+extern const rfc_CMD_IEEE_TX_t RF_cmdIeeeTx_ieee154;
+extern const rfc_CMD_IEEE_RX_t RF_cmdIeeeRx_ieee154;
+extern const rfc_CMD_IEEE_CSMA_t RF_cmdIeeeCsma_ieee154;
+extern const rfc_CMD_IEEE_RX_ACK_t RF_cmdIeeeRxAck_ieee154;
+
+// RF Core API overrides
+extern uint32_t pOverrides_ieee154[];
+extern uint32_t pOverrides_ieee154TxStd[];
+extern uint32_t pOverrides_ieee154Tx20[];
+
+#endif // _TI_RADIO_CONFIG_H_
diff --git a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/znp.syscfg b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/znp.syscfg
index d4aa40faa..4ea5983c4 100644
--- a/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/znp.syscfg
@@ -5,6 +5,10 @@
* @v2CliArgs --board "/ti/boards/CC1352P_2_LAUNCHXL" --device "CC1352P" --package "VQFN (RGZ)" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"
* @versions {"tool":"1.23.0+4000"}
*/
+scripting.excludeFromBuild("ti_devices_config.c");
+scripting.excludeFromBuild("ti_radio_config.c");
+scripting.excludeFromBuild("ti_radio_config.h");
+scripting.excludeFromBuild("ti_drivers_config.h");
/**
* Import the modules used in this configuration.
@@ -66,6 +70,7 @@ CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 15;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.forceVddr = true;
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
rfdesign.rfDesign = "LAUNCHXL-CC1352P-2";
@@ -88,8 +93,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionSize = 0x6000;
+NVS1.internalFlash.regionBase = 0x50000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -179,6 +184,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "20";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
index 4bc048a63..c6ead0dc3 100644
--- a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
+++ b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..694c9c52f 100644
--- a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
diff --git a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/znp.syscfg b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/znp.syscfg
index 3efe0956a..e9679a8ac 100644
--- a/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/znp.syscfg
@@ -63,6 +63,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 13;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -83,8 +84,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionBase = 0x50000;
+NVS1.internalFlash.regionSize = 0x6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -172,6 +173,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/.project b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/.project
index f727ae82a..1c91f9ce2 100644
--- a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/.project
+++ b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..694c9c52f 100644
--- a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
diff --git a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/znp.syscfg b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/znp.syscfg
index e6495498e..be1ffc95b 100644
--- a/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_LP_CC1352P7_4_tirtos7_ticlang/znp.syscfg
@@ -65,6 +65,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 15;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
rfdesign.rfDesign = "LP_CC1352P7-4";
@@ -87,8 +88,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0xAA000;
+NVS1.internalFlash.regionSize = 0x8000;
+NVS1.internalFlash.regionBase = 0xA6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -178,6 +179,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "10";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/.project b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/.project
index caa1f9dfa..0fe0d8c9e 100644
--- a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/.project
+++ b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..7f2821dd8 100644
--- a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
\ No newline at end of file
diff --git a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/znp.syscfg b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/znp.syscfg
index 219224b2c..7086c8e45 100644
--- a/workspace/znp_LP_CC2652R7_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_LP_CC2652R7_tirtos7_ticlang/znp.syscfg
@@ -63,6 +63,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 13;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -83,8 +84,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0xAA000;
+NVS1.internalFlash.regionSize = 0x8000;
+NVS1.internalFlash.regionBase = 0xA6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -172,6 +173,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/.project b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/.project
index f7730d18b..a2e98d745 100644
--- a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/.project
+++ b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..694c9c52f 100644
--- a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
diff --git a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/znp.syscfg b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/znp.syscfg
index 7deb5984a..e846cbebc 100644
--- a/workspace/znp_LP_CC2652RB_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_LP_CC2652RB_tirtos7_ticlang/znp.syscfg
@@ -64,6 +64,7 @@ CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 13;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.srcClkLF = "Derived from HF XOSC";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -84,8 +85,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionBase = 0x50000;
+NVS1.internalFlash.regionSize = 0x6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -173,6 +174,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
index 7486d11b4..b8e826c2f 100644
--- a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
+++ b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
@@ -13,7 +13,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1452994539" name="default" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default">
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1452994539" name="default" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_ROOT}/bin/tiarmobjcopy ${BuildArtifactFileName} --output-target ihex ${BuildArtifactFileBaseName}.hex">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1452994539." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain.381829176" name="TI Build Tools" secondaryOutputs="" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.2117744147">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1082040289" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
diff --git a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.project b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.project
index 56441e3bd..cde23d1ba 100644
--- a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.project
+++ b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/.project
@@ -443,6 +443,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -708,6 +713,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/znp_cnf.opts b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/znp_cnf.opts
index 2a7704196..694c9c52f 100644
--- a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/znp_cnf.opts
+++ b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/znp_cnf.opts
@@ -32,3 +32,6 @@
-DMT_GP_CB_FUNC
-DMT_APP_CNF_FUNC
+
+-DIS_COORDINATOR
+-include ../../../source/preinclude.h
diff --git a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/znp.syscfg b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/znp.syscfg
index c8b870c45..4f4e30f23 100644
--- a/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/znp.syscfg
+++ b/workspace/znp_LP_EM_CC2674P10_tirtos7_ticlang/znp.syscfg
@@ -65,6 +65,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 15;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -177,6 +178,7 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
index 6b9733f49..338223c32 100644
--- a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
new file mode 120000
index 000000000..6e29a8e45
--- /dev/null
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
@@ -0,0 +1 @@
+../znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
\ No newline at end of file
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
new file mode 120000
index 000000000..dcd76f70e
--- /dev/null
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
@@ -0,0 +1 @@
+../znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
\ No newline at end of file
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
new file mode 120000
index 000000000..a53a13dd6
--- /dev/null
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
@@ -0,0 +1 @@
+../znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
\ No newline at end of file
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
new file mode 120000
index 000000000..cfa1ab404
--- /dev/null
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
@@ -0,0 +1 @@
+../znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
\ No newline at end of file
diff --git a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
index af6c62cb7..96a3cc514 100644
--- a/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
@@ -5,6 +5,10 @@
* @v2CliArgs --board "/ti/boards/CC1352P_2_LAUNCHXL" --device "CC1352P" --package "VQFN (RGZ)" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"
* @versions {"tool":"1.23.0+4000"}
*/
+scripting.excludeFromBuild("ti_devices_config.c");
+scripting.excludeFromBuild("ti_radio_config.c");
+scripting.excludeFromBuild("ti_radio_config.h");
+scripting.excludeFromBuild("ti_drivers_config.h");
/**
* Import the modules used in this configuration.
@@ -66,6 +70,7 @@ CCFG.enableBootloaderBackdoor = true;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.forceVddr = true;
CCFG.dioBootloaderBackdoor = 15;
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
rfdesign.rfDesign = "LAUNCHXL-CC1352P-2";
@@ -88,8 +93,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionBase = 0x50000;
+NVS1.internalFlash.regionSize = 0x6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -179,6 +184,8 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "20";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
index 80a923cc6..4fb89e1f5 100644
--- a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
index 65e1a4caa..829146d80 100644
--- a/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
@@ -63,6 +63,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.dioBootloaderBackdoor = 13;
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -83,8 +84,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionBase = 0x50000;
+NVS1.internalFlash.regionSize = 0x6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -172,6 +173,8 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/.project b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/.project
index b0f293784..102e9587c 100644
--- a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/zr_genericapp.syscfg
index f252080dd..7b7df4d85 100644
--- a/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_LP_CC1352P7_4_tirtos7_ticlang/zr_genericapp.syscfg
@@ -65,6 +65,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 15;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
rfdesign.rfDesign = "LP_CC1352P7-4";
@@ -87,8 +88,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0xAA000;
+NVS1.internalFlash.regionSize = 0x8000;
+NVS1.internalFlash.regionBase = 0xA6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -179,6 +180,7 @@ zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touch
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
zstack.rf.txPower = "10";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/.project b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/.project
index 8240004f7..c7b2a3ca2 100644
--- a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/zr_genericapp.syscfg
index c116cba7f..78f6595e4 100644
--- a/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_LP_CC2652R7_tirtos7_ticlang/zr_genericapp.syscfg
@@ -63,6 +63,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.dioBootloaderBackdoor = 13;
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -83,8 +84,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0xAA000;
+NVS1.internalFlash.regionSize = 0x8000;
+NVS1.internalFlash.regionBase = 0xA6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -172,6 +173,8 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
+zstack.rf.txPower = "5";
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/.project b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/.project
index ef4bc2c88..c6ac069ef 100644
--- a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
index c28058861..c3422caec 100644
--- a/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
@@ -65,6 +65,7 @@ CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 13;
CCFG.levelBootloaderBackdoor = "Active low";
CCFG.srcClkLF = "Derived from HF XOSC";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -85,8 +86,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
NVS1.$name = "CONFIG_NVSINTERNAL";
NVS1.internalFlash.$name = "ti_drivers_nvs_NVSCC26XX0";
-NVS1.internalFlash.regionSize = 0x4000;
-NVS1.internalFlash.regionBase = 0x52000;
+NVS1.internalFlash.regionBase = 0x50000;
+NVS1.internalFlash.regionSize = 0x6000;
NVS2.$name = "CONFIG_NVSEXTERNAL";
NVS2.nvsType = "External";
@@ -174,6 +175,8 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
diff --git a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
index bb3408813..15f6ef083 100644
--- a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
+++ b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.cproject
@@ -13,7 +13,7 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.955479207" name="default" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default">
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.955479207" name="default" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_ROOT}/bin/tiarmobjcopy ${BuildArtifactFileName} --output-target ihex ${BuildArtifactFileBaseName}.hex">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.955479207." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain.1354913905" name="TI Build Tools" secondaryOutputs="" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.736406772">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1452584310" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
diff --git a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.project b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.project
index d8cfe99a9..a12928303 100644
--- a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.project
+++ b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/.project
@@ -503,6 +503,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/ti154stack/common/boards/mac_user_config.h</locationURI>
</link>
+ <link>
+ <name>preinclude.h</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/preinclude.h</locationURI>
+ </link>
<link>
<name>Stack/MAC/mac_api.h</name>
<type>1</type>
@@ -768,6 +773,11 @@
<type>1</type>
<locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.h</locationURI>
</link>
+ <link>
+ <name>Stack/nwk/nwk_util.c</name>
+ <type>1</type>
+ <locationURI>COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR/source/ti/zstack/stack/nwk/nwk_util.c</locationURI>
+ </link>
<link>
<name>Stack/nwk/reflecttrack.h</name>
<type>1</type>
diff --git a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/f8wrouter.opts
index e5660451e..2bc71db01 100644
--- a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+++ b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/Stack/Config/f8wrouter.opts
@@ -9,3 +9,6 @@
-DADDRMGR_NV_SINGLES
-DBINDINGTABLE_NV_SINGLES
-DASSOCLIST_NV_SINGLES
+
+-DIS_ROUTER
+-include ../../../source/preinclude.h
diff --git a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/zr_genericapp.syscfg b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/zr_genericapp.syscfg
index 898048549..03390ba76 100644
--- a/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/zr_genericapp.syscfg
+++ b/workspace/zr_genericapp_LP_EM_CC2674P10_tirtos7_ticlang/zr_genericapp.syscfg
@@ -65,6 +65,7 @@ CCFG.enableBootloader = true;
CCFG.enableBootloaderBackdoor = true;
CCFG.dioBootloaderBackdoor = 15;
CCFG.levelBootloaderBackdoor = "Active low";
+CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
@@ -177,6 +178,8 @@ zstack.deviceTypeReadOnly = true;
zstack.touchlink.$name = "ti_zstack_touchlink_zstack_touchlink0";
zstack.pm.$name = "ti_zstack_pm_zstack_pm0";
zstack.rf.$name = "ti_zstack_rf_zstack_rf0";
+zstack.rf.txPower = "5";
+zstack.rf.primaryChannels = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
zstack.rf.radioConfig.$name = "ti_devices_radioconfig_settings_ieee_15_40";
zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
zstack.rf.coexSettings.$name = "ti_zstack_rf_zstack_coex_mod0";
--
2.39.5 (Apple Git-154)