| /* |
| * Copyright (c) 2017 Oticon A/S |
| * Copyright (c) 2023 Nordic Semiconductor ASA |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| #include <stdbool.h> |
| #include <stdlib.h> |
| #include "bs_tracing.h" |
| #include "bstests.h" |
| #include "bs_cmd_line.h" |
| #include "bs_dynargs.h" |
| #include "posix_native_task.h" |
| #include "nsi_tracing.h" |
| #include "nsi_main.h" |
| #include "nsi_cpu_ctrl.h" |
| |
| static const char exe_name[] = "nrf_bsim options:"; |
| |
| static char *testid; |
| static bool cpu_autostart; |
| |
| static void cmd_testid_found(char *argv, int offset) |
| { |
| bst_set_testapp_mode(testid); |
| } |
| |
| static void cmd_testlist_found(char *argv, int offset) |
| { |
| bst_print_testslist(); |
| nsi_exit(0); |
| } |
| |
| static void cmd_autostart_found(char *argv, int offset) |
| { |
| nsi_cpu_set_auto_start(CONFIG_NATIVE_SIMULATOR_MCU_N, cpu_autostart); |
| } |
| |
| static void nrfbsim_register_args(void) |
| { |
| static bs_args_struct_t args_struct_toadd[] = { |
| { |
| .option = "cpu" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) "_testid", |
| .name = "testid", |
| .type = 's', |
| .dest = (void *)&testid, |
| .call_when_found = cmd_testid_found, |
| .descript = "Which of the bs tests shall be run. Run -testslist for more info" |
| }, |
| { |
| .is_switch = true, |
| .option = "cpu" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) "_testslist", |
| .type = 'b', |
| .call_when_found = cmd_testlist_found, |
| .descript = "Print information about the available bs application tests" |
| }, |
| #if (CONFIG_NATIVE_SIMULATOR_MCU_N == CONFIG_NATIVE_SIMULATOR_PRIMARY_MCU_INDEX) |
| { |
| .option = "testid", |
| .name = "testid", |
| .type = 's', |
| .dest = (void *)&testid, |
| .call_when_found = cmd_testid_found, |
| .descript = "Alias of cpu" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) "_testid" |
| }, |
| { |
| .is_switch = true, |
| .option = "testslist", |
| .type = 'b', |
| .call_when_found = cmd_testlist_found, |
| .descript = "Alias of cpu" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) "_testslist" |
| }, |
| #endif |
| { |
| .option = "cpu" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) "_autostart", |
| .name = "autostart", |
| .type = 'b', |
| .dest = (void *)&cpu_autostart, |
| .call_when_found = cmd_autostart_found, |
| .descript = "Automatically start CPU" STRINGIFY(CONFIG_NATIVE_SIMULATOR_MCU_N) |
| }, |
| ARG_TABLE_ENDMARKER |
| }; |
| |
| bs_add_extra_dynargs(args_struct_toadd); |
| bs_args_override_exe_name((char *)exe_name); |
| } |
| |
| NATIVE_TASK(nrfbsim_register_args, PRE_BOOT_1, 100); |