openocd/src/flash/nor
Spencer Oliver d631b2e5ac flash: add stm32lx loader Hard Fault workaround
An issue has been seen with the stm32lx flash driver that if a
power cycle/reset is applied after a erase, any ram loader will Hard Fault
on execution.

A similar issue is mentioned in the errata for the device.
Two solution's seem to workaround this issue:
1, Handle the exception, this means adding exception vectors to the loader
   and changing the exception address using nvic vtor register.
2. falling back to using slower direct page writes - approx 50% slower.

Using solution 1 would mean restrictions are placed on the loader location.
Solution 2 was chosen mainly as it was simpler too implement.

Change-Id: I429f06b5a3e3b1d8de90071a88a7df11fc9b46a7
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/1010
Tested-by: jenkins
2013-01-21 16:46:09 +00:00
..
aduc702x.c flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
at91sam3.c flash: fix at91sam3/4 driver typos 2012-10-17 09:25:11 +00:00
at91sam4.c flash: fix at91sam3/4 driver typos 2012-10-17 09:25:11 +00:00
at91sam7.c build: fix memory leaks 2012-08-24 16:49:56 +00:00
avrf.c flash: blank check use default_flash_blank_check 2012-05-14 09:38:26 +00:00
cfi.c cfi: remove typos and code cleanup 2012-10-12 21:41:53 +00:00
cfi.h flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
core.c flash: blank check use default_flash_blank_check 2012-05-14 09:38:26 +00:00
core.h flash: blank check use default_flash_blank_check 2012-05-14 09:38:26 +00:00
driver.h flash/nor/driver.h: typo fix 2012-05-21 08:49:15 +00:00
drivers.c flash: EFM32 flash implementation 2013-01-14 10:25:55 +00:00
dsp5680xx_flash.c dsp5680xx_flash: Remove unused flash bank structure 2012-10-08 10:31:26 +00:00
efm32.c flash: EFM32 GG/LG page size detection fix 2013-01-18 09:19:21 +00:00
em357.c flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
faux.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
fm3.c flash: fm3 mb9bfxx7 mb9bfxx8 support 2012-12-14 20:48:40 +00:00
imp.h build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
kinetis.c kinetis: bugfix in kinetis_write() fallback path 2012-08-29 06:26:02 +00:00
lpc288x.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
lpc2000.c Fix serious bug in LPC2xxx/LPC17xx flash algorithm. 2012-10-17 09:23:39 +00:00
lpc2900.c build: use generic name for arm_algorithm vars 2012-05-14 09:29:02 +00:00
lpcspifi.c Added SPIFI flash driver, algorithms, and docs 2012-09-26 16:17:42 +00:00
Makefile.am flash: EFM32 flash implementation 2013-01-14 10:25:55 +00:00
non_cfi.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
non_cfi.h build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
ocl.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
ocl.h build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
pic32mx.c flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
spi.c Added support for SPI Flash Winbond W25Q64CV 2012-11-06 14:33:45 +00:00
spi.h SPI nor drivers refactor 2012-09-26 16:17:21 +00:00
stellaris.c flash: update stellaris flash data to latest dev package 9453 2012-10-12 21:41:39 +00:00
stm32f1x.c flash: allow stm32f1x options_write args in any order 2012-12-31 19:08:25 +00:00
stm32f2x.c flash: stm32f2x support write protection 2013-01-21 16:43:09 +00:00
stm32lx.c flash: add stm32lx loader Hard Fault workaround 2013-01-21 16:46:09 +00:00
stmsmi.c SPI nor drivers refactor 2012-09-26 16:17:21 +00:00
str7x.c flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
str9x.c flash/nor: make all working area pointers local 2012-10-08 10:25:15 +00:00
str9xpec.c flash: Additional check for NULL in str9xpec enable_turbo 2012-03-06 13:32:48 +00:00
tcl.c tcl: fix potential memory leaks 2012-08-24 16:50:18 +00:00
tms470.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00
virtual.c build: cleanup src/flash/nor directory 2012-02-06 10:54:14 +00:00