2
0
mirror of git://git.code.sf.net/p/openocd/code synced 2025-08-05 17:40:16 +10:00
openocd/src/target
Andreas Fritiofson 813f4a5411 target: rewrite working area allocator
The existing allocator couldn't reuse a freed allocation if the sizes
didn't match exactly. That led to problems when for example a flash write
routine had allocated all of the working area to speed up operation. A
subsequent verify pass couldn't allocate space for the checksum algorithm
even though all previous allocations had been freed.

This allocator is marginally more complex, but solves the above problem by
splitting larger free areas to fulfill smaller requests and by merging
released areas into adjacent free areas.

An initial free area, covering the entire specified address range, is set
up on first allocation, and all allocations are split off from (and
ultimately merged into) that one. It can also easily be adapted to support
several disjoint working areas for the same target, by setting up several
initial free areas and slightly modifying the merge code.

Change-Id: I6faaf9801312bb19a4fa4474694a0cd1c6e0ab54
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/445
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-02-23 14:02:23 +00:00
..
ecos
xscale
adi_v5_jtag.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
adi_v5_swd.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
algorithm.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
algorithm.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm7_9_common.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm7_9_common.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm7tdmi.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm7tdmi.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm9tdmi.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm9tdmi.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm11_dbgtap.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm11_dbgtap.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm11.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm11.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm720t.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm720t.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm920t.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm920t.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm926ejs.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm926ejs.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm946e.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm946e.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm966e.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm966e.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_adi_v5.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_adi_v5.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_disassembler.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_disassembler.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_dpm.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_dpm.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_jtag.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_jtag.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_opcodes.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_semihosting.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_semihosting.h ARM: remove semihosting globals 2009-12-04 16:51:48 -08:00
arm_simulator.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm_simulator.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
arm.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5_cache.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5_cache.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5_mmu.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5_mmu.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv4_5.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv7a.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv7a.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv7m.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
armv7m.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_ap7k.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_ap7k.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_jtag.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_jtag.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_mem.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_mem.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_regs.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avr32_regs.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avrt.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
avrt.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
breakpoints.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
breakpoints.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
cortex_a.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
cortex_a.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
cortex_m.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
cortex_m.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp563xx_once.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp563xx_once.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp563xx.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp563xx.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp5680xx.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
dsp5680xx.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
embeddedice.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
embeddedice.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etb.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etb.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etm_dummy.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etm_dummy.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etm.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
etm.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
fa526.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
feroceon.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
image.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
image.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
Makefile.am build: fix automake 1.11.2 issues 2012-02-16 08:56:42 +00:00
mips32_dmaacc.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips32_dmaacc.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips32_pracc.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips32_pracc.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips32.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips32.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips_ejtag.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips_ejtag.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips_m4k.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
mips_m4k.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
oocd_trace.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
oocd_trace.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
register.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
register.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
smp.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
smp.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
startup.tcl Add init_board procedure executed after init_targets 2012-02-09 18:09:02 +00:00
stm32_stlink.c stlink: add arm semi-hosting support 2012-02-16 08:58:06 +00:00
target_request.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
target_request.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
target_type.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
target.c target: rewrite working area allocator 2012-02-23 14:02:23 +00:00
target.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
testee.c target: further shrink Jim-awareness 2009-12-13 12:52:23 -08:00
trace.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
trace.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
xscale.c build: cleanup src/target directory 2012-02-06 11:00:36 +00:00
xscale.h build: cleanup src/target directory 2012-02-06 11:00:36 +00:00