X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fflash%2Fstm32x.c;h=c628f1878cc029802c7d59d2aa3f5eab0805d1b3;hb=ccae9ae0200a66472409334d18108b309a9fae70;hp=a9b4fb3fd0d99a69310209f5e5c180ec4b5feaee;hpb=0f1163e823c6ca3c2a81fa296157f5dde0635fea;p=openocd.git
diff --git a/src/flash/stm32x.c b/src/flash/stm32x.c
index a9b4fb3fd0..c628f1878c 100644
--- a/src/flash/stm32x.c
+++ b/src/flash/stm32x.c
@@ -27,9 +27,10 @@
#include "stm32x.h"
#include "armv7m.h"
#include "binarybuffer.h"
+#include "algorithm.h"
-static int stm32x_mass_erase(struct flash_bank_s *bank);
+static int stm32x_mass_erase(struct flash_bank *bank);
/* flash bank stm32x 0 0
*/
@@ -37,7 +38,7 @@ FLASH_BANK_COMMAND_HANDLER(stm32x_flash_bank_command)
{
struct stm32x_flash_bank *stm32x_info;
- if (argc < 6)
+ if (CMD_ARGC < 6)
{
LOG_WARNING("incomplete flash_bank stm32x configuration");
return ERROR_FLASH_BANK_INVALID;
@@ -52,7 +53,7 @@ FLASH_BANK_COMMAND_HANDLER(stm32x_flash_bank_command)
return ERROR_OK;
}
-static uint32_t stm32x_get_flash_status(flash_bank_t *bank)
+static uint32_t stm32x_get_flash_status(struct flash_bank *bank)
{
struct target *target = bank->target;
uint32_t status;
@@ -62,7 +63,7 @@ static uint32_t stm32x_get_flash_status(flash_bank_t *bank)
return status;
}
-static uint32_t stm32x_wait_status_busy(flash_bank_t *bank, int timeout)
+static uint32_t stm32x_wait_status_busy(struct flash_bank *bank, int timeout)
{
struct target *target = bank->target;
uint32_t status;
@@ -81,7 +82,7 @@ static uint32_t stm32x_wait_status_busy(flash_bank_t *bank, int timeout)
return status;
}
-static int stm32x_read_options(struct flash_bank_s *bank)
+static int stm32x_read_options(struct flash_bank *bank)
{
uint32_t optiondata;
struct stm32x_flash_bank *stm32x_info = NULL;
@@ -109,7 +110,7 @@ static int stm32x_read_options(struct flash_bank_s *bank)
return ERROR_OK;
}
-static int stm32x_erase_options(struct flash_bank_s *bank)
+static int stm32x_erase_options(struct flash_bank *bank)
{
struct stm32x_flash_bank *stm32x_info = NULL;
struct target *target = bank->target;
@@ -146,7 +147,7 @@ static int stm32x_erase_options(struct flash_bank_s *bank)
return ERROR_OK;
}
-static int stm32x_write_options(struct flash_bank_s *bank)
+static int stm32x_write_options(struct flash_bank *bank)
{
struct stm32x_flash_bank *stm32x_info = NULL;
struct target *target = bank->target;
@@ -230,7 +231,7 @@ static int stm32x_write_options(struct flash_bank_s *bank)
return ERROR_OK;
}
-static int stm32x_protect_check(struct flash_bank_s *bank)
+static int stm32x_protect_check(struct flash_bank *bank)
{
struct target *target = bank->target;
struct stm32x_flash_bank *stm32x_info = bank->driver_priv;
@@ -302,7 +303,7 @@ static int stm32x_protect_check(struct flash_bank_s *bank)
return ERROR_OK;
}
-static int stm32x_erase(struct flash_bank_s *bank, int first, int last)
+static int stm32x_erase(struct flash_bank *bank, int first, int last)
{
struct target *target = bank->target;
int i;
@@ -343,7 +344,7 @@ static int stm32x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK;
}
-static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last)
+static int stm32x_protect(struct flash_bank *bank, int set, int first, int last)
{
struct stm32x_flash_bank *stm32x_info = NULL;
struct target *target = bank->target;
@@ -430,7 +431,7 @@ static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int las
return stm32x_write_options(bank);
}
-static int stm32x_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
{
struct stm32x_flash_bank *stm32x_info = bank->driver_priv;
struct target *target = bank->target;
@@ -549,7 +550,7 @@ static int stm32x_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint32
return retval;
}
-static int stm32x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int stm32x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
{
struct target *target = bank->target;
uint32_t words_remaining = (count / 2);
@@ -654,7 +655,7 @@ static int stm32x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t off
return ERROR_OK;
}
-static int stm32x_probe(struct flash_bank_s *bank)
+static int stm32x_probe(struct flash_bank *bank)
{
struct target *target = bank->target;
struct stm32x_flash_bank *stm32x_info = bank->driver_priv;
@@ -771,7 +772,7 @@ static int stm32x_probe(struct flash_bank_s *bank)
return ERROR_OK;
}
-static int stm32x_auto_probe(struct flash_bank_s *bank)
+static int stm32x_auto_probe(struct flash_bank *bank)
{
struct stm32x_flash_bank *stm32x_info = bank->driver_priv;
if (stm32x_info->probed)
@@ -786,7 +787,7 @@ COMMAND_HANDLER(stm32x_handle_part_id_command)
}
#endif
-static int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size)
+static int stm32x_info(struct flash_bank *bank, char *buf, int buf_size)
{
struct target *target = bank->target;
uint32_t device_id;
@@ -897,14 +898,14 @@ COMMAND_HANDLER(stm32x_handle_lock_command)
struct target *target = NULL;
struct stm32x_flash_bank *stm32x_info = NULL;
- if (argc < 1)
+ if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "stm32x lock ");
+ command_print(CMD_CTX, "stm32x lock ");
return ERROR_OK;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
@@ -920,7 +921,7 @@ COMMAND_HANDLER(stm32x_handle_lock_command)
if (stm32x_erase_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to erase options");
+ command_print(CMD_CTX, "stm32x failed to erase options");
return ERROR_OK;
}
@@ -929,11 +930,11 @@ COMMAND_HANDLER(stm32x_handle_lock_command)
if (stm32x_write_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to lock device");
+ command_print(CMD_CTX, "stm32x failed to lock device");
return ERROR_OK;
}
- command_print(cmd_ctx, "stm32x locked");
+ command_print(CMD_CTX, "stm32x locked");
return ERROR_OK;
}
@@ -943,14 +944,14 @@ COMMAND_HANDLER(stm32x_handle_unlock_command)
struct target *target = NULL;
struct stm32x_flash_bank *stm32x_info = NULL;
- if (argc < 1)
+ if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "stm32x unlock ");
+ command_print(CMD_CTX, "stm32x unlock ");
return ERROR_OK;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
@@ -966,17 +967,17 @@ COMMAND_HANDLER(stm32x_handle_unlock_command)
if (stm32x_erase_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to unlock device");
+ command_print(CMD_CTX, "stm32x failed to unlock device");
return ERROR_OK;
}
if (stm32x_write_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to lock device");
+ command_print(CMD_CTX, "stm32x failed to lock device");
return ERROR_OK;
}
- command_print(cmd_ctx, "stm32x unlocked");
+ command_print(CMD_CTX, "stm32x unlocked");
return ERROR_OK;
}
@@ -987,14 +988,14 @@ COMMAND_HANDLER(stm32x_handle_options_read_command)
struct target *target = NULL;
struct stm32x_flash_bank *stm32x_info = NULL;
- if (argc < 1)
+ if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "stm32x options_read ");
+ command_print(CMD_CTX, "stm32x options_read ");
return ERROR_OK;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
@@ -1009,30 +1010,30 @@ COMMAND_HANDLER(stm32x_handle_options_read_command)
}
target_read_u32(target, STM32_FLASH_OBR, &optionbyte);
- command_print(cmd_ctx, "Option Byte: 0x%" PRIx32 "", optionbyte);
+ command_print(CMD_CTX, "Option Byte: 0x%" PRIx32 "", optionbyte);
if (buf_get_u32((uint8_t*)&optionbyte, OPT_ERROR, 1))
- command_print(cmd_ctx, "Option Byte Complement Error");
+ command_print(CMD_CTX, "Option Byte Complement Error");
if (buf_get_u32((uint8_t*)&optionbyte, OPT_READOUT, 1))
- command_print(cmd_ctx, "Readout Protection On");
+ command_print(CMD_CTX, "Readout Protection On");
else
- command_print(cmd_ctx, "Readout Protection Off");
+ command_print(CMD_CTX, "Readout Protection Off");
if (buf_get_u32((uint8_t*)&optionbyte, OPT_RDWDGSW, 1))
- command_print(cmd_ctx, "Software Watchdog");
+ command_print(CMD_CTX, "Software Watchdog");
else
- command_print(cmd_ctx, "Hardware Watchdog");
+ command_print(CMD_CTX, "Hardware Watchdog");
if (buf_get_u32((uint8_t*)&optionbyte, OPT_RDRSTSTOP, 1))
- command_print(cmd_ctx, "Stop: No reset generated");
+ command_print(CMD_CTX, "Stop: No reset generated");
else
- command_print(cmd_ctx, "Stop: Reset generated");
+ command_print(CMD_CTX, "Stop: Reset generated");
if (buf_get_u32((uint8_t*)&optionbyte, OPT_RDRSTSTDBY, 1))
- command_print(cmd_ctx, "Standby: No reset generated");
+ command_print(CMD_CTX, "Standby: No reset generated");
else
- command_print(cmd_ctx, "Standby: Reset generated");
+ command_print(CMD_CTX, "Standby: Reset generated");
return ERROR_OK;
}
@@ -1043,14 +1044,14 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
struct stm32x_flash_bank *stm32x_info = NULL;
uint16_t optionbyte = 0xF8;
- if (argc < 4)
+ if (CMD_ARGC < 4)
{
- command_print(cmd_ctx, "stm32x options_write ");
+ command_print(CMD_CTX, "stm32x options_write ");
return ERROR_OK;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
@@ -1064,7 +1065,7 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
return ERROR_TARGET_NOT_HALTED;
}
- if (strcmp(args[1], "SWWDG") == 0)
+ if (strcmp(CMD_ARGV[1], "SWWDG") == 0)
{
optionbyte |= (1 << 0);
}
@@ -1073,7 +1074,7 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
optionbyte &= ~(1 << 0);
}
- if (strcmp(args[2], "NORSTSTNDBY") == 0)
+ if (strcmp(CMD_ARGV[2], "NORSTSTNDBY") == 0)
{
optionbyte |= (1 << 1);
}
@@ -1082,7 +1083,7 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
optionbyte &= ~(1 << 1);
}
- if (strcmp(args[3], "NORSTSTOP") == 0)
+ if (strcmp(CMD_ARGV[3], "NORSTSTOP") == 0)
{
optionbyte |= (1 << 2);
}
@@ -1093,7 +1094,7 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
if (stm32x_erase_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to erase options");
+ command_print(CMD_CTX, "stm32x failed to erase options");
return ERROR_OK;
}
@@ -1101,16 +1102,16 @@ COMMAND_HANDLER(stm32x_handle_options_write_command)
if (stm32x_write_options(bank) != ERROR_OK)
{
- command_print(cmd_ctx, "stm32x failed to write options");
+ command_print(CMD_CTX, "stm32x failed to write options");
return ERROR_OK;
}
- command_print(cmd_ctx, "stm32x write options complete");
+ command_print(CMD_CTX, "stm32x write options complete");
return ERROR_OK;
}
-static int stm32x_mass_erase(struct flash_bank_s *bank)
+static int stm32x_mass_erase(struct flash_bank *bank)
{
struct target *target = bank->target;
uint32_t status;
@@ -1152,14 +1153,14 @@ COMMAND_HANDLER(stm32x_handle_mass_erase_command)
{
int i;
- if (argc < 1)
+ if (CMD_ARGC < 1)
{
- command_print(cmd_ctx, "stm32x mass_erase ");
+ command_print(CMD_CTX, "stm32x mass_erase ");
return ERROR_OK;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
@@ -1171,34 +1172,34 @@ COMMAND_HANDLER(stm32x_handle_mass_erase_command)
bank->sectors[i].is_erased = 1;
}
- command_print(cmd_ctx, "stm32x mass erase complete");
+ command_print(CMD_CTX, "stm32x mass erase complete");
}
else
{
- command_print(cmd_ctx, "stm32x mass erase failed");
+ command_print(CMD_CTX, "stm32x mass erase failed");
}
return ERROR_OK;
}
-static int stm32x_register_commands(struct command_context_s *cmd_ctx)
+static int stm32x_register_commands(struct command_context *cmd_ctx)
{
- command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stm32x",
+ struct command *stm32x_cmd = COMMAND_REGISTER(cmd_ctx, NULL, "stm32x",
NULL, COMMAND_ANY, "stm32x flash specific commands");
- register_command(cmd_ctx, stm32x_cmd, "lock",
+ COMMAND_REGISTER(cmd_ctx, stm32x_cmd, "lock",
stm32x_handle_lock_command, COMMAND_EXEC,
"lock device");
- register_command(cmd_ctx, stm32x_cmd, "unlock",
+ COMMAND_REGISTER(cmd_ctx, stm32x_cmd, "unlock",
stm32x_handle_unlock_command, COMMAND_EXEC,
"unlock protected device");
- register_command(cmd_ctx, stm32x_cmd, "mass_erase",
+ COMMAND_REGISTER(cmd_ctx, stm32x_cmd, "mass_erase",
stm32x_handle_mass_erase_command, COMMAND_EXEC,
"mass erase device");
- register_command(cmd_ctx, stm32x_cmd, "options_read",
+ COMMAND_REGISTER(cmd_ctx, stm32x_cmd, "options_read",
stm32x_handle_options_read_command, COMMAND_EXEC,
"read device option bytes");
- register_command(cmd_ctx, stm32x_cmd, "options_write",
+ COMMAND_REGISTER(cmd_ctx, stm32x_cmd, "options_write",
stm32x_handle_options_write_command, COMMAND_EXEC,
"write device option bytes");