target: add target async algorithm support

Currently the stm32f1x flash driver uses an asynchronous algorithm
as part of the block flash programming. This greatly speeds up flash
programming as the target is always running.

Moving the async code to the target enable other targets to use this
added functionality.

Change-Id: I8e53f094c2ef7848a7f86ddb9a35b6edbfc8454a
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/402
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
This commit is contained in:
Spencer Oliver
2012-02-10 15:24:52 +00:00
committed by Andreas Fritiofson
parent dec6b91380
commit bee7184ce4
3 changed files with 148 additions and 100 deletions

View File

@@ -442,6 +442,18 @@ int target_wait_algorithm(struct target *target,
uint32_t exit_point, int timeout_ms,
void *arch_info);
/**
* This routine is a wrapper for asynchronous algorithms.
*
*/
int target_run_flash_async_algorithm(struct target *target,
uint8_t *buffer, uint32_t count, int block_size,
int num_mem_params, struct mem_param *mem_params,
int num_reg_params, struct reg_param *reg_params,
uint32_t buffer_start, uint32_t buffer_size,
uint32_t entry_point, uint32_t exit_point,
void *arch_info);
/**
* Read @a count items of @a size bytes from the memory of @a target at
* the @a address given.