diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile
index d8f65077..7bea01c0 100644
--- a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile
+++ b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile
@@ -147,8 +147,8 @@ DEFINES =
OPTIMIZE_FLAGS = -mcall-prologues
OPTIMIZE_FLAGS += -finline-functions-called-once
-# default is for debugging from AVR Studio
-OPTIMIZATION = -O0 $(OPTIMIZE_FLAGS)
+# default is for building from AVR Studio
+OPTIMIZATION = -Os $(OPTIMIZE_FLAGS)
DEBUGGING = -g
ifeq (${BUILD},debug)
OPTIMIZATION = -O0
diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.aps b/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.aps
index 32650b21..099b0d92 100644
--- a/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.aps
+++ b/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.aps
@@ -1 +1 @@
-bacnet29-Apr-2009 08:16:5323-Sep-2010 08:11:09241029-Apr-2009 08:16:5344, 15, 0, 623AVR GCCdefault\bacnet.elfD:\code\bacnet-stack\ports\bdk-atxx4-mstp\JTAGICE mkIIATmega644P.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000main.ctimer2.ceeprom.cinit.cinput.cled.crs485.cseeprom.cserial.cstack.cdlmstp.cbo.cbi.cai.cdevice.cwatchdog.cadc.cbacnet.cfuses.ctest.ctimer.cD:\code\bacnet-stack\demo\handler\noserv.cD:\code\bacnet-stack\demo\handler\s_iam.cD:\code\bacnet-stack\demo\handler\s_ihave.cD:\code\bacnet-stack\demo\handler\txbuf.cD:\code\bacnet-stack\demo\handler\h_dcc.cD:\code\bacnet-stack\demo\handler\h_npdu.cD:\code\bacnet-stack\demo\handler\h_rd.cD:\code\bacnet-stack\demo\handler\h_rp.cD:\code\bacnet-stack\demo\handler\h_rpm.cD:\code\bacnet-stack\demo\handler\h_whohas.cD:\code\bacnet-stack\demo\handler\h_whois.cD:\code\bacnet-stack\demo\handler\h_wp.cD:\code\bacnet-stack\src\reject.cD:\code\bacnet-stack\src\ringbuf.cD:\code\bacnet-stack\src\rp.cD:\code\bacnet-stack\src\rpm.cD:\code\bacnet-stack\src\whohas.cD:\code\bacnet-stack\src\whois.cD:\code\bacnet-stack\src\wp.cD:\code\bacnet-stack\src\abort.cD:\code\bacnet-stack\src\apdu.cD:\code\bacnet-stack\src\bacaddr.cD:\code\bacnet-stack\src\bacapp.cD:\code\bacnet-stack\src\bacdcode.cD:\code\bacnet-stack\src\bacerror.cD:\code\bacnet-stack\src\bacint.cD:\code\bacnet-stack\src\bacreal.cD:\code\bacnet-stack\src\bacstr.cD:\code\bacnet-stack\src\crc.cD:\code\bacnet-stack\src\dcc.cD:\code\bacnet-stack\src\fifo.cD:\code\bacnet-stack\src\iam.cD:\code\bacnet-stack\src\ihave.cD:\code\bacnet-stack\src\npdu.cD:\code\bacnet-stack\src\rd.cD:\code\bacnet-stack\src\memcopy.cav.ctimer.heeprom.hhardware.hiar2gcc.hinit.hinput.hled.hnvdata.hrs485.hseeprom.hserial.hwatchdog.hadc.hbacnet.hstack.htest.hdefault\bacnet.lssdefault\bacnet.mapdefaultNOatmega644p11
bacnet.elfdefault\0.\..\..\include\-Wall -gdwarf-2 -std=gnu99 -mcall-prologues -finline-functions-called-once -ffunction-sections -fdata-sections -Wstrict-prototypes -Wmissing-prototypes -Wl,--gc-sections,-static -DBACDL_MSTP -DMAX_APDU=128 -DBIG_ENDIAN=0 -DMAX_TSM_TRANSACTIONS=0 -DBACAPP_BOOLEAN -DBACAPP_REAL -DBACAPP_OBJECT_ID -DBACAPP_UNSIGNED -DBACAPP_ENUMERATED -DBACAPP_CHARACTER_STRING -DWRITE_PROPERTY -DF_CPU=18430000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -g default1C:\WinAVR-20100110\bin\avr-gcc.exeC:\WinAVR-20100110\utils\bin\make.exe00000main.c25900001rs485.c25900002bacnet.c25700003test.c257
+bacnet29-Apr-2009 08:16:5324-Sep-2010 14:31:01241029-Apr-2009 08:16:5344, 15, 0, 623AVR GCCbacnet.elfD:\code\bacnet-stack\ports\bdk-atxx4-mstp\JTAGICE mkIIATmega644P.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto00char_stringapdupkt0main.ctimer2.ceeprom.cinit.cinput.cled.crs485.cseeprom.cserial.cstack.cdlmstp.cbo.cbi.cai.cdevice.cwatchdog.cadc.cbacnet.cfuses.ctest.ctimer.cD:\code\bacnet-stack\demo\handler\noserv.cD:\code\bacnet-stack\demo\handler\s_iam.cD:\code\bacnet-stack\demo\handler\s_ihave.cD:\code\bacnet-stack\demo\handler\txbuf.cD:\code\bacnet-stack\demo\handler\h_dcc.cD:\code\bacnet-stack\demo\handler\h_npdu.cD:\code\bacnet-stack\demo\handler\h_rd.cD:\code\bacnet-stack\demo\handler\h_rp.cD:\code\bacnet-stack\demo\handler\h_rpm.cD:\code\bacnet-stack\demo\handler\h_whohas.cD:\code\bacnet-stack\demo\handler\h_whois.cD:\code\bacnet-stack\demo\handler\h_wp.cD:\code\bacnet-stack\src\reject.cD:\code\bacnet-stack\src\ringbuf.cD:\code\bacnet-stack\src\rp.cD:\code\bacnet-stack\src\rpm.cD:\code\bacnet-stack\src\whohas.cD:\code\bacnet-stack\src\whois.cD:\code\bacnet-stack\src\wp.cD:\code\bacnet-stack\src\abort.cD:\code\bacnet-stack\src\apdu.cD:\code\bacnet-stack\src\bacaddr.cD:\code\bacnet-stack\src\bacapp.cD:\code\bacnet-stack\src\bacdcode.cD:\code\bacnet-stack\src\bacerror.cD:\code\bacnet-stack\src\bacint.cD:\code\bacnet-stack\src\bacreal.cD:\code\bacnet-stack\src\bacstr.cD:\code\bacnet-stack\src\crc.cD:\code\bacnet-stack\src\dcc.cD:\code\bacnet-stack\src\fifo.cD:\code\bacnet-stack\src\iam.cD:\code\bacnet-stack\src\ihave.cD:\code\bacnet-stack\src\npdu.cD:\code\bacnet-stack\src\rd.cD:\code\bacnet-stack\src\memcopy.cav.ctimer.heeprom.hhardware.hiar2gcc.hinit.hinput.hled.hnvdata.hrs485.hseeprom.hserial.hwatchdog.hadc.hbacnet.hstack.htest.hdefault\bacnet.lssdefault\bacnet.mapMakefiledefaultYESMakefileatmega644p11
bacnet.elfdefault\1.\..\..\include\-Wall -gdwarf-2 -std=gnu99 -mcall-prologues -finline-functions-called-once -ffunction-sections -fdata-sections -Wstrict-prototypes -Wmissing-prototypes -DBACDL_MSTP -DMAX_APDU=128 -DBIG_ENDIAN=0 -DMAX_TSM_TRANSACTIONS=0 -DBACAPP_BOOLEAN -DBACAPP_REAL -DBACAPP_OBJECT_ID -DBACAPP_UNSIGNED -DBACAPP_ENUMERATED -DBACAPP_CHARACTER_STRING -DWRITE_PROPERTY -g -DF_CPU=18430000UL -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums-Wl,--gc-sections,-staticdefault1C:\WinAVR-20090313\bin\avr-gcc.exeC:\WinAVR-20090313\utils\bin\make.exe00000main.c25900001rs485.c25800002bacnet.c25800003device.c25800004D:\code\bacnet-stack\src\fifo.c25800005timer.c25800006timer2.c25800007hardware.h100008adc.c25900009Makefile1
diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/dlmstp.c b/bacnet-stack/ports/bdk-atxx4-mstp/dlmstp.c
index 42ae539c..7aec583e 100644
--- a/bacnet-stack/ports/bdk-atxx4-mstp/dlmstp.c
+++ b/bacnet-stack/ports/bdk-atxx4-mstp/dlmstp.c
@@ -1208,6 +1208,7 @@ uint16_t dlmstp_receive(
MSTP_Flag.ReceivedValidFrameNotForUs = false;
}
if (Receive_State == MSTP_RECEIVE_STATE_IDLE) {
+ /* only do master state machine while rx is idle */
while (MSTP_Master_Node_FSM()) {
/* do nothing while some states fast transition */
};
diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/init.c b/bacnet-stack/ports/bdk-atxx4-mstp/init.c
index ace93ec6..17ebe287 100644
--- a/bacnet-stack/ports/bdk-atxx4-mstp/init.c
+++ b/bacnet-stack/ports/bdk-atxx4-mstp/init.c
@@ -30,7 +30,9 @@
void init(
void)
{
- /* Initialize the Clock Prescaler for ATmega48/88/168 */
+ /* clear the MCU Status Register */
+ MCUSR = 0;
+ /* Initialize the Clock Prescaler */
/* The default CLKPSx bits are factory set to 0011 */
/* Enbable the Clock Prescaler */
CLKPR = _BV(CLKPCE);
diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/watchdog.c b/bacnet-stack/ports/bdk-atxx4-mstp/watchdog.c
index 0fde5552..cca819e4 100644
--- a/bacnet-stack/ports/bdk-atxx4-mstp/watchdog.c
+++ b/bacnet-stack/ports/bdk-atxx4-mstp/watchdog.c
@@ -99,7 +99,6 @@ void watchdog_init(
}
wdt_enable(value);
} else {
- MCUSR = 0;
wdt_disable();
}
}