X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Flpc2000.c;h=418b5b0345dff8bff3c3421dc24d92b79a3dc0a4;hp=36ebc0ecf007a8d0a1a7b77fd3fb14b32283b711;hb=e1ec02bb055fa356b058dddc0a15710e0fdc9870;hpb=96b62996d2d81b09a48bf253bc9e60e637f687bd diff --git a/src/flash/lpc2000.c b/src/flash/lpc2000.c index 36ebc0ecf0..418b5b0345 100644 --- a/src/flash/lpc2000.c +++ b/src/flash/lpc2000.c @@ -26,9 +26,9 @@ #endif #include "lpc2000.h" -#include "armv4_5.h" #include "armv7m.h" #include "binarybuffer.h" +#include "algorithm.h" /* flash programming support for NXP LPC17xx and LPC2xxx devices @@ -423,7 +423,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) { struct lpc2000_flash_bank *lpc2000_info; - if (argc < 8) + if (CMD_ARGC < 8) { LOG_WARNING("incomplete flash_bank lpc2000 configuration"); return ERROR_FLASH_BANK_INVALID; @@ -432,7 +432,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) lpc2000_info = malloc(sizeof(struct lpc2000_flash_bank)); bank->driver_priv = lpc2000_info; - if (strcmp(args[6], "lpc2000_v1") == 0) + if (strcmp(CMD_ARGV[6], "lpc2000_v1") == 0) { lpc2000_info->variant = lpc2000_v1; lpc2000_info->cmd51_dst_boundary = 512; @@ -440,7 +440,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) lpc2000_info->cmd51_can_8192b = 1; lpc2000_info->checksum_vector = 5; } - else if (strcmp(args[6], "lpc2000_v2") == 0) + else if (strcmp(CMD_ARGV[6], "lpc2000_v2") == 0) { lpc2000_info->variant = lpc2000_v2; lpc2000_info->cmd51_dst_boundary = 256; @@ -448,7 +448,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) lpc2000_info->cmd51_can_8192b = 0; lpc2000_info->checksum_vector = 5; } - else if (strcmp(args[6], "lpc1700") == 0) + else if (strcmp(CMD_ARGV[6], "lpc1700") == 0) { lpc2000_info->variant = lpc1700; lpc2000_info->cmd51_dst_boundary = 256; @@ -458,19 +458,19 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) } else { - LOG_ERROR("unknown LPC2000 variant: %s", args[6]); + LOG_ERROR("unknown LPC2000 variant: %s", CMD_ARGV[6]); free(lpc2000_info); return ERROR_FLASH_BANK_INVALID; } lpc2000_info->iap_working_area = NULL; - COMMAND_PARSE_NUMBER(u32, args[7], lpc2000_info->cclk); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[7], lpc2000_info->cclk); lpc2000_info->calc_checksum = 0; lpc2000_build_sector_list(bank); - if (argc >= 9) + if (CMD_ARGC >= 9) { - if (strcmp(args[8], "calc_checksum") == 0) + if (strcmp(CMD_ARGV[8], "calc_checksum") == 0) lpc2000_info->calc_checksum = 1; } @@ -572,7 +572,7 @@ static int lpc2000_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offs { if (offset >= bank->sectors[i].offset) first_sector = i; - if (offset + CEIL(count, dst_min_alignment) * dst_min_alignment > bank->sectors[i].offset) + if (offset + DIV_ROUND_UP(count, dst_min_alignment) * dst_min_alignment > bank->sectors[i].offset) last_sector = i; } @@ -743,13 +743,13 @@ COMMAND_HANDLER(lpc2000_handle_part_id_command) uint32_t result_table[4]; int status_code; - if (argc < 1) + if (CMD_ARGC < 1) { return ERROR_COMMAND_SYNTAX_ERROR; } 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; @@ -763,34 +763,41 @@ COMMAND_HANDLER(lpc2000_handle_part_id_command) { if (status_code == ERROR_FLASH_OPERATION_FAILED) { - command_print(cmd_ctx, "no sufficient working area specified, can't access LPC2000 IAP interface"); + command_print(CMD_CTX, "no sufficient working area specified, can't access LPC2000 IAP interface"); return ERROR_OK; } - command_print(cmd_ctx, "lpc2000 IAP returned status code %i", status_code); + command_print(CMD_CTX, "lpc2000 IAP returned status code %i", status_code); } else { - command_print(cmd_ctx, "lpc2000 part id: 0x%8.8" PRIx32 , result_table[0]); + command_print(CMD_CTX, "lpc2000 part id: 0x%8.8" PRIx32 , result_table[0]); } return ERROR_OK; } -static int lpc2000_register_commands(struct command_context_s *cmd_ctx) -{ - command_t *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", - NULL, COMMAND_ANY, NULL); - - register_command(cmd_ctx, lpc2000_cmd, "part_id", - lpc2000_handle_part_id_command, COMMAND_EXEC, - "print part id of lpc2000 flash bank "); - - return ERROR_OK; -} +static const struct command_registration lpc2000_exec_command_handlers[] = { + { + .name = "part_id", + .handler = &lpc2000_handle_part_id_command, + .mode = COMMAND_EXEC, + .help = "print part id of lpc2000 flash bank ", + }, + COMMAND_REGISTRATION_DONE +}; +static const struct command_registration lpc2000_command_handlers[] = { + { + .name = "lpc2000", + .mode = COMMAND_ANY, + .help = "lpc2000 flash command group", + .chain = lpc2000_exec_command_handlers, + }, + COMMAND_REGISTRATION_DONE +}; struct flash_driver lpc2000_flash = { .name = "lpc2000", - .register_commands = &lpc2000_register_commands, + .commands = lpc2000_command_handlers, .flash_bank_command = &lpc2000_flash_bank_command, .erase = &lpc2000_erase, .protect = &lpc2000_protect,