CC2538 firmware update. (#158)

Increased buffering capacity.
Reised maximum connection limit.
This commit is contained in:
reverieline 2020-03-29 18:01:39 +03:00 committed by GitHub
parent 80a5d8a64d
commit 5e94a391e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 65 deletions

View File

@ -60,12 +60,12 @@ This repository contains various Z-Stack coordinator firmwares.
<tr> <tr>
<td>CC2538 + CC2592</td> <td>CC2538 + CC2592</td>
<td>3.0</td> <td>3.0</td>
<td>80</td> <td>100</td>
<td>40/400</td> <td>200/400</td>
<td> <td>
- <a href="https://github.com/Koenkk/zigbee2mqtt/issues/1568">Discussion #1568</a> - <a href="https://github.com/Koenkk/zigbee2mqtt/issues/1568">Discussion #1568</a>
<br/> <br/>
- Max 40 Zigbee 3.0 devices - Max 200 Zigbee 3.0 devices
</td> </td>
</tr> </tr>
<tr> <tr>

View File

@ -1,8 +1,8 @@
diff --git a/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h b/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h diff --git a/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h b/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h
index 38ac3d9..367699d 100644 index 38ac3d9..44c0d5b 100644
--- a/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h --- a/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h
+++ b/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h +++ b/Components/bsp/srf06eb_cc2538/drivers/source/bsp.h
@@ -81,16 +81,22 @@ extern "C" @@ -81,15 +81,21 @@ extern "C"
#define BSP_3V3_EN GPIO_PIN_4 //!< PB4 #define BSP_3V3_EN GPIO_PIN_4 //!< PB4
// Board LED defines // Board LED defines
@ -15,7 +15,6 @@ index 38ac3d9..367699d 100644
- BSP_LED_2 | \ - BSP_LED_2 | \
- BSP_LED_3 | \ - BSP_LED_3 | \
- BSP_LED_4) //!< Bitmask of all LEDs - BSP_LED_4) //!< Bitmask of all LEDs
-
+#ifdef MODKAMRU_V3 // Redefine board LEDs +#ifdef MODKAMRU_V3 // Redefine board LEDs
+ #define BSP_LED_BASE GPIO_B_BASE + #define BSP_LED_BASE GPIO_B_BASE
+ #define BSP_LED_1 GPIO_PIN_1 + #define BSP_LED_1 GPIO_PIN_1
@ -31,24 +30,22 @@ index 38ac3d9..367699d 100644
+ #define BSP_LED_4 GPIO_PIN_3 //!< PC3 + #define BSP_LED_4 GPIO_PIN_3 //!< PC3
+ #define BSP_LED_ALL (BSP_LED_1 | BSP_LED_2 | BSP_LED_3 | BSP_LED_4) //!< Bitmask of all LEDs + #define BSP_LED_ALL (BSP_LED_1 | BSP_LED_2 | BSP_LED_3 | BSP_LED_4) //!< Bitmask of all LEDs
+#endif +#endif
+
// Board key defines // Board key defines
#define BSP_KEY_DIR_BASE GPIO_C_BASE //!< Base for left/right/up/down #define BSP_KEY_DIR_BASE GPIO_C_BASE //!< Base for left/right/up/down
#define BSP_KEY_SEL_BASE GPIO_A_BASE //!< Base for Select
diff --git a/Components/hal/include/hal_led.h b/Components/hal/include/hal_led.h diff --git a/Components/hal/include/hal_led.h b/Components/hal/include/hal_led.h
index bb327f1..f8a88b2 100644 index bb327f1..846dea2 100644
--- a/Components/hal/include/hal_led.h --- a/Components/hal/include/hal_led.h
+++ b/Components/hal/include/hal_led.h +++ b/Components/hal/include/hal_led.h
@@ -86,6 +86,19 @@ extern "C" @@ -87,6 +87,19 @@ extern "C"
/*********************************************************************
* GLOBAL VARIABLES * GLOBAL VARIABLES
*/ */
+
+#ifdef MODKAMRU_V3 //LED control helpers +#ifdef MODKAMRU_V3 //LED control helpers
+ /* Dynamically enable/disable LEDs */ + /* Dynamically enable/disable LEDs */
+ extern bool gbModkamUseLeds; + extern bool gbModkamUseLeds;
+ extern void modkamUseLeds(bool); + extern void modkamUseLeds(bool);
+ +
+ /* LED control macros */ + /* LED control macros */
+#define MODKAM_LED_ON(leds) {if(gbModkamUseLeds)HalLedSet(leds,HAL_LED_MODE_ON);} +#define MODKAM_LED_ON(leds) {if(gbModkamUseLeds)HalLedSet(leds,HAL_LED_MODE_ON);}
+#define MODKAM_LED_OFF(leds) {if(gbModkamUseLeds)HalLedSet(leds,HAL_LED_MODE_OFF);} +#define MODKAM_LED_OFF(leds) {if(gbModkamUseLeds)HalLedSet(leds,HAL_LED_MODE_OFF);}
@ -56,9 +53,10 @@ index bb327f1..f8a88b2 100644
+#define MODKAM_LED_BLINK_LONG(leds) MODKAM_LED_BLINK(leds,1,90,1000) +#define MODKAM_LED_BLINK_LONG(leds) MODKAM_LED_BLINK(leds,1,90,1000)
+#define MODKAM_LED_BLINK_SHORT(leds) MODKAM_LED_BLINK(leds,1,50,100) +#define MODKAM_LED_BLINK_SHORT(leds) MODKAM_LED_BLINK(leds,1,50,100)
+#endif +#endif
+
/* /*
* Initialize LED Service. * Initialize LED Service.
*/
diff --git a/Components/hal/target/CC2538ZNP/hal_board_cfg.h b/Components/hal/target/CC2538ZNP/hal_board_cfg.h diff --git a/Components/hal/target/CC2538ZNP/hal_board_cfg.h b/Components/hal/target/CC2538ZNP/hal_board_cfg.h
index 0bc45b5..9f28629 100644 index 0bc45b5..9f28629 100644
--- a/Components/hal/target/CC2538ZNP/hal_board_cfg.h --- a/Components/hal/target/CC2538ZNP/hal_board_cfg.h
@ -203,7 +201,7 @@ index 1a6e636..cf560e9 100644
* @fn HalLedInit * @fn HalLedInit
* *
diff --git a/Components/hal/target/CC2538ZNP/hal_uart_isr.c b/Components/hal/target/CC2538ZNP/hal_uart_isr.c diff --git a/Components/hal/target/CC2538ZNP/hal_uart_isr.c b/Components/hal/target/CC2538ZNP/hal_uart_isr.c
index a6ce62b..0e34aec 100644 index a6ce62b..8d500af 100644
--- a/Components/hal/target/CC2538ZNP/hal_uart_isr.c --- a/Components/hal/target/CC2538ZNP/hal_uart_isr.c
+++ b/Components/hal/target/CC2538ZNP/hal_uart_isr.c +++ b/Components/hal/target/CC2538ZNP/hal_uart_isr.c
@@ -160,10 +160,17 @@ uint8 HalUARTOpenIsr(uint8 port, halUARTCfg_t *config) @@ -160,10 +160,17 @@ uint8 HalUARTOpenIsr(uint8 port, halUARTCfg_t *config)
@ -224,21 +222,6 @@ index a6ce62b..0e34aec 100644
} }
IntEnable(HAL_UART_INT_CTRL); IntEnable(HAL_UART_INT_CTRL);
@@ -364,11 +371,14 @@ uint16 HalUARTWriteIsr(uint8 port, uint8 *pBuffer, uint16 length)
cnt = idx - cnt;
}
+#ifdef MODKAMRU_V3
+#else
/* Accept "all-or-none" on write request. */
if (cnt < length)
{
return 0;
}
+#endif
txMT = false;
idx = uartRecord.tx.bufferTail;
diff --git a/Components/mt/MT_SYS.c b/Components/mt/MT_SYS.c diff --git a/Components/mt/MT_SYS.c b/Components/mt/MT_SYS.c
index aa57766..9b3cb3d 100644 index aa57766..9b3cb3d 100644
--- a/Components/mt/MT_SYS.c --- a/Components/mt/MT_SYS.c
@ -271,22 +254,22 @@ index aa57766..9b3cb3d 100644
// Plug the SBL revision indication // Plug the SBL revision indication
UINT32_TO_BUF_LITTLE_ENDIAN(pBuf,sblRev); UINT32_TO_BUF_LITTLE_ENDIAN(pBuf,sblRev);
diff --git a/Components/mt/MT_UTIL.c b/Components/mt/MT_UTIL.c diff --git a/Components/mt/MT_UTIL.c b/Components/mt/MT_UTIL.c
index b4a24d8..68d7ceb 100644 index b4a24d8..d9e461d 100644
--- a/Components/mt/MT_UTIL.c --- a/Components/mt/MT_UTIL.c
+++ b/Components/mt/MT_UTIL.c +++ b/Components/mt/MT_UTIL.c
@@ -921,6 +921,12 @@ static void MT_UtilLedControl(uint8 *pBuf) @@ -922,6 +922,12 @@ static void MT_UtilLedControl(uint8 *pBuf)
/* LED and Mode */
iLed = *pBuf++; iLed = *pBuf++;
iMode = *pBuf; iMode = *pBuf;
+
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+ if(iMode==0) + if(iMode==0)
+ modkamUseLeds(false); + modkamUseLeds(false);
+ else modkamUseLeds(true); + else modkamUseLeds(true);
+#endif +#endif
+
if ( iLed == 1 ) if ( iLed == 1 )
Led = HAL_LED_1; Led = HAL_LED_1;
else if ( iLed == 2 )
diff --git a/Components/mt/MT_VERSION.c b/Components/mt/MT_VERSION.c diff --git a/Components/mt/MT_VERSION.c b/Components/mt/MT_VERSION.c
index f374554..f2e3de9 100644 index f374554..f2e3de9 100644
--- a/Components/mt/MT_VERSION.c --- a/Components/mt/MT_VERSION.c
@ -302,11 +285,11 @@ index f374554..f2e3de9 100644
2, /* Software maintenance release number */ 2, /* Software maintenance release number */
diff --git a/Components/mt/revision_info.h b/Components/mt/revision_info.h diff --git a/Components/mt/revision_info.h b/Components/mt/revision_info.h
new file mode 100644 new file mode 100644
index 0000000..636ccc8 index 0000000..4e4e676
--- /dev/null --- /dev/null
+++ b/Components/mt/revision_info.h +++ b/Components/mt/revision_info.h
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+#define CODE_REVISION_NUMBER 20200211 +#define CODE_REVISION_NUMBER 20200327
\ No newline at end of file \ No newline at end of file
diff --git a/Components/osal/mcu/cc2538/osal_nv.c b/Components/osal/mcu/cc2538/osal_nv.c diff --git a/Components/osal/mcu/cc2538/osal_nv.c b/Components/osal/mcu/cc2538/osal_nv.c
index 9275e64..7e2fee5 100644 index 9275e64..7e2fee5 100644
@ -375,7 +358,7 @@ index 1b4f72c..7695d9f 100644
} }
(void)extAddr; //dummy (void)extAddr; //dummy
diff --git a/Components/stack/nwk/nwk_globals.c b/Components/stack/nwk/nwk_globals.c diff --git a/Components/stack/nwk/nwk_globals.c b/Components/stack/nwk/nwk_globals.c
index eb436ae..8b43ae5 100644 index eb436ae..7d2281c 100644
--- a/Components/stack/nwk/nwk_globals.c --- a/Components/stack/nwk/nwk_globals.c
+++ b/Components/stack/nwk/nwk_globals.c +++ b/Components/stack/nwk/nwk_globals.c
@@ -71,10 +71,17 @@ @@ -71,10 +71,17 @@
@ -383,9 +366,9 @@ index eb436ae..8b43ae5 100644
*/ */
// Maximums for the data buffer queue // Maximums for the data buffer queue
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+#define NWK_MAX_DATABUFS_WAITING 80 // Waiting to be sent to MAC +#define NWK_MAX_DATABUFS_WAITING 180 // Waiting to be sent to MAC
+#define NWK_MAX_DATABUFS_SCHEDULED 50 // Timed messages to be sent +#define NWK_MAX_DATABUFS_SCHEDULED 150 // Timed messages to be sent
+#define NWK_MAX_DATABUFS_CONFIRMED 50 // Held after MAC confirms +#define NWK_MAX_DATABUFS_CONFIRMED 150 // Held after MAC confirms
+#define NWK_MAX_DATABUFS_TOTAL 255 // Total number of buffers +#define NWK_MAX_DATABUFS_TOTAL 255 // Total number of buffers
+#else +#else
#define NWK_MAX_DATABUFS_WAITING 8 // Waiting to be sent to MAC #define NWK_MAX_DATABUFS_WAITING 8 // Waiting to be sent to MAC
@ -413,7 +396,7 @@ index d170283..e251f15 100644
//========== TouchLink NWK configuration =============== //========== TouchLink NWK configuration ===============
// Values used by Router when starts a network as initiator // Values used by Router when starts a network as initiator
diff --git a/Components/stack/zdo/ZDObject.c b/Components/stack/zdo/ZDObject.c diff --git a/Components/stack/zdo/ZDObject.c b/Components/stack/zdo/ZDObject.c
index dcb6efa..29c8adc 100644 index dcb6efa..4bbb646 100644
--- a/Components/stack/zdo/ZDObject.c --- a/Components/stack/zdo/ZDObject.c
+++ b/Components/stack/zdo/ZDObject.c +++ b/Components/stack/zdo/ZDObject.c
@@ -76,6 +76,10 @@ @@ -76,6 +76,10 @@
@ -431,7 +414,7 @@ index dcb6efa..29c8adc 100644
#endif #endif
duration = inMsg->asdu[ZDP_MGMT_PERMIT_JOIN_REQ_DURATION]; duration = inMsg->asdu[ZDP_MGMT_PERMIT_JOIN_REQ_DURATION];
+ +
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+ if(duration==0) + if(duration==0)
+ MODKAM_LED_OFF(HAL_LED_3) + MODKAM_LED_OFF(HAL_LED_3)
@ -501,7 +484,7 @@ index 9d2c1bf..328cbbb 100644
/* The maximum number of groups in the groups table */ /* The maximum number of groups in the groups table */
-DAPS_MAX_GROUPS=16 -DAPS_MAX_GROUPS=16
diff --git a/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h b/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h diff --git a/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h b/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h
index 02bce67..3271563 100644 index 02bce67..11ebfb6 100644
--- a/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h --- a/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h
+++ b/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h +++ b/Projects/zstack/ZMain/TI2538ZNP/OnBoard.h
@@ -120,10 +120,17 @@ extern uint8 aExtendedAddress[8]; @@ -120,10 +120,17 @@ extern uint8 aExtendedAddress[8];
@ -513,10 +496,10 @@ index 02bce67..3271563 100644
-#define HAL_UART_TX_BUF_SIZE 120 -#define HAL_UART_TX_BUF_SIZE 120
-#define HAL_UART_IDLE_TIMEOUT 5 -#define HAL_UART_IDLE_TIMEOUT 5
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+ #define HAL_UART_FLOW_THRESHOLD 10 + #define HAL_UART_FLOW_THRESHOLD 5
+ #define HAL_UART_RX_BUF_SIZE 340 + #define HAL_UART_RX_BUF_SIZE 1024
+ #define HAL_UART_TX_BUF_SIZE 240 + #define HAL_UART_TX_BUF_SIZE 1024
+ #define HAL_UART_IDLE_TIMEOUT 10 + #define HAL_UART_IDLE_TIMEOUT 5
+#else +#else
+ #define HAL_UART_FLOW_THRESHOLD 5 + #define HAL_UART_FLOW_THRESHOLD 5
+ #define HAL_UART_RX_BUF_SIZE 170 + #define HAL_UART_RX_BUF_SIZE 170
@ -527,7 +510,7 @@ index 02bce67..3271563 100644
/* Restart system from absolute beginning /* Restart system from absolute beginning
* Disables interrupts, forces WatchDog reset * Disables interrupts, forces WatchDog reset
diff --git a/Projects/zstack/ZMain/TI2538ZNP/ZMain.c b/Projects/zstack/ZMain/TI2538ZNP/ZMain.c diff --git a/Projects/zstack/ZMain/TI2538ZNP/ZMain.c b/Projects/zstack/ZMain/TI2538ZNP/ZMain.c
index 5febd92..0d3a44f 100644 index 5febd92..b2d54d3 100644
--- a/Projects/zstack/ZMain/TI2538ZNP/ZMain.c --- a/Projects/zstack/ZMain/TI2538ZNP/ZMain.c
+++ b/Projects/zstack/ZMain/TI2538ZNP/ZMain.c +++ b/Projects/zstack/ZMain/TI2538ZNP/ZMain.c
@@ -48,6 +48,10 @@ @@ -48,6 +48,10 @@
@ -541,25 +524,25 @@ index 5febd92..0d3a44f 100644
#ifndef NONWK #ifndef NONWK
#include "AF.h" #include "AF.h"
#endif #endif
@@ -160,6 +164,13 @@ int main( void ) @@ -161,6 +165,13 @@ int main( void )
/* If WDT is used, this is a good place to enable it. */
WatchDogEnable( WDTIMX ); WatchDogEnable( WDTIMX );
#endif #endif
+
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+ // Test all LEDs + // Test all LEDs
+ MODKAM_LED_BLINK_LONG(HAL_LED_ALL); + MODKAM_LED_BLINK_LONG(HAL_LED_ALL);
+ // Power LED on + // Power LED on
+ MODKAM_LED_ON(HAL_LED_1); + MODKAM_LED_ON(HAL_LED_1);
+#endif +#endif
+
osal_start_system(); /* No Return from here */ osal_start_system(); /* No Return from here */
return 0; /* Shouldn't get here. */
diff --git a/Projects/zstack/ZNP/Source/znp.cfg b/Projects/zstack/ZNP/Source/znp.cfg diff --git a/Projects/zstack/ZNP/Source/znp.cfg b/Projects/zstack/ZNP/Source/znp.cfg
index 2b8d56d..b7fc48a 100644 index 2b8d56d..36b3a2c 100644
--- a/Projects/zstack/ZNP/Source/znp.cfg --- a/Projects/zstack/ZNP/Source/znp.cfg
+++ b/Projects/zstack/ZNP/Source/znp.cfg +++ b/Projects/zstack/ZNP/Source/znp.cfg
@@ -107,3 +107,38 @@ @@ -107,3 +107,39 @@
-DMT_APP_FUNC -DMT_APP_FUNC
-DMT_APP_CNF_FUNC -DMT_APP_CNF_FUNC
@ -580,7 +563,8 @@ index 2b8d56d..b7fc48a 100644
+ +
+/* Large netrowk optimizations (MTO, Source Routing) */ +/* Large netrowk optimizations (MTO, Source Routing) */
+-DINT_HEAP_LEN=12288 +-DINT_HEAP_LEN=12288
+-DNWK_MAX_DEVICE_LIST=80 +-DZDSECMGR_TC_DEVICE_MAX=200
+-DNWK_MAX_DEVICE_LIST=100
+-DCONCENTRATOR_ENABLE=TRUE +-DCONCENTRATOR_ENABLE=TRUE
+-DCONCENTRATOR_DISCOVERY_TIME=120 +-DCONCENTRATOR_DISCOVERY_TIME=120
+-DMAX_RTG_SRC_ENTRIES=400 +-DMAX_RTG_SRC_ENTRIES=400
@ -599,7 +583,7 @@ index 2b8d56d..b7fc48a 100644
+//-DZDNWKMGR_MIN_TRANSMISSIONS=0 +//-DZDNWKMGR_MIN_TRANSMISSIONS=0
+-DNWK_LINK_STATUS_PERIOD=60 +-DNWK_LINK_STATUS_PERIOD=60
diff --git a/Projects/zstack/ZNP/Source/znp_app.c b/Projects/zstack/ZNP/Source/znp_app.c diff --git a/Projects/zstack/ZNP/Source/znp_app.c b/Projects/zstack/ZNP/Source/znp_app.c
index 31b115e..f7ada93 100644 index 31b115e..ad68b55 100644
--- a/Projects/zstack/ZNP/Source/znp_app.c --- a/Projects/zstack/ZNP/Source/znp_app.c
+++ b/Projects/zstack/ZNP/Source/znp_app.c +++ b/Projects/zstack/ZNP/Source/znp_app.c
@@ -67,6 +67,10 @@ @@ -67,6 +67,10 @@
@ -620,7 +604,7 @@ index 31b115e..f7ada93 100644
+#ifdef MODKAMRU_V3 +#ifdef MODKAMRU_V3
+ MODKAM_LED_BLINK_SHORT(HAL_LED_4); + MODKAM_LED_BLINK_SHORT(HAL_LED_4);
+#endif +#endif
+ +
osal_event_hdr_t *pMsg; osal_event_hdr_t *pMsg;
#if !defined CC2531ZNP #if !defined CC2531ZNP
uint8 *pBuf; uint8 *pBuf;
@ -642,7 +626,7 @@ index 31b115e..f7ada93 100644
+ if( + if(
+ (event & HAL_UART_RX_FULL) || + (event & HAL_UART_RX_FULL) ||
+ (event & HAL_UART_RX_ABOUT_FULL) || + (event & HAL_UART_RX_ABOUT_FULL) ||
+ (event & HAL_UART_RX_TIMEOUT) + (event & HAL_UART_RX_TIMEOUT)
+ ){ + ){
+ MT_UartProcessZToolData(port, znpTaskId); + MT_UartProcessZToolData(port, znpTaskId);
+ }else if(event & HAL_UART_TX_EMPTY){ + }else if(event & HAL_UART_TX_EMPTY){
@ -662,22 +646,20 @@ index 31b115e..f7ada93 100644
/************************************************************************************************** /**************************************************************************************************
diff --git a/note.txt b/note.txt diff --git a/note.txt b/note.txt
new file mode 100644 new file mode 100644
index 0000000..91122c7 index 0000000..c6c23c4
--- /dev/null --- /dev/null
+++ b/note.txt +++ b/note.txt
@@ -0,0 +1,15 @@ @@ -0,0 +1,13 @@
+Preprocessor: +Preprocessor:
+ USB: + USB:
+ - HAL_UART_USB + - HAL_UART_USB
+ - xHAL_UART=TRUE + - xHAL_UART=TRUE
+ - xZNP_ALT + - xZNP_ALT
+ UART FC: + UART FC:
+ - xHAL_UART_USB + - xHAL_UART_USB
+ - HAL_UART=TRUE + - HAL_UART=TRUE
+ - xZNP_ALT + - xZNP_ALT
+ UART no FC: + UART no FC:
+ - xHAL_UART_USB + - xHAL_UART_USB
+ - HAL_UART=TRUE + - HAL_UART=TRUE
+ - ZNP_ALT + - ZNP_ALT
+
+