blynk & neopixelring & w7500
Fork of WIZwiki-7500_Blynk by
Embed:
(wiki syntax)
Show/hide line numbers
BlynkDebug.cpp
Go to the documentation of this file.
00001 /** 00002 * @file BlynkDebug.cpp 00003 * @author Volodymyr Shymanskyy 00004 * @license This project is released under the MIT License (MIT) 00005 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy 00006 * @date Jan 2015 00007 * @brief Debug utilities for Arduino 00008 */ 00009 #include <Blynk/BlynkDebug.h> 00010 00011 #if defined(BLYNK_USE_AVR_WDT) 00012 00013 #include <Arduino.h> 00014 #include <avr/wdt.h> 00015 00016 size_t BlynkFreeRam() 00017 { 00018 extern int __heap_start, *__brkval; 00019 int v; 00020 return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 00021 } 00022 00023 void wdt_init(void) __attribute__((naked)) __attribute__((section(".init3"))); 00024 00025 void wdt_init(void) 00026 { 00027 MCUSR = 0; 00028 wdt_disable(); 00029 00030 return; 00031 } 00032 00033 void BlynkReset() 00034 { 00035 wdt_enable(WDTO_15MS); 00036 delay(50); 00037 void(*resetFunc)(void) = 0; 00038 resetFunc(); 00039 for(;;) {} // To make compiler happy 00040 } 00041 00042 #elif defined(__AVR__) 00043 00044 #include <Arduino.h> 00045 00046 size_t BlynkFreeRam() 00047 { 00048 extern int __heap_start, *__brkval; 00049 int v; 00050 return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 00051 } 00052 00053 void BlynkReset() 00054 { 00055 void(*resetFunc)(void) = 0; 00056 resetFunc(); 00057 for(;;) {} 00058 } 00059 00060 #elif defined(ESP8266) 00061 00062 #include <Arduino.h> 00063 00064 size_t BlynkFreeRam() 00065 { 00066 return ESP.getFreeHeap(); 00067 } 00068 00069 void BlynkReset() 00070 { 00071 ESP.restart(); 00072 for(;;) {} 00073 } 00074 00075 #elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_SAM) 00076 00077 #include <Arduino.h> 00078 00079 size_t BlynkFreeRam() 00080 { 00081 return 0; 00082 } 00083 00084 void BlynkReset() 00085 { 00086 NVIC_SystemReset(); 00087 for(;;) {} 00088 } 00089 00090 #elif defined (PARTICLE) || defined(SPARK) 00091 00092 #include "application.h" 00093 00094 size_t BlynkFreeRam() 00095 { 00096 return 0; 00097 } 00098 00099 void BlynkReset() 00100 { 00101 System.reset(); 00102 for(;;) {} // To make compiler happy 00103 } 00104 00105 #elif defined(__STM32F1__) || defined(__STM32F3__) 00106 00107 #include <Arduino.h> 00108 #include <libmaple/nvic.h> 00109 00110 size_t BlynkFreeRam() 00111 { 00112 return 0; 00113 } 00114 00115 void BlynkReset() 00116 { 00117 nvic_sys_reset(); 00118 for(;;) {} 00119 } 00120 00121 // TODO: 00122 //#elif defined (TEENSYDUINO) 00123 //#elif defined (__STM32F4__) 00124 //#elif defined (ARDUINO_ARCH_ARC32) 00125 //#elif defined (__RFduino__) || defined (__Simblee__) 00126 00127 #elif defined(MBED_LIBRARY_VERSION) 00128 00129 #include "mbed.h" 00130 00131 size_t BlynkFreeRam() 00132 { 00133 return 0; 00134 } 00135 00136 void BlynkReset() 00137 { 00138 for(;;) {} // To make compiler happy 00139 } 00140 00141 #else 00142 00143 #if defined(BLYNK_DEBUG_ALL) 00144 #warning "Need to implement board-specific utilities" 00145 #endif 00146 00147 size_t BlynkFreeRam() 00148 { 00149 return 0; 00150 } 00151 00152 void BlynkReset() 00153 { 00154 for(;;) {} // To make compiler happy 00155 } 00156 00157 #endif 00158 00159 void BlynkFatal() 00160 { 00161 //delay(10000L); 00162 BlynkReset(); 00163 }
Generated on Thu Jul 14 2022 00:21:50 by 1.7.2