From: Øyvind H. <go...@us...> - 2009-10-21 12:55:18
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 62525792e073a54f21e334764ddd9dcd2d47ff0c (commit) from a02411a15f24a9e1f0ac893e631c6a520adfdab8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 62525792e073a54f21e334764ddd9dcd2d47ff0c Author: Ãyvind Harboe <oyv...@zy...> Date: Wed Oct 21 12:54:41 2009 +0200 Defined target_write_memory() to be able to handle implementing breakpoints for read only ram(e.g. MMU write protected. diff --git a/src/target/target.h b/src/target/target.h index 0f8be6f..19d8013 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -363,6 +363,30 @@ extern int target_write_memory(struct target_s *target, extern int target_bulk_write_memory(struct target_s *target, uint32_t address, uint32_t count, uint8_t *buffer); +/* + * Write to target memory using the virtual address. + * + * Note that this fn is used to implement software breakpoints. Targets + * can implement support for software breakpoints to memory marked as read + * only by making this fn write to ram even if it is read only(MMU or + * MPUs). + * + * It is sufficient to implement for writing a single word(16 or 32 in + * ARM32/16 bit case) to write the breakpoint to ram. + * + * The target should also take care of "other things" to make sure that + * software breakpoints can be written using this function. E.g. + * when there is a separate instruction and data cache, this fn must + * make sure that the instruction cache is synced up to the potential + * code change that can happen as a result of the memory write(typically + * by invalidating the cache). + * + * The high level wrapper fn in target.c will break down this memory write + * request to multiple write requests to the target driver to e.g. guarantee + * that writing 4 bytes to an aligned address happens with a single 32 bit + * write operation, thus making this fn suitable to e.g. write to special + * peripheral registers which do not support byte operations. + */ extern int target_write_buffer(struct target_s *target, uint32_t address, uint32_t size, uint8_t *buffer); extern int target_read_buffer(struct target_s *target, uint32_t address, uint32_t size, uint8_t *buffer); extern int target_checksum_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t* crc); ----------------------------------------------------------------------- Summary of changes: src/target/target.h | 24 ++++++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-) hooks/post-receive -- Main OpenOCD repository |