Просмотр исходного кода

enable watchdog as early as possible.

sometimes ble init seems to fail somehow.
this caused hangs at different points in time.
with this change the device at least resets relatively quickly.
Thomas Buck 1 год назад
Родитель
Сommit
04450ec775
1 измененных файлов: 11 добавлений и 1 удалений
  1. 11
    1
      src/main.c

+ 11
- 1
src/main.c Просмотреть файл

@@ -47,6 +47,8 @@ void main_loop_hw(void) {
47 47
 }
48 48
 
49 49
 int main(void) {
50
+    watchdog_enable(WATCHDOG_PERIOD_MS, 1);
51
+
50 52
     // required for debug console
51 53
     cnsl_init();
52 54
     serial_init();
@@ -57,6 +59,10 @@ int main(void) {
57 59
 
58 60
     debug("lcd_init");
59 61
     lcd_init();
62
+
63
+    watchdog_update();
64
+
65
+    debug("draw_splash");
60 66
     draw_splash();
61 67
     lcd_set_backlight(mem_data()->backlight);
62 68
 
@@ -75,8 +81,12 @@ int main(void) {
75 81
     debug("cyw43_arch_init");
76 82
     if (cyw43_arch_init()) {
77 83
         debug("cyw43_arch_init failed");
84
+        lcd_set_backlight(0x00FF);
85
+        while (1) {}
78 86
     }
79 87
 
88
+    watchdog_update();
89
+
80 90
     debug("heartbeat_init");
81 91
     heartbeat_init();
82 92
 
@@ -93,7 +103,7 @@ int main(void) {
93 103
     msc_set_medium_available(true);
94 104
 #endif // AUTO_MOUNT_MASS_STORAGE
95 105
 
96
-    watchdog_enable(WATCHDOG_PERIOD_MS, 1);
106
+    watchdog_update();
97 107
 
98 108
     debug("init done");
99 109
     battery_run();

Загрузка…
Отмена
Сохранить