Skip to content

Commit

Permalink
Merge pull request #12517 from miri64/native/enh/reset-command
Browse files Browse the repository at this point in the history
native: allow for native to be resetable via SIGUSR1
  • Loading branch information
miri64 authored Dec 3, 2019
2 parents e6bdcae + d670f77 commit 2f74d9d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions boards/native/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ else
DEBUGGER ?= gdb
endif

RESET ?= $(RIOTBOARD)/$(BOARD)/dist/reset.sh
FLASHER = true
FLASHFILE ?= $(ELFFILE)

Expand Down
18 changes: 18 additions & 0 deletions boards/native/dist/reset.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/sh
#
# Copyright (C) 2019 Freie Universität Berlin
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.

case ${DEBUG_ADAPTER_ID} in
# check if ${DEBUG_ADAPTER_ID} is empty or contains a number
''|*[!0-9]*)
echo "Please provide native instance's PID using DEBUG_ADAPTER_ID" >&2
exit 1
;;
*) ;;
esac

kill -USR1 "${DEBUG_ADAPTER_ID}"
8 changes: 8 additions & 0 deletions cpu/native/startup.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "tty_uart.h"

#include "periph/init.h"
#include "periph/pm.h"

#define ENABLE_DEBUG (0)
#include "debug.h"
Expand Down Expand Up @@ -390,6 +391,11 @@ extern init_func_t __init_array_start;
extern init_func_t __init_array_end;
#endif

static void _reset_handler(void)
{
pm_reboot();
}

__attribute__((constructor)) static void startup(int argc, char **argv, char **envp)
{
_native_init_syscalls();
Expand Down Expand Up @@ -577,6 +583,8 @@ __attribute__((constructor)) static void startup(int argc, char **argv, char **e
periph_init();
board_init();

register_interrupt(SIGUSR1, _reset_handler);

puts("RIOT native hardware initialization complete.\n");
irq_enable();
kernel_init();
Expand Down

0 comments on commit 2f74d9d

Please sign in to comment.