#include "stellaris.h"
#include "armv7m.h"
#include "binarybuffer.h"
+#include "algorithm.h"
#define DID0_VER(did0) ((did0 >> 28)&0x07)
{
struct stellaris_flash_bank *stellaris_info;
- if (argc < 6)
+ if (CMD_ARGC < 6)
{
LOG_WARNING("incomplete flash_bank stellaris configuration");
return ERROR_FLASH_BANK_INVALID;
{
int i;
- if (argc < 1)
+ if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "stellaris mass_erase <bank>");
+ command_print(CMD_CTX, "stellaris mass_erase <bank>");
return ERROR_OK;
}
struct flash_bank *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
bank->sectors[i].is_erased = 1;
}
- command_print(cmd_ctx, "stellaris mass erase complete");
+ command_print(CMD_CTX, "stellaris mass erase complete");
}
else
{
- command_print(cmd_ctx, "stellaris mass erase failed");
+ command_print(CMD_CTX, "stellaris mass erase failed");
}
return ERROR_OK;
}
-static int stellaris_register_commands(struct command_context_s *cmd_ctx)
-{
- command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stellaris",
- NULL, COMMAND_ANY, "stellaris flash specific commands");
+static const struct command_registration stellaris_exec_command_handlers[] = {
+ {
+ .name = "mass_erase",
+ .handler = &stellaris_handle_mass_erase_command,
+ .mode = COMMAND_EXEC,
+ .help = "erase entire device",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration stellaris_command_handlers[] = {
+ {
+ .name = "stellaris",
+ .mode = COMMAND_ANY,
+ .help = "Stellaris flash command group",
+ .chain = stellaris_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
- register_command(cmd_ctx, stm32x_cmd, "mass_erase",
- stellaris_handle_mass_erase_command, COMMAND_EXEC,
- "mass erase device");
- return ERROR_OK;
+static int stellaris_register_commands(struct command_context *cmd_ctx)
+{
+ return register_commands(cmd_ctx, NULL, stellaris_command_handlers);
}