diff options
author | Jun Wako <wakojun@gmail.com> | 2015-03-22 10:51:30 +0900 |
---|---|---|
committer | Jun Wako <wakojun@gmail.com> | 2015-03-22 10:51:30 +0900 |
commit | 0d222db31f599e90e5e281f80d21ce3c6af0fef8 (patch) | |
tree | dfe22c0a8d5b5577d1320bca81c32d5aff7f9aa7 /keyboard/infinity/mbed-infinity/README | |
parent | d23d95381af8e7eec05a9d04c7d50e244a84fb95 (diff) |
infinity: Fix disabling watchdog
- watchdog is timed out before disabling it by mbed startup
- old booloader disable watchdog while new(2015/01) doesn't
Diffstat (limited to 'keyboard/infinity/mbed-infinity/README')
-rw-r--r-- | keyboard/infinity/mbed-infinity/README | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/keyboard/infinity/mbed-infinity/README b/keyboard/infinity/mbed-infinity/README index b0d226f793..43051c9003 100644 --- a/keyboard/infinity/mbed-infinity/README +++ b/keyboard/infinity/mbed-infinity/README @@ -37,3 +37,47 @@ Clock enable: SIM_SCGC4[USBOTG] = 1 + +Infinity bootloader change +========================== +After @2c7542e(2015/01) Infinity bootloader doesn't disable watchdog timer and keyboard firmware has to do it itself. mbed disables watchdog in startup sequence but unfortunately timer is timed out bofore that. + +We have to do that in earlier phase of mbed startup sequence. + + +mbed starup sequence files: +mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_M20D5.s +mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/system_MK20D5.c + +Infinity booloader change commit: +https://github.com/kiibohd/controller/commit/2c7542e2e7f0b8a99edf563dc53164fe1a439483 + +discussion: +https://geekhack.org/index.php?topic=41989.msg1686616#msg1686616 + + +WORKAROUND +---------- +Call SystemInit early in Reset_Handler. + +$ diff -u ../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_MK20D5.s mbed-infinity +--- ../../mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_K20D50M/TOOLCHAIN_GCC_ARM/startup_MK20D5.s 2015-03-22 10:33:22.779866000 +0900 ++++ mbed-infinity/startup_MK20D5.s 2015-03-22 10:32:56.483866000 +0900 +@@ -147,6 +147,8 @@ + * __etext: End of code section, i.e., begin of data sections to copy from. + * __data_start__/__data_end__: RAM address range that data should be + * copied to. Both must be aligned to 4 bytes boundary. */ ++ ldr r0, =SystemInit ++ blx r0 + + ldr r1, =__etext + ldr r2, =__data_start__ +@@ -161,8 +163,6 @@ + + .Lflash_to_ram_loop_end: + +- ldr r0, =SystemInit +- blx r0 + ldr r0, =_start + bx r0 + .pool |