Add delay after reset request.
Hopefully this fixes problems observed with failing vFlashWrite.
This commit is contained in:
parent
d64cec686a
commit
5dff263078
@ -526,6 +526,8 @@ cortexm_reset(struct target_s *target)
|
|||||||
while(adiv5_ap_mem_read(ap, CORTEXM_AIRCR) &
|
while(adiv5_ap_mem_read(ap, CORTEXM_AIRCR) &
|
||||||
(CORTEXM_AIRCR_VECTRESET | CORTEXM_AIRCR_SYSRESETREQ));
|
(CORTEXM_AIRCR_VECTRESET | CORTEXM_AIRCR_SYSRESETREQ));
|
||||||
|
|
||||||
|
platform_delay(2);
|
||||||
|
|
||||||
/* Reset DFSR flags */
|
/* Reset DFSR flags */
|
||||||
adiv5_ap_mem_write(ap, CORTEXM_DFSR, CORTEXM_DFSR_RESETALL);
|
adiv5_ap_mem_write(ap, CORTEXM_DFSR, CORTEXM_DFSR_RESETALL);
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
struct ftdi_context *ftdic;
|
struct ftdi_context *ftdic;
|
||||||
|
|
||||||
@ -126,3 +127,8 @@ const char *platform_target_voltage(void)
|
|||||||
return "not supported";
|
return "not supported";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void platform_delay(uint32_t delay)
|
||||||
|
{
|
||||||
|
usleep(delay * 10000000);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ extern struct ftdi_context *ftdic;
|
|||||||
|
|
||||||
int platform_init(void);
|
int platform_init(void);
|
||||||
const char *platform_target_voltage(void);
|
const char *platform_target_voltage(void);
|
||||||
|
void platform_delay(uint32_t delay);
|
||||||
|
|
||||||
void platform_buffer_flush(void);
|
void platform_buffer_flush(void);
|
||||||
int platform_buffer_write(const uint8_t *data, int size);
|
int platform_buffer_write(const uint8_t *data, int size);
|
||||||
|
@ -125,6 +125,12 @@ int platform_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void platform_delay(uint32_t delay)
|
||||||
|
{
|
||||||
|
timeout_counter = delay;
|
||||||
|
while(timeout_counter);
|
||||||
|
}
|
||||||
|
|
||||||
void sys_tick_handler(void)
|
void sys_tick_handler(void)
|
||||||
{
|
{
|
||||||
if(running_status)
|
if(running_status)
|
||||||
|
@ -135,6 +135,7 @@ int platform_init(void);
|
|||||||
void morse(const char *msg, char repeat);
|
void morse(const char *msg, char repeat);
|
||||||
const char *platform_target_voltage(void);
|
const char *platform_target_voltage(void);
|
||||||
int platform_hwversion(void);
|
int platform_hwversion(void);
|
||||||
|
void platform_delay(uint32_t delay);
|
||||||
|
|
||||||
/* <cdcacm.c> */
|
/* <cdcacm.c> */
|
||||||
void cdcacm_init(void);
|
void cdcacm_init(void);
|
||||||
|
@ -73,6 +73,12 @@ int platform_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void platform_delay(uint32_t delay)
|
||||||
|
{
|
||||||
|
timeout_counter = delay;
|
||||||
|
while(timeout_counter);
|
||||||
|
}
|
||||||
|
|
||||||
void sys_tick_handler(void)
|
void sys_tick_handler(void)
|
||||||
{
|
{
|
||||||
if(running_status)
|
if(running_status)
|
||||||
|
@ -105,6 +105,7 @@ extern const char *morse_msg;
|
|||||||
int platform_init(void);
|
int platform_init(void);
|
||||||
void morse(const char *msg, char repeat);
|
void morse(const char *msg, char repeat);
|
||||||
const char *platform_target_voltage(void);
|
const char *platform_target_voltage(void);
|
||||||
|
void platform_delay(uint32_t delay);
|
||||||
|
|
||||||
/* <cdcacm.c> */
|
/* <cdcacm.c> */
|
||||||
void cdcacm_init(void);
|
void cdcacm_init(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user