This is an automated email from Gerrit.

Girts Folkmanis ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/4127

-- gerrit

commit 351e4fbc780232f6bcc527eb9da8ec0045cca90b
Author: Girts Folkmanis <[email protected]>
Date:   Mon May 8 15:31:31 2017 -0700

    Expand target_run_flash_async_algorithm() doc comment.
    
    Change-Id: I5d1e8401cbcf0e116a233a2839a06d2c9dbc85ce
    Signed-off-by: Girts Folkmanis <[email protected]>

diff --git a/src/target/target.c b/src/target/target.c
index e04ecc4..4e80381 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -884,12 +884,45 @@ done:
 }
 
 /**
- * Executes a target-specific native code algorithm in the target.
- * It differs from target_run_algorithm in that the algorithm is asynchronous.
- * Because of this it requires an compliant algorithm:
- * see contrib/loaders/flash/stm32f1x.S for example.
+ * Streams data to a circular buffer on target intended for consumption by code
+ * running asynchronously on target.
+ *
+ * This is intended for applications where target-specific native code runs
+ * on the target, receives data from the circular buffer, does something with
+ * it (most likely writing it to a flash memory), and advances the circular
+ * buffer pointer.
+ *
+ * This assumes that the helper algorithm has already been loaded to the 
target,
+ * but has not been started yet. Given memory and register parameters are 
passed
+ * to the algorithm.
+ *
+ * The buffer is defined by (buffer_start, buffer_size) arguments and has the
+ * following format:
+ *
+ *     buffer_start + 0:
+ *         Write Pointer address (aka head). Written and updated by this
+ *         routine when new data is written to the circular buffer.
+ *     buffer_start + 4:
+ *         Read Pointer address (aka tail). Updated by code running on the
+ *         target after it consumes data.
+ *     buffer_start + 8 ... buffer_start + buffer_size:
+ *         Circular buffer contents.
+ *
+ * See contrib/loaders/flash/stm32f1x.S for an example.
  *
  * @param target used to run the algorithm
+ * @param buffer address on the host where data to be sent is located
+ * @param count number of blocks to send
+ * @param block_size size in bytes of each block
+ * @param num_mem_params count of memory-based params to pass to algorithm
+ * @param mem_params memory-based params to pass to algorithm
+ * @param num_reg_params count of register-based params to pass to algorithm
+ * @param reg_params memory-based params to pass to algorithm
+ * @param buffer_start address on the target of the circular buffer structure
+ * @param buffer_size size of the circular buffer structure
+ * @param entry_point address on the target to execute to start the algorithm
+ * @param exit_point address at which to set a breakpoint to catch the
+ *     end of the algorithm; can be 0 if target triggers a breakpoint itself
  */
 
 int target_run_flash_async_algorithm(struct target *target,

-- 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to