From f2430462b6adc5ccabb85614b1d680ad85fba120 Mon Sep 17 00:00:00 2001 From: Travis Geiselbrecht Date: Mon, 4 Jan 2016 17:40:30 -0800 Subject: [PATCH] [platform][stm32f7xx] add reboot command and script for dartuino --- platform/stm32f7xx/power.c | 65 +++++++++++++++++++++++++++++++++++++ platform/stm32f7xx/rules.mk | 1 + scripts/do-dartuinoP0-test | 7 ++++ 3 files changed, 73 insertions(+) create mode 100644 platform/stm32f7xx/power.c create mode 100755 scripts/do-dartuinoP0-test diff --git a/platform/stm32f7xx/power.c b/platform/stm32f7xx/power.c new file mode 100644 index 00000000..7ff2618a --- /dev/null +++ b/platform/stm32f7xx/power.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2016 Travis Geiselbrecht + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +void platform_halt(platform_halt_action suggested_action, + platform_halt_reason reason) +{ +#if ENABLE_PANIC_SHELL + if (reason == HALT_REASON_SW_PANIC) { + dprintf(ALWAYS, "CRASH: starting debug shell... (reason = %d)\n", reason); + arch_disable_ints(); + panic_shell_start(); + } +#endif // ENABLE_PANIC_SHELL + + switch (suggested_action) { + default: + case HALT_ACTION_SHUTDOWN: + case HALT_ACTION_HALT: + dprintf(ALWAYS, "HALT: spinning forever... (reason = %d)\n", reason); + arch_disable_ints(); + for(;;) + arch_idle(); + break; + case HALT_ACTION_REBOOT: + dprintf(INFO, "REBOOT\n"); + arch_disable_ints(); + for (;;) { + NVIC_SystemReset(); + } + break; + } + + dprintf(ALWAYS, "HALT: spinning forever... (reason = %d)\n", reason); + arch_disable_ints(); + for(;;); +} + diff --git a/platform/stm32f7xx/rules.mk b/platform/stm32f7xx/rules.mk index dce358aa..345a01f3 100644 --- a/platform/stm32f7xx/rules.mk +++ b/platform/stm32f7xx/rules.mk @@ -42,6 +42,7 @@ MODULE_SRCS += \ $(LOCAL_DIR)/flash.c \ $(LOCAL_DIR)/gpio.c \ $(LOCAL_DIR)/init.c \ + $(LOCAL_DIR)/power.c \ $(LOCAL_DIR)/timer.c \ $(LOCAL_DIR)/uart.c \ $(LOCAL_DIR)/usbc.c \ diff --git a/scripts/do-dartuinoP0-test b/scripts/do-dartuinoP0-test new file mode 100755 index 00000000..e220d9f7 --- /dev/null +++ b/scripts/do-dartuinoP0-test @@ -0,0 +1,7 @@ +#!/bin/sh + +export PROJECT=dartuinoP0-test + +make -j8 && +openocd -f interface/stlink-v2.cfg -f board/stm32756g_eval.cfg \ + -c "program build-$PROJECT/lk.bin reset exit 0x08000000"