90 lines
2.3 KiB
C
90 lines
2.3 KiB
C
/*
|
|
* 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);
|