#include "config.h"
#endif
-#include "replacements.h"
-
#include "pic32mx.h"
-#include "flash.h"
-#include "target.h"
-#include "log.h"
#include "mips32.h"
-#include "algorithm.h"
-#include "binarybuffer.h"
-#include <stdlib.h>
-#include <string.h>
static
struct pic32mx_devs_s {
while(count > 0)
{
- u32 status;
+ u32 value;
+ memcpy(&value, buffer, sizeof(u32));
- status = pic32mx_write_word(bank, address, *(u32*)buffer);
+ u32 status = pic32mx_write_word(bank, address, value);
if( status & NVMCON_NVMERR ) {
LOG_ERROR("Flash write error NVMERR (status=0x%08x)", status);
retval = ERROR_FLASH_OPERATION_FAILED;
u32 address = bank->base + offset;
u32 bytes_written = 0;
u32 status;
- u32 retval;
+ int retval;
if (bank->target->state != TARGET_HALTED)
{
while (words_remaining > 0)
{
- status = pic32mx_write_word(bank, address, *(u32*)(buffer + bytes_written));
+ u32 value;
+ memcpy(&value, buffer + bytes_written, sizeof(u32));
+ status = pic32mx_write_word(bank, address, value);
if( status & NVMCON_NVMERR )
return ERROR_FLASH_OPERATION_FAILED;
if( status & NVMCON_LVDERR )
if (bytes_remaining)
{
- u8 last_word[4] = {0xff, 0xff, 0xff, 0xff};
- int i = 0;
-
- while(bytes_remaining > 0)
- {
- /* Assumes little endian */
- last_word[i++] = *(buffer + bytes_written);
- bytes_remaining--;
- bytes_written++;
- }
-
- status = pic32mx_write_word(bank, address, *(u32*)last_word);
+ u32 value = 0xffffffff;
+ memcpy(&value, buffer + bytes_written, bytes_remaining);
+ status = pic32mx_write_word(bank, address, value);
if( status & NVMCON_NVMERR )
return ERROR_FLASH_OPERATION_FAILED;
if( status & NVMCON_LVDERR )
mips32_common_t *mips32 = target->arch_info;
mips_ejtag_t *ejtag_info = &mips32->ejtag_info;
int i;
- u16 num_pages;
+ u16 num_pages = 0;
u32 device_id;
int page_size;
mips32_common_t *mips32 = target->arch_info;
mips_ejtag_t *ejtag_info = &mips32->ejtag_info;
u32 device_id;
- int printed, i;
+ int printed = 0, i;
device_id = ejtag_info->idcode;