Dear @TnseoRnr ,
1. Why can't Flash be accessed in J-Flash?
J-Flash relies on its own Flash algorithm and J-Link configuration. For external Flash on i.MX RT devices, the programming tool typically needs to first load a Flash driver algorithm into the on-chip RAM and execute it. This RAM-resident code is responsible for FlexSPI initialization, erase operations, and programming.
If the SEGGER Flash Loader, JLinkScript, FlexSPI LUT, or FCB configuration used by the current J-Flash project does not match the device state after SPT configuration, you may encounter a situation where the debugger can connect to the core, but cannot reliably read, erase, or program the external Flash.
2. Why can Flash still be accessed from MCUXpresso IDE?
The MCUXpresso IDE download and debug flow is typically more than a simple JTAG-based write to external Flash. Instead, it performs a complete target initialization and RAM-resident Flash driver procedure:
Downloads a Flash driver into the internal RAM of the i.MX RT device. →
Initializes the FlexSPI interface. →
Buffers the application image in segments and invokes Flash erase/program APIs.
Similarly, LinkServer uses a .cfx Flash driver and performs downloading through a reset → run Flash driver → program sequence.
As a result, MCUXpresso IDE may be able to reinitialize the Flash and successfully perform erase/program operations, even when a J-Flash project is not properly configured for the current OTFAD or FlexSPI state.
Best Regards,
Shelly