aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGareth McMullin2014-07-30 13:56:12 +1200
committerGareth McMullin2014-07-30 13:56:12 +1200
commitcb1b1670d1eaca2f701660c3e5181735ddda0853 (patch)
tree42e92beb49cd86a6436f84347a73ee472cbf491a
parent72ae78a185d08d9979748dcef3d0cd29deddde9b (diff)
parent63bce97cbd521fd464c2e11bfbb034edf602f68c (diff)
Merge pull request #45 from richardeoin/fatal-fix
Fixed potential Hardfault in platform_init
-rw-r--r--src/platforms/f4discovery/platform.c5
-rw-r--r--src/platforms/native/platform.c5
-rw-r--r--src/platforms/stlink/platform.c5
-rw-r--r--src/platforms/swlink/platform.c5
4 files changed, 20 insertions, 0 deletions
diff --git a/src/platforms/f4discovery/platform.c b/src/platforms/f4discovery/platform.c
index 5b073e9..efe8050 100644
--- a/src/platforms/f4discovery/platform.c
+++ b/src/platforms/f4discovery/platform.c
@@ -92,6 +92,11 @@ int platform_init(void)
cdcacm_init();
+ // Set recovery point
+ if (setjmp(fatal_error_jmpbuf)) {
+ return 0; // Do nothing on failure
+ }
+
jtag_scan(NULL);
return 0;
diff --git a/src/platforms/native/platform.c b/src/platforms/native/platform.c
index cb9e69e..81a54d8 100644
--- a/src/platforms/native/platform.c
+++ b/src/platforms/native/platform.c
@@ -140,6 +140,11 @@ int platform_init(void)
cdcacm_init();
usbuart_init();
+ // Set recovery point
+ if (setjmp(fatal_error_jmpbuf)) {
+ return 0; // Do nothing on failure
+ }
+
jtag_scan(NULL);
return 0;
diff --git a/src/platforms/stlink/platform.c b/src/platforms/stlink/platform.c
index 1369c37..cf2d954 100644
--- a/src/platforms/stlink/platform.c
+++ b/src/platforms/stlink/platform.c
@@ -121,6 +121,11 @@ int platform_init(void)
cdcacm_init();
+ // Set recovery point
+ if (setjmp(fatal_error_jmpbuf)) {
+ return 0; // Do nothing on failure
+ }
+
jtag_scan(NULL);
return 0;
diff --git a/src/platforms/swlink/platform.c b/src/platforms/swlink/platform.c
index 0f5695d..74f8691 100644
--- a/src/platforms/swlink/platform.c
+++ b/src/platforms/swlink/platform.c
@@ -99,6 +99,11 @@ int platform_init(void)
cdcacm_init();
+ // Set recovery point
+ if (setjmp(fatal_error_jmpbuf)) {
+ return 0; // Do nothing on failure
+ }
+
jtag_scan(NULL);
return 0;