NXP FRDM-K64F Board¶
Support for the NXP FRDM-K64F.
Overview¶
The board has a K64F Kinetis MCU and is supported by cpu/kinetis_common.
Hardware¶
| MCU | MK64FN1M0VLL12 |
|---|---|
| Family | ARM Cortex-M4F |
| Vendor | Freescale |
| RAM | 256Kb |
| Flash | 1024Kb |
| Frequency | 120MHz |
| FPU | yes |
| Timers | yes |
| ADCs | yes |
| UARTs | yes |
| SPIs | yes |
| I2Cs | yes |
| Ethernet | WIP |
| USB | WIP |
| LPM | TODO |
| DAC | TODO |
| Vcc | TODO |
| Reference Manual | TODO |
Please update the firmware to version 0221, see below.**
OpenOCD¶
The latest (01.07.2015) OpenOCD version (also current git) does not support the K64F. There is a patch which makes flashing and debugging possible. A refactored and rebased version can be found here.
Flashing the Device¶
Over OpenOCD¶
make BOARD=frdm-k64f flash
Over MSD¶
Simply mount the mbed Mass Storage Device und copy new RIOT firmware. See also the ARMmbed instructions.
Updating the Booloader¶
A update of CMSIS-DAP firmware is necessary to using the board with OpenOCD. A good step by step guide is available here.
I can’t flash the device with OpenOCD anymore…¶
When a flash process has failed or a wrong firmware has been programmed, the following OpenOCD message may appear:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | START...
Info : SWD IDCODE 0x2ba01477
Info : SWD IDCODE 0x2ba01477
Error: Failed to read memory at 0xe000ed00
Examination failed, GDB will be halted. Polling again in 300ms
TargetName Type Endian TapName State
-- ------------------ ---------- ------ ------------------ ------------
0* k64f.cpu cortex_m little k64f.cpu unknown
START...
Warn : *********** ATTENTION! ATTENTION! ATTENTION! ATTENTION! **********
Warn : **** ****
Warn : **** Your Kinetis MCU is in secured state, which means that, ****
Warn : **** with exception for very basic communication, JTAG/SWD ****
Warn : **** interface will NOT work. In order to restore its ****
Warn : **** functionality please issue 'kinetis mdm mass_erase' ****
Warn : **** command, power cycle the MCU and restart OpenOCD. ****
Warn : **** ****
Warn : *********** ATTENTION! ATTENTION! ATTENTION! ATTENTION! **********
in procedure 'reset'
in procedure 'ocd_bouncer'
|
- Hold the reset button and execute make BOARD=frdm-k64f flash in a project directory
- Release reset button just after “Info : MDM: Chip is unsecured. Continuing.”
Solution 2:
- Comment out line
reset_config srst_only srst_nogate connect_assert_srstinboards/frdm-k64f/dist/openocd.cfg - Execute make BOARD=frdm-k64f flash in a project directory
Solution 3:
- Ask Deep Thought