diff --git a/docs/Board - CC3D.md b/docs/Board - CC3D.md index e672fee61..62de80018 100644 --- a/docs/Board - CC3D.md +++ b/docs/Board - CC3D.md @@ -122,3 +122,65 @@ remaining area of flash ram. The OpenPilot bootloader code also allows the remaining section of flash to be reconfigured and re-flashed by the OpenPilot Ground Station (GCS) via USB without requiring a USB to uart adapter. +# Restoring OpenPilot bootloader + +If you have a JLink debugger, you can use JLinkExe to flash the open pilot bootloader. + +1. Run JLinkExe `/Applications/SEGGER/JLink/JLinkExe` +2. `device STM32F103CB` +3. `r` +4. `h` +5. `loadbin opbl.bin, 0x08000000` +6. `q` +7. Re-plug CC3D. + +Here's an example session: + +``` +$ /Applications/SEGGER/JLink/JLinkExe +SEGGER J-Link Commander V4.90c ('?' for help) +Compiled Aug 29 2014 09:52:38 +DLL version V4.90c, compiled Aug 29 2014 09:52:33 +Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04 +Hardware: V7.00 +S/N: -1 +Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull +VTarget = 3.300V +Info: Could not measure total IR len. TDO is constant high. +Info: Could not measure total IR len. TDO is constant high. +No devices found on JTAG chain. Trying to find device on SWD. +Info: Found SWD-DP with ID 0x1BA01477 +Info: Found Cortex-M3 r1p1, Little endian. +Info: FPUnit: 6 code (BP) slots and 2 literal slots +Info: TPIU fitted. +Cortex-M3 identified. +Target interface speed: 100 kHz +J-Link>device STM32F103CB +Info: Device "STM32F103CB" selected (128 KB flash, 20 KB RAM). +Reconnecting to target... +Info: Found SWD-DP with ID 0x1BA01477 +Info: Found SWD-DP with ID 0x1BA01477 +Info: Found Cortex-M3 r1p1, Little endian. +Info: FPUnit: 6 code (BP) slots and 2 literal slots +Info: TPIU fitted. +J-Link>r +Reset delay: 0 ms +Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit. +J-Link>h +PC = 0800010C, CycleCnt = 00000000 +R0 = 0000000C, R1 = 0000003F, R2 = 00000000, R3 = 00000008 +R4 = 00003000, R5 = 023ACEFC, R6 = 200000F0, R7 = 20000304 +R8 = 023B92BC, R9 = 00000000, R10= ED691105, R11= F626177C +R12= 000F0000 +SP(R13)= 20000934, MSP= 20000934, PSP= 20000934, R14(LR) = FFFFFFFF +XPSR = 01000000: APSR = nzcvq, EPSR = 01000000, IPSR = 000 (NoException) +CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00 +J-Link>loadbin opbl.bin, 0x08000000 +Downloading file [opbl.bin]... +WARNING: CPU is running at low speed (8004 kHz). +Info: J-Link: Flash download: Flash download into internal flash skipped. Flash contents already match +Info: J-Link: Flash download: Total time needed: 0.898s (Prepare: 0.709s, Compare: 0.128s, Erase: 0.000s, Program: 0.000s, Verify: 0.000s, Restore: 0.059s) +O.K. +J-Link>q +$ +```