Hi Jorge
I have tried to access MDM-AP with J-Link commander.
The following are results.
-----------------------------------------
J-Link>device MKL03Z16xxx4
J-Link>si 1
Selecting SWD ad current target interface.
J-Link>connect
Device "MKL03Z16XXX4" selected.
Specify target interface speed [kHz]. <Default>: 4000kHz
Speed>
Device "MKL03Z16XXX4" selected.
Found SWD-DP with ID 0x0BC11477
:
Then, open dialog few times, it asks whether or not to release the security.
As J-link Commander does not set the "Flash Mass Erase in Progreass bit", answer "No".
:
****** Error: Kinetis (connect): Failed to unsecure Kinetis device.
J-Link>r0
J-Link>swdwritedp 2,0x01000000 <- select MDM
Write DP register 2 = 0x01000000
J-Link>swdreadap 0
Read AP register 0 = 0x00000000
J-Link>swdreadap 0
Read AP register 0 = 0x00000036 <- Mass Erase Enable (bit5) , SystemSecurity (bit2)
J-Link>swdreadap 1
Read AP register 1 = 0x00000036
J-Link>swdreadap 1
Read AP register 1 = 0x00000000 <- get MDM control
J-Link>swdwriteap 1,0x8
Write AP register 1 = 0x00000008
J-Link>swdwriteap 1,0x9 <- set Flash Mass Erase in Progress (bit0)
Write AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009 <- Flash Mass Erase in Progress is never clear
J-Link>swdreadap 0
Read AP register 0 = 0x00000009
J-Link>swdreadap 0
Read AP register 1 = 0x00000036 <- Flash Mass Erase Acknowledge (bit0) is not set
--------------------------------------------------------------------
For reference, the following are results with a clean device.
--------------------------------------------------------------------
J-Link>device MKL03Z16xxx4
J-Link>si 1
Selecting SWD ad current target interface.
J-Link>connect
Device "MKL03Z16XXX4" selected.
Specify target interface speed [kHz]. <Default>: 4000kHz
Speed>
Device "MKL03Z16XXX4" selected.
Found SWD-DP with ID 0x0BC11477
Found SWD-DP with ID 0x0BC11477
Found Cortex-M0 r0p1, Little endian.
:
:
:
Cortex-M0 identified.
J-Link>r0
J-Link>swdwritedp 2,0x01000000
Write DP register 2 = 0x01000000
J-Link>swdreadap 0
Read AP register 0 = 0x00000000
J-Link>swdreadap 0
Read AP register 0 = 0x00000032
J-Link>swdreadap 1
Read AP register 1 = 0x00000032
J-Link>swdreadap 1
Read AP register 1 = 0x00000000
J-Link>swdwriteap 1,0x8
Write AP register 1 = 0x00000008
J-Link>swdwriteap 1,0x9
Write AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000009
J-Link>swdreadap 1
Read AP register 1 = 0x00000008 <- Flash Mass Erase in Progress is clear
J-Link>swdreadap 0
Read AP register 0 = 0x00000008
J-Link>swdreadap 0
Read AP register 0 = 0x00000033 <- Flash Mass Erase Acknowledge (bit0) is set
--------------------------------------------------------------------
I'm sorry, I can not upload my project here.
I've create this project as kinetis 1.x SDK project.
As mentioned above, flash configuration 0x40d was changed to 0x3b.
Macro "CLOCK_SETUP" are left undefined.
PORTA_PCR0..2 remains of default. Other port settings are below.
PORTA_PCR3 = PORT_PCR_MUX (1); // EXTAL0 -> PTA3
PORTA_PCR4 = PORT_PCR_MUX (1); // XTAL0 -> PTA4
PORTA_PCR5 = PORT_PCR_MUX (2); // TPM_CH1
PORTA_PCR6 = PORT_PCR_MUX (1); // PTA6
PORTA_PCR7 = PORT_PCR_MUX (1) | PORT_PCR_PE (1); // PTA7
PORTB_PCR0 = PORT_PCR_MUX (0); // ADC0_SE9 same as default
PORTB_PCR1 = PORT_PCR_MUX (1); // ADC0_SE8 -> PTB1
PORTB_PCR2 = PORT_PCR_MUX (1); // VREF_OUT -> PTB2
PORTB_PCR3 = PORT_PCR_MUX (3); // UART0_TX
PORTB_PCR4 = PORT_PCR_MUX (3); // IART0_RX
PORTB_PCR5 = PORT_PCR_MUX (0); // NMIb -> ADC0_SE1
Best regards
Yasuyuki