return mem_ap_read_atomic_u32(tpiu_ap, address, value);
}
+static const struct service_driver arm_tpiu_swo_service_driver = {
+ .name = "tpiu_swo_trace",
+ .new_connection_during_keep_alive_handler = NULL,
+ .new_connection_handler = arm_tpiu_swo_service_new_connection,
+ .input_handler = arm_tpiu_swo_service_input,
+ .connection_closed_handler = arm_tpiu_swo_service_connection_closed,
+ .keep_client_alive_handler = NULL,
+};
+
static int jim_arm_tpiu_swo_enable(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
struct command *c = jim_to_command(interp);
}
priv->obj = obj;
LOG_INFO("starting trace server for %s on %s", obj->name, &obj->out_filename[1]);
- retval = add_service("tpiu_swo_trace", &obj->out_filename[1],
- CONNECTION_LIMIT_UNLIMITED, arm_tpiu_swo_service_new_connection,
- arm_tpiu_swo_service_input, arm_tpiu_swo_service_connection_closed,
- priv);
+ retval = add_service(&arm_tpiu_swo_service_driver, &obj->out_filename[1],
+ CONNECTION_LIMIT_UNLIMITED, priv);
if (retval != ERROR_OK) {
LOG_ERROR("Can't configure trace TCP port %s", &obj->out_filename[1]);
return JIM_ERR;
/* does this command exist? */
cmd = Jim_GetCommand(interp, Jim_NewStringObj(interp, obj->name, -1), JIM_NONE);
if (cmd) {
- Jim_SetResultFormatted(interp, "Command: %s Exists", obj->name);
+ Jim_SetResultFormatted(interp, "cannot create TPIU object because a command with name '%s' already exists",
+ obj->name);
return JIM_ERR;
}
struct jim_getopt_info goi;
jim_getopt_setup(&goi, interp, argc - 1, argv + 1);
if (goi.argc < 1) {
- Jim_WrongNumArgs(goi.interp, 1, goi.argv, "?name? ..options...");
+ Jim_WrongNumArgs(interp, 1, argv, "name ?option option ...?");
return JIM_ERR;
}
.name = "create",
.mode = COMMAND_ANY,
.jim_handler = jim_arm_tpiu_swo_create,
- .usage = "name [-dap dap] [-ap-num num] [-address baseaddr]",
+ .usage = "name [-dap dap] [-ap-num num] [-baseaddr baseaddr]",
.help = "Creates a new TPIU or SWO object",
},
{