X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Flpc2000.c;h=60d909f151a7fffda69186106d5f29fb7023b852;hp=0481355c5f0185bea148c9d6c2b1b09f930b6bee;hb=7bf1a86e473a12882bf6f71cb4d0d416394b69d4;hpb=0796dfff89bf00f82a780d7719767bcffe881d67 diff --git a/src/flash/lpc2000.c b/src/flash/lpc2000.c index 0481355c5f..60d909f151 100644 --- a/src/flash/lpc2000.c +++ b/src/flash/lpc2000.c @@ -29,6 +29,7 @@ #include "armv4_5.h" #include "armv7m.h" #include "binarybuffer.h" +#include "algorithm.h" /* flash programming support for NXP LPC17xx and LPC2xxx devices @@ -53,9 +54,9 @@ * - 176x (tested with LPC1768) */ -static int lpc2000_build_sector_list(struct flash_bank_s *bank) +static int lpc2000_build_sector_list(struct flash_bank *bank) { - lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; + struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv; int i; uint32_t offset = 0; @@ -68,7 +69,7 @@ static int lpc2000_build_sector_list(struct flash_bank_s *bank) if (bank->size == 128 * 1024) { bank->num_sectors = 16; - bank->sectors = malloc(sizeof(flash_sector_t) * 16); + bank->sectors = malloc(sizeof(struct flash_sector) * 16); for (i = 0; i < 16; i++) { bank->sectors[i].offset = offset; @@ -81,7 +82,7 @@ static int lpc2000_build_sector_list(struct flash_bank_s *bank) else if (bank->size == 256 * 1024) { bank->num_sectors = 18; - bank->sectors = malloc(sizeof(flash_sector_t) * 18); + bank->sectors = malloc(sizeof(struct flash_sector) * 18); for (i = 0; i < 8; i++) { @@ -152,7 +153,7 @@ static int lpc2000_build_sector_list(struct flash_bank_s *bank) break; } - bank->sectors = malloc(sizeof(flash_sector_t) * bank->num_sectors); + bank->sectors = malloc(sizeof(struct flash_sector) * bank->num_sectors); for (i = 0; i < bank->num_sectors; i++) { @@ -206,7 +207,7 @@ static int lpc2000_build_sector_list(struct flash_bank_s *bank) exit(-1); } - bank->sectors = malloc(sizeof(flash_sector_t) * bank->num_sectors); + bank->sectors = malloc(sizeof(struct flash_sector) * bank->num_sectors); for(i = 0; i < bank->num_sectors; i++) { @@ -234,15 +235,15 @@ static int lpc2000_build_sector_list(struct flash_bank_s *bank) * 0x20 to 0x33: command result table (1+4 words) * 0x34 to 0xb3: stack (only 128b needed) */ -static int lpc2000_iap_call(flash_bank_t *bank, int code, uint32_t param_table[5], uint32_t result_table[4]) +static int lpc2000_iap_call(struct flash_bank *bank, int code, uint32_t param_table[5], uint32_t result_table[4]) { int retval; - lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; - target_t *target = bank->target; - mem_param_t mem_params[2]; - reg_param_t reg_params[5]; - armv4_5_algorithm_t armv4_5_info; /* for LPC2000 */ - armv7m_algorithm_t armv7m_info; /* for LPC1700 */ + struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv; + struct target *target = bank->target; + struct mem_param mem_params[2]; + struct reg_param reg_params[5]; + struct armv4_5_algorithm armv4_5_info; /* for LPC2000 */ + struct armv7m_algorithm armv7m_info; /* for LPC1700 */ uint32_t status_code; uint32_t iap_entry_point = 0; /* to make compiler happier */ @@ -375,7 +376,7 @@ static int lpc2000_iap_call(flash_bank_t *bank, int code, uint32_t param_table[5 return status_code; } -static int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last) +static int lpc2000_iap_blank_check(struct flash_bank *bank, int first, int last) { uint32_t param_table[5]; uint32_t result_table[4]; @@ -421,15 +422,15 @@ static int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int las */ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) { - lpc2000_flash_bank_t *lpc2000_info; + 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; } - lpc2000_info = malloc(sizeof(lpc2000_flash_bank_t)); + lpc2000_info = malloc(sizeof(struct lpc2000_flash_bank)); bank->driver_priv = lpc2000_info; if (strcmp(args[6], "lpc2000_v1") == 0) @@ -468,7 +469,7 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) lpc2000_info->calc_checksum = 0; lpc2000_build_sector_list(bank); - if (argc >= 9) + if (CMD_ARGC >= 9) { if (strcmp(args[8], "calc_checksum") == 0) lpc2000_info->calc_checksum = 1; @@ -477,9 +478,9 @@ FLASH_BANK_COMMAND_HANDLER(lpc2000_flash_bank_command) return ERROR_OK; } -static int lpc2000_erase(struct flash_bank_s *bank, int first, int last) +static int lpc2000_erase(struct flash_bank *bank, int first, int last) { - lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; + struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv; uint32_t param_table[5]; uint32_t result_table[4]; int status_code; @@ -529,16 +530,16 @@ static int lpc2000_erase(struct flash_bank_s *bank, int first, int last) return ERROR_OK; } -static int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last) +static int lpc2000_protect(struct flash_bank *bank, int set, int first, int last) { /* can't protect/unprotect on the lpc2000 */ return ERROR_OK; } -static int lpc2000_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int lpc2000_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) { - lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; - target_t *target = bank->target; + struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv; + struct target *target = bank->target; uint32_t dst_min_alignment; uint32_t bytes_remaining = count; uint32_t bytes_written = 0; @@ -548,7 +549,7 @@ static int lpc2000_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t of uint32_t result_table[4]; int status_code; int i; - working_area_t *download_area; + struct working_area *download_area; int retval = ERROR_OK; if (bank->target->state != TARGET_HALTED) @@ -572,7 +573,7 @@ static int lpc2000_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t of { 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; } @@ -703,7 +704,7 @@ static int lpc2000_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t of return retval; } -static int lpc2000_probe(struct flash_bank_s *bank) +static int lpc2000_probe(struct flash_bank *bank) { /* we can't probe on an lpc2000 * if this is an lpc2xxx, it has the configured flash @@ -711,7 +712,7 @@ static int lpc2000_probe(struct flash_bank_s *bank) return ERROR_OK; } -static int lpc2000_erase_check(struct flash_bank_s *bank) +static int lpc2000_erase_check(struct flash_bank *bank) { if (bank->target->state != TARGET_HALTED) { @@ -722,15 +723,15 @@ static int lpc2000_erase_check(struct flash_bank_s *bank) return lpc2000_iap_blank_check(bank, 0, bank->num_sectors - 1); } -static int lpc2000_protect_check(struct flash_bank_s *bank) +static int lpc2000_protect_check(struct flash_bank *bank) { /* sectors are always protected */ return ERROR_OK; } -static int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int lpc2000_info(struct flash_bank *bank, char *buf, int buf_size) { - lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; + struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv; snprintf(buf, buf_size, "lpc2000 flash driver variant: %i, clk: %" PRIi32 "kHz" , lpc2000_info->variant, lpc2000_info->cclk); @@ -743,13 +744,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; } - 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_by_num, 0, &bank); if (ERROR_OK != retval) return retval; @@ -776,9 +777,9 @@ COMMAND_HANDLER(lpc2000_handle_part_id_command) return ERROR_OK; } -static int lpc2000_register_commands(struct command_context_s *cmd_ctx) +static int lpc2000_register_commands(struct command_context *cmd_ctx) { - command_t *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", + struct command *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", NULL, COMMAND_ANY, NULL); register_command(cmd_ctx, lpc2000_cmd, "part_id", @@ -788,7 +789,7 @@ static int lpc2000_register_commands(struct command_context_s *cmd_ctx) return ERROR_OK; } -flash_driver_t lpc2000_flash = { +struct flash_driver lpc2000_flash = { .name = "lpc2000", .register_commands = &lpc2000_register_commands, .flash_bank_command = &lpc2000_flash_bank_command,