#include <helper/binarybuffer.h>
#include <helper/time_support.h>
#include <target/algorithm.h>
-#include <target/armv4_5.h>
+#include <target/arm.h>
static int aduc702x_build_sector_list(struct flash_bank *bank);
/* mass erase */
if (((first | last) == 0) || ((first == 0) && (last >= bank->num_sectors))) {
- LOG_DEBUG("performing mass erase.\n");
+ LOG_DEBUG("performing mass erase.");
target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEDAT, 0x3cff);
target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEADR, 0xffc3);
target_write_u8(target, ADUC702x_FLASH + ADUC702x_FLASH_FEECON, 0x06);
if (aduc702x_check_flash_completion(target, 3500) != ERROR_OK)
{
- LOG_ERROR("mass erase failed\n");
+ LOG_ERROR("mass erase failed");
aduc702x_set_write_enable(target, 0);
return ERROR_FLASH_OPERATION_FAILED;
}
- LOG_DEBUG("mass erase successful.\n");
+ LOG_DEBUG("mass erase successful.");
return ERROR_OK;
} else {
unsigned long adr;
if (aduc702x_check_flash_completion(target, 50) != ERROR_OK)
{
- LOG_ERROR("failed to erase sector at address 0x%08lX\n", adr);
+ LOG_ERROR("failed to erase sector at address 0x%08lX", adr);
aduc702x_set_write_enable(target, 0);
return ERROR_FLASH_SECTOR_NOT_ERASED;
}
- LOG_DEBUG("erased sector at address 0x%08lX\n", adr);
+ LOG_DEBUG("erased sector at address 0x%08lX", adr);
}
}
r6 - set to 2, used to write flash command
*/
- uint32_t aduc702x_flash_write_code[] = {
+ static const uint32_t aduc702x_flash_write_code[] = {
//<_start>:
0xe3a05008, // mov r5, #8 ; 0x8
0xe5845004, // str r5, [r4, #4]
}
/* memory buffer */
- while (target_alloc_working_area(target, buffer_size, &source) != ERROR_OK)
+ while (target_alloc_working_area_try(target, buffer_size, &source) != ERROR_OK)
{
buffer_size /= 2;
if (buffer_size <= 256)
if (aduc702x_check_flash_completion(target, 1) != ERROR_OK)
{
- LOG_ERROR("single write failed for address 0x%08lX\n", (unsigned long)(offset + x));
+ LOG_ERROR("single write failed for address 0x%08lX", (unsigned long)(offset + x));
aduc702x_set_write_enable(target, 0);
return ERROR_FLASH_OPERATION_FAILED;
}
}
- LOG_DEBUG("wrote %d bytes at address 0x%08lX\n", (int)count, (unsigned long)(offset + x));
+ LOG_DEBUG("wrote %d bytes at address 0x%08lX", (int)count, (unsigned long)(offset + x));
aduc702x_set_write_enable(target, 0);
return ERROR_OK;
}
-int aduc702x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
+static int aduc702x_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
{
int retval;
}
struct flash_driver aduc702x_flash = {
- .name = "aduc702x",
- .flash_bank_command = &aduc702x_flash_bank_command,
- .erase = &aduc702x_erase,
- .protect = &aduc702x_protect,
- .write = &aduc702x_write,
- .probe = &aduc702x_probe,
- .auto_probe = &aduc702x_probe,
- .erase_check = &default_flash_blank_check,
- .protect_check = &aduc702x_protect_check,
- .info = &aduc702x_info
- };
+ .name = "aduc702x",
+ .flash_bank_command = aduc702x_flash_bank_command,
+ .erase = aduc702x_erase,
+ .protect = aduc702x_protect,
+ .write = aduc702x_write,
+ .read = default_flash_read,
+ .probe = aduc702x_probe,
+ .auto_probe = aduc702x_probe,
+ .erase_check = default_flash_blank_check,
+ .protect_check = aduc702x_protect_check,
+ .info = aduc702x_info
+};