From d5822ac53a0debaef03480b96fd952db75eec887 Mon Sep 17 00:00:00 2001 From: skarg Date: Fri, 24 Sep 2010 19:38:32 +0000 Subject: [PATCH] Add clear of MCU status registers at initialization. --- bacnet-stack/ports/bdk-atxx4-mstp/Makefile | 4 ++-- bacnet-stack/ports/bdk-atxx4-mstp/bacnet.aps | 2 +- bacnet-stack/ports/bdk-atxx4-mstp/dlmstp.c | 1 + bacnet-stack/ports/bdk-atxx4-mstp/init.c | 4 +++- bacnet-stack/ports/bdk-atxx4-mstp/watchdog.c | 1 - 5 files changed, 7 insertions(+), 5 deletions(-) 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.mapdefaultNOatmega644p111bacnet.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.mapMakefiledefaultYESMakefileatmega644p111bacnet.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(); } }