소스 검색

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 년 전
부모
커밋
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();

Loading…
취소
저장