From 3b91b99fe3abef12c0f1ff653c0b313148e99495 Mon Sep 17 00:00:00 2001 From: Nav Date: Tue, 27 Aug 2024 22:24:22 +0100 Subject: [PATCH] Added help text for new `wr` GDB mintor command. Also some small tweaks to other help text --- .../Gdb/CommandPackets/HelpMonitorInfo.cpp | 73 ++++++++++++------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/src/DebugServer/Gdb/CommandPackets/HelpMonitorInfo.cpp b/src/DebugServer/Gdb/CommandPackets/HelpMonitorInfo.cpp index f887a2ce..09a7335a 100644 --- a/src/DebugServer/Gdb/CommandPackets/HelpMonitorInfo.cpp +++ b/src/DebugServer/Gdb/CommandPackets/HelpMonitorInfo.cpp @@ -35,68 +35,89 @@ namespace DebugServer::Gdb::CommandPackets auto output = std::string{"\nSupported Bloom commands:\n\n"}; - output += StringService::applyTerminalColor("help", CMD_COLOR) + "\n"; + output += StringService::applyTerminalColor("help", CMD_COLOR) + "\n\n"; output += leftPadding + "Displays this help text.\n\n"; - output += StringService::applyTerminalColor("version", CMD_COLOR) + "\n"; + output += StringService::applyTerminalColor("version", CMD_COLOR) + "\n\n"; output += leftPadding + "Outputs Bloom's version information.\n\n"; - output += StringService::applyTerminalColor( "version machine", CMD_COLOR) + "\n"; + output += StringService::applyTerminalColor( "version machine", CMD_COLOR) + "\n\n"; output += leftPadding + "Outputs Bloom's version information in JSON format.\n\n"; #ifndef EXCLUDE_INSIGHT - output += StringService::applyTerminalColor("insight", CMD_COLOR) + "\n"; + output += StringService::applyTerminalColor("insight", CMD_COLOR) + "\n\n"; output += leftPadding + "Activates the Insight GUI.\n\n"; #endif - output += StringService::applyTerminalColor("reset", CMD_COLOR) + "\n"; + output += StringService::applyTerminalColor("reset", CMD_COLOR) + "\n\n"; output += leftPadding + "Resets the target and holds it in a stopped state.\n\n"; - output += StringService::applyTerminalColor("lr", CMD_COLOR) - + " [" + StringService::applyTerminalColor("PERIPHERAL_KEY", PARAM_COLOR) + "] [" - + StringService::applyTerminalColor("ABS_REG_GROUP_KEY", PARAM_COLOR) + "]\n"; + output += StringService::applyTerminalColor("lr", CMD_COLOR) + " [" + + StringService::applyTerminalColor("PERIPHERAL_KEY", PARAM_COLOR) + "] [" + + StringService::applyTerminalColor("ABS_REG_GROUP_KEY", PARAM_COLOR) + "]\n\n"; output += leftPadding + "Lists all target registers in the given peripheral and register group.\n"; output += leftPadding + "If a peripheral key is not provided, all registers across all peripherals will be listed.\n\n"; output += leftPadding + "Examples:\n\n"; output += leftPadding + "mon " + StringService::applyTerminalColor("lr", CMD_COLOR) + "\n"; output += leftPadding + " To list all target registers across all peripherals.\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("lr", CMD_COLOR) - + " " + StringService::applyTerminalColor("tca0", PARAM_COLOR) + "\n"; + output += leftPadding + "mon " + StringService::applyTerminalColor("lr", CMD_COLOR) + " " + + StringService::applyTerminalColor("tca0", PARAM_COLOR) + "\n"; output += leftPadding + " To list all target registers in the `tca0` peripheral.\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("lr", CMD_COLOR) - + " " + StringService::applyTerminalColor("tca0", PARAM_COLOR) + " " + output += leftPadding + "mon " + StringService::applyTerminalColor("lr", CMD_COLOR) + " " + + StringService::applyTerminalColor("tca0", PARAM_COLOR) + " " + StringService::applyTerminalColor("tca.single", PARAM_COLOR) + "\n"; output += leftPadding + " To list all target registers in the `tca.single` register group, in the `tca0` peripheral.\n\n"; - output += StringService::applyTerminalColor("rr", CMD_COLOR) - + " [" + StringService::applyTerminalColor("PERIPHERAL_KEY", PARAM_COLOR) + "] [" + output += StringService::applyTerminalColor("rr", CMD_COLOR) + " [" + + StringService::applyTerminalColor("PERIPHERAL_KEY", PARAM_COLOR) + "] [" + StringService::applyTerminalColor("ABS_REG_GROUP_KEY", PARAM_COLOR) + "] [" - + StringService::applyTerminalColor("REG_KEY", PARAM_COLOR) + "]\n"; + + StringService::applyTerminalColor("REG_KEY", PARAM_COLOR) + "]\n\n"; output += leftPadding + "Reads the value of the given register.\n"; output += leftPadding + "If a register key is not provided, all registers in the given peripheral and register group will be read.\n"; output += leftPadding + "The register group key can be omitted if the peripheral contains a single register group,\n"; - output += leftPadding + "and the register resides directly within that group (not in any subgroup).\n\n"; + output += leftPadding + "and the subject register resides directly within that group (not in any subgroup).\n\n"; output += leftPadding + "Examples:\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) - + " " + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) + " " + + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + StringService::applyTerminalColor("port", PARAM_COLOR) + " " + StringService::applyTerminalColor("dir", PARAM_COLOR) + "\n"; output += leftPadding + " To read the `dir` register in the `port` register group, in the `porta` peripheral.\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) - + " " + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) + " " + + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + StringService::applyTerminalColor("dir", PARAM_COLOR) + "\n"; output += leftPadding + " Same as above, excluding the register group key.\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) - + " " + StringService::applyTerminalColor("tca0", PARAM_COLOR) + " " + output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) + " " + + StringService::applyTerminalColor("tca0", PARAM_COLOR) + " " + StringService::applyTerminalColor("tca.split", PARAM_COLOR) + "\n"; output += leftPadding + " To read all registers in the `tca.split` register group, in the `tca0` peripheral.\n\n"; - output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) - + " " + StringService::applyTerminalColor("porta", PARAM_COLOR) + "\n"; + output += leftPadding + "mon " + StringService::applyTerminalColor("rr", CMD_COLOR) + " " + + StringService::applyTerminalColor("porta", PARAM_COLOR) + "\n"; output += leftPadding + " To read all registers in the `porta` peripheral.\n\n"; + output += StringService::applyTerminalColor("wr", CMD_COLOR) + " [" + + StringService::applyTerminalColor("PERIPHERAL_KEY", PARAM_COLOR) + "] [" + + StringService::applyTerminalColor("ABS_REG_GROUP_KEY", PARAM_COLOR) + "] [" + + StringService::applyTerminalColor("REG_KEY", PARAM_COLOR) + "] [" + + StringService::applyTerminalColor("VALUE_HEX", PARAM_COLOR) + "]\n\n"; + output += leftPadding + "Writes the given value to the given register.\n"; + output += leftPadding + "The register group key can be omitted if the peripheral contains a single register group,\n"; + output += leftPadding + "and the subject register resides directly within that group (not in any subgroup).\n\n"; + output += leftPadding + "Examples:\n\n"; + output += leftPadding + "mon " + StringService::applyTerminalColor("wr", CMD_COLOR) + " " + + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + + StringService::applyTerminalColor("port", PARAM_COLOR) + " " + + StringService::applyTerminalColor("dir", PARAM_COLOR) + " " + + StringService::applyTerminalColor("0x40", PARAM_COLOR) + "\n"; + output += leftPadding + " To write 0x40 to the `dir` register in the `port` register group, in the `porta` peripheral.\n\n"; + output += leftPadding + "mon " + StringService::applyTerminalColor("wr", CMD_COLOR) + " " + + StringService::applyTerminalColor("porta", PARAM_COLOR) + " " + + StringService::applyTerminalColor("dir", PARAM_COLOR) + " " + + StringService::applyTerminalColor("0x40", PARAM_COLOR) + "\n"; + output += leftPadding + " Same as above, excluding the register group key.\n\n"; + if (targetDescriptor.family == Targets::TargetFamily::AVR_8) { - output += StringService::applyTerminalColor("eeprom fill", CMD_COLOR) - + " [" + StringService::applyTerminalColor("VALUE", PARAM_COLOR) + "]\n"; + output += StringService::applyTerminalColor("eeprom fill", CMD_COLOR) + " [" + + StringService::applyTerminalColor("VALUE", PARAM_COLOR) + "]\n\n"; output += leftPadding + "Fills the target's EEPROM with the specified value. The value should be in hexadecimal\n"; output += leftPadding + "format: \"monitor eeprom fill AABBCC\". If the specified value is smaller than the EEPROM\n"; output += leftPadding + "memory segment size, it will be repeated across the entire segment address range. If the\n";