#include "target_type.h"
#include "target_request.h"
#include "breakpoints.h"
-#include "time_support.h"
+#include <helper/time_support.h>
#include "register.h"
#include "trace.h"
#include "image.h"
-#include "jtag.h"
+#include <jtag/jtag.h>
static int target_array2mem(Jim_Interp *interp, struct target *target, int argc, Jim_Obj *const *argv);
return ERROR_OK;
}
+COMMAND_HANDLER(handle_target_init_command)
+{
+ if (CMD_ARGC != 0)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+
+ static bool target_initialized = false;
+ if (target_initialized)
+ {
+ LOG_INFO("'target init' has already been called");
+ return ERROR_OK;
+ }
+ target_initialized = true;
+
+ LOG_DEBUG("Initializing targets...");
+ return target_init(CMD_CTX);
+}
+
int target_register_event_callback(int (*callback)(struct target *target, enum target_event event, void *priv), void *priv)
{
struct target_event_callback **callbacks_p = &target_event_callbacks;
}
static const struct command_registration target_subcommand_handlers[] = {
+ {
+ .name = "init",
+ .mode = COMMAND_CONFIG,
+ .handler = &handle_target_init_command,
+ .help = "initialize targets",
+ },
{
.name = "create",
.mode = COMMAND_ANY,