targets/plc_debug.c
changeset 1460 b7e610672eed
parent 1459 c9065fb5de0a
child 1479 8f41aa88aa46
--- a/targets/plc_debug.c	Fri Apr 03 17:08:13 2015 +0200
+++ b/targets/plc_debug.c	Mon Jun 15 10:19:52 2015 +0200
@@ -111,6 +111,7 @@
 }
 
 extern int CheckRetainBuffer(void);
+extern void InitRetain(void);
 
 void __init_debug(void)
 {
@@ -118,13 +119,19 @@
     buffer_cursor = debug_buffer;
     retain_offset = 0;
     buffer_state = BUFFER_FREE;
+    InitRetain();
     /* Iterate over all variables to fill debug buffer */
-    if(CheckRetainBuffer())
+    if(CheckRetainBuffer()){
     	__for_each_variable_do(RemindIterator);
+    }else{
+    	char mstr[] = "RETAIN memory invalid - defaults used";
+        LogMessage(LOG_WARNING, mstr, sizeof(mstr));
+    }
     retain_offset = 0;
 }
 
 extern void InitiateDebugTransfer(void);
+extern void CleanupRetain(void);
 
 extern unsigned long __tick;
 
@@ -132,6 +139,7 @@
 {
     buffer_cursor = debug_buffer;
     InitiateDebugTransfer();
+    CleanupRetain();
 }
 
 void __retrieve_debug(void)