diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-09-03 22:02:48 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-09-03 23:16:38 -0400 |
commit | 7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e (patch) | |
tree | 95a1984058658800446ace751b6d0adeee35a415 /src/basecmd.c | |
parent | 7b7f57e01c87efc74ed0c632b14c1fc7897c5a6e (diff) | |
download | kutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.tar.gz kutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.tar.xz kutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.zip |
pru: Support config_reset command to manually reset mcu
Add support for resetting the MCU via a software only mechanism. This
is useful on the PRU.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/basecmd.c')
-rw-r--r-- | src/basecmd.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/basecmd.c b/src/basecmd.c index 831b12e4..b5ff738a 100644 --- a/src/basecmd.c +++ b/src/basecmd.c @@ -215,6 +215,25 @@ command_finalize_config(uint32_t *args) } DECL_COMMAND(command_finalize_config, "finalize_config crc=%u"); +// Attempt a full manual reset of the config +void +config_reset(uint32_t *args) +{ + if (! sched_is_shutdown()) + shutdown("config_reset only available when shutdown"); + irq_disable(); + config_crc = 0; + oid_count = 0; + oids = NULL; + move_free_list = NULL; + move_list = NULL; + move_count = move_item_size = 0; + alloc_init(); + sched_timer_reset(); + sched_clear_shutdown(); + irq_enable(); +} + /**************************************************************** * Timing and load stats |